gdb调试学习(一) list命令的学习

时间:2021-11-06 00:16:11

———-l(list)命令用于列出源码

tst.c源码

#include <stdio.h>

int Sum(int n)
{
int sum = 0;
int i = 0;
for(i; i < n; i ++)
{
sum += i;
}
return sum;
}

int main()
{
int i;
int a = 0;
for(i = 1; i <= 100; i ++)
{
a += i;
}
printf("a= %d \n", a);
printf("sum= %d \n", Sum(100) );
}

1.gdb启动
gdb调试学习(一) list命令的学习
2.l命令
(1)help l或help list
gdb调试学习(一) list命令的学习

gdb调试学习(一) list命令的学习
查看list命令帮助

(2)l(list)列出源码
gdb调试学习(一) list命令的学习
No symbol table is loaded. Use the “file” command.出现这个的原因是:源文件在编译时,没有使用 -g 参数,重新编译使用list命令。
gdb调试学习(一) list命令的学习

gdb调试学习(一) list命令的学习
l命令一次只能列10行

l命令到代码末后继续l
gdb调试学习(一) list命令的学习

(3)继续l或空格键
gdb调试学习(一) list命令的学习
或使用空格键
gdb调试学习(一) list命令的学习
表示上一个l命令后,列出后面的代码可以继续l命令或者直接敲回车键。

(4)l 数字命令
gdb调试学习(一) list命令的学习
表示查看11周围10行代码,即6-15行。l 1可从头查看源码。

(5)l -命令
gdb调试学习(一) list命令的学习
表示查看上一个l命令查看的代码之前的10行,即1-5行。

(6)l 数字,数字
gdb调试学习(一) list命令的学习
表示查看6-20行的源码

(7)l 函数名
gdb调试学习(一) list命令的学习
表示查看main函数周围10行代码。

(8)l 文件名:数字
gdb调试学习(一) list命令的学习
表示查看tst.c文件第6行周围的10行代码

(9)l 文件名:函数名
gdb调试学习(一) list命令的学习
表示查看tst.c文件中main周围10行代码