天天看点

gdb调试

       以前经常听到别人说gdb调试,很高大尚。在日常的开发中,gdb确实很有用。gdb调试博大精深,非三言两语能说透,我们还是先从基础开始学起吧。

要生成调试信息必须加上 -g 选项,不加上 -g 选项生成的core都无法调试。之前我调试core没加 -g 选项把自己坑了,所以这里一定要注意。

生成core的2个条件:

1.ulimit -c unlimited

2.gcc/g++ -g

gdb调试

bt:查看堆栈信息

i locals:查看当前程序栈的局部变量

i args:查看当前程序栈的参数

i catch:查看当前程序中战帧的异常处理器

p a:打印变量的值

i register:查看当前寄存器的值。这个这里没有演示

quit:退出

gdb调试

l(list):查看程序源代码

r(run):从运行程序至第一个断点,没有断点则一直运行完

start:开始执行程序,停留在main函数第一行语句前等待命令

gdb调试

s(step):执行下一条语句,有函数则进入函数中

n(next):单步执行,不进入函数内部

gdb调试

set var:改变变量的值

gdb调试

finish:运行到当前函数为止,可以用来结束循环

参考地址:

http://blog.csdn.net/stpeace/article/details/51040073

http://www.cnblogs.com/hankers/archive/2012/12/07/2806836.html

继续阅读