GDB常用命令说明
1. 命令 ulimit -c ,打开coreDump
ulimit -c 查看内核采集有没有开启
打开则返回: unlimited
2. 命令 -g ,开启GDB调试
1. gcc -g Wall -o hello.out hello.c //编译hello.c
2. gdb hello.out //调试 hello.out
3. 命令 l(ls) ,查看源代码
4. 命令 b(breakpoint) ,添加断点
如: 按照函数来添加断点: b testFunc
按照行号来添加断点: b 13
5. 命令 r(run) ,开始执行程序,直至断点停止
6. 命令 n(next) ,单步调试
n 到下一步. 不管子过程如何都不进入. 直接一次跳过
7. 命令 s(step) ,单步调试,进入函数内执行
s 遇到子函数,会进入函数内部调试.
8. 命令 p(print) ,打印输出数据
如: print var //查看变量的值
print/x var //查看变量的值,十六进制显示
print var=value //修改变量的值为制定值
print sizeof(A) //显示数据占用内存大小
9. 命令 q(quit)或ctrl+d ,退出调试
10. 命令 start ,开始执行,并使程序停在main第一行
11. 命令 c(continue) ,继续执行,直到下一个断点
12. 命令 info(infomation) ,查看断点
如: info args //显示当前函数的入参
info b //查看断点信息
13. 命令 d(delete) ,删除断点
如: d 1 //删除断点1
d //删除所有断点
14. 命令 set ,修改变量或入参
如: set var=value //设置变量值
15. 什么是调用堆栈?
程序执行函数调用时,会生成相应的调用信息,包括调用在程序中的位置,
调用参数以及函数的局部变量。这些信息保存在一个叫做堆栈框的数据结构里面,
这个堆栈框的区域就叫做: 调用堆栈。
其中,函数每次被调用,就会生成一个堆栈框;
函数调用结束返回时,就相应销毁一个堆栈框。
16. 参考
[1]: https://www.cnblogs.com/life2refuel/p/5396538.html