Linux调试工具GDB使用简易教程

2019-10-10 16:01:09刘景俊

disable +n //关闭断点
enable +n  //启动断点

GDB单步调试

以本文开头的buging.c文件为例,进行单步调试。

// 进入gdb
[yqtao@localhost linux]$ gdb buging
// 在main()函数处设断点
(gdb) info breakpoints 
// 运行程序
(gdb) run
Breakpoint 1, main () at buging.c:9
9        int res=getSum(100);

注意:我们要进入函数要是用step(s),而单步执行next(n),next是不进入函数内部的,要区分两者的关系。

(gdb) step
getSum (n=100) at buging.c:4
4        for (i=1;i<=n;i++)
// 查看代码
(gdb) l
1    #include <stdio.h>
2    int getSum(int n) {
3        int sum=0,i;
4        for (i=1;i<=n;i++)
5            sum+=i;
6        return sum;
7    }
8    int main(){
9        int res=getSum(100);
10       printf("1+2+...+100=%dn",res);
// 下一步
(gdb) s
5            sum+=i;
// 打印sum的值
// 看到sum是为赋初值的
(gdb) p sum
$1 = 4195633
// info locals
//打印当前断点处所在函数的所有局部变量的值,不包括函数参数。
(gdb) info locals
sum = 4195635
i = 3

其余的一些命令:

finish

执行程序到当前函数结束

continue

执行程序到下个断点

until

until N,执行程序到源代码的某一行

总结

以上就是本文关于Linux调试工具GDB使用简易教程的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!