以前经常听到别人说gdb调试,很高大尚。在日常的开发中,gdb确实很有用。gdb调试博大精深,非三言两语能说透,我们还是先从基础开始学起吧。
要生成调试信息必须加上 -g 选项,不加上 -g 选项生成的core都无法调试。之前我调试core没加 -g 选项把自己坑了,所以这里一定要注意。
生成core的2个条件:
1.ulimit -c unlimited
2.gcc/g++ -g
bt:查看堆栈信息
i locals:查看当前程序栈的局部变量
i args:查看当前程序栈的参数
i catch:查看当前程序中战帧的异常处理器
p a:打印变量的值
i register:查看当前寄存器的值。这个这里没有演示
quit:退出
l(list):查看程序源代码
r(run):从运行程序至第一个断点,没有断点则一直运行完
start:开始执行程序,停留在main函数第一行语句前等待命令
s(step):执行下一条语句,有函数则进入函数中
n(next):单步执行,不进入函数内部
set var:改变变量的值
finish:运行到当前函数为止,可以用来结束循环
参考地址:
http://blog.csdn.net/stpeace/article/details/51040073
http://www.cnblogs.com/hankers/archive/2012/12/07/2806836.html