GDB调试基础备忘

调试前提

被调试程序在编译时要加入-g选项,这样才能产生供gdb调试使用的信息。
例:$ gcc -g hello.c

基本命令

(1)启动调试

gdb <可执行文件名>。执行此命令,只是为调试做好了准备,尚未启动被调试程序运行。此时进入调试界面。

(2)设置可执行文件参数。如无参数可省。 (gdb) set args 参数1 参数2 参数3 ...。查看用 (gdb) show args

(3)设置断点

(gdb) break <文件名:行号>。

例:(gdb) break hello.c:5  //则在hello.c文件的第5行设置断点。

(4)启动程序

(gdb) run 。此时被调试程序开始运行,并停在前面设置的断点处。

(5)单步执行

(gdb) next  //单步执行,如遇到函数直接跳过,不进入函数内部

(gdb) step  //单步执行,如遇到函数,会进入函数内部

(6)查看断点处状态

(gdb) print <变量名>     //查看变量

(gdb) list      //查看断点处附近代码

(gdb) x /<内存单元个数><显示方式><内存单元大小>  <内存起始地址>     //查看内存

如 (gdb)x /6xb pObj ,会打印出从pObj指向的内存地址开始的6个连续单元,显示格式为16进制,每个单元大小为一个字节,。

显示方式x 十六进制格式显示变量;d 十进制格式;u 十进制格式显示无符号整型;o 八进制格式;t 二进制格式;a 十六进制格式;i 指令地址格式;c 字符格式;f 浮点数格式。

内存单元大小b单字节;h双字节;w四字节;g八字节。

(7)继续执行。

(gdb) continue

(8)退出调试

(gdb) quit

转自:http://blog.csdn.net/smstong/article/details/7220622

你可能感兴趣的:(linux,C/C++)