http://fanqiang.chinaunix.net/program/other/2006-07-14/4834.shtml
一 gdb最基本的调试命令
1 以调试程序test.cpp为例:
编译时加上 -g
cygwin中测试 编译test.cpp
g++ -g -o test test.cpp
进入调试环境 gdb test
2. b 12在文件的第12行设置断点。
删除断点:
info b 列出所有的断点信息
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x004010f1 in main at test.cpp:17
breakpoint already hit 1 time
2 breakpoint keep y 0x00401120 in main at test.cpp:23
breakpoint already hit 1 time
要删除第2个断点
d 2
如果不指定断点号,则表示删除所有的断点
3.r –d执行当前被调试的程序.-d是运行参数
4. p variable打印数据内容
5. l列出产生执行文件的源代码的一部分.
6. n执行一行源代码但不进入函数内部。
7. s执行一行源代码而且进入函数内部。
8. c继续执行程序,直至下一中断或者程序结束。
9. k终止正在调试的程序.
10. q终止 gdb.
11 跳出某个函数
finish
二 附注:基本gdb命令:
命令 简写 功能 file 装入想要调试的可执行文件. kill k 终止正在调试的程序. list l 列出产生执行文件的源代码的一部分. next n 执行一行源代码但不进入函数内部. step s 执行一行源代码而且进入函数内部. continue c 继续执行程序,直至下一中断或者程序结束。 run r 执行当前被调试的程序. quit q 终止 gdb. watch 使你能监视一个变量的值而不管它何时被改变. catch 设置捕捉点. thread t 查看当前运行程序的线程信息. break b 在代码里设置断点,这将使程序执行到这里时被挂起. make 使你能不退出 gdb就可以重新产生可执行文件. shell 使你能不离开 gdb就执行 UNIX shell命令. p 打印数据内容。 examine x 打印内存内容。 backtrace bt 查看函数调用栈的所有信息。