一般步骤
- g++/gcc -g **.cpp -o ** (需加上-g参数,编译阶段将调试信息添加到可执行文件中)
- gdb -se -c ** (可执行文件或者dump文件)
- 进入gdb模式后,设置断点 break(b) 行号/函数名,info b 查看断点,clear 行号/函数清除断点
- (1)run(r) 开始运行, (2)next(n)单步调试不进入调用函数,
(3)step(s)单步调试进入调用函数(setstep-mode on 打开step-mode模式。在进行单步跟踪时,程序不会因为没有debug 信息而不停住。这个参数有很利于查看机器码),(4)continue(c)继续运行 (5)finish运行程序,直到当前函数完成返回。并 打印函数返回时的堆栈地址和返回值及参数值等信息。其对main函数无效 (6)until (u )当厌倦了在一个循环体内单步跟踪 时,这个命令可以运行程序直到退出循环体。
- watch 变量名, 变量改变时输出提醒。 print( p ) 变量名,打印当前变量值。
- set args ** ** 可指定运行时参数,show args 命令可以查看设置好的运行参数
- run > outfile 使用重定向控制程序输出
- path可设定程序运行路径,show paths 查看程序的运行路径
- shell 命令 ,可以调用bash命令
参考博客:使用gdb调试程序完全教程 <http://blog.csdn.net/gatieme/article/details/51671430>