1.编译时加“-g”选项
如gcc -g -0 hello.c
2. gdb hello
3.常用的调试命令,可以简写
命令 | 意义 | 用法 |
list | 从第一行开始列出源码(默认10行) | l l 3 (开始行) |
break | 设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。 | b <行号> |
run | 开始调试程序 | r |
continue | 继续执行被调试程序,直至下一个断点或程序结束。 | c |
clear | 删除特定行的断点 | clear <行号> |
delete | 删除断点,编号从1开始 | d <编号> |
next line | 执行一行源程序代码,此行代码中的函数调用也一并执行。 | n |
step line | 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数 | s |
until | 结束当前循环 | until |
可以检查各个变量的值,数组的值,以及函数等 | print p (p为变量名) print $1 ($1为历史记录变量,在以后可以直接引用 $1 的值) 显示数组: p <数组名> 显示数组元素:p <*数组指针> 显示数组int a[N]的特定值: ① p *a@10 ② p (int [10])*10 | |
whatis | 可以显示某个变量的类型 | whatis p |
info | 用于显示各类信息 | 如:info b 显示断点信息 info r 寄存器信息 info local 显示当前函数中的局部变量信息 info prog 显示被调试程序的执行状态 |
quit | 退出gdb调试 | q |
本文参考,特此声明:
http://fanqiang.chinaunix.net/program/other/2006-07-14/4834.shtml
http://blog.youkuaiyun.com/liigo/article/details/582231
http://www.cnblogs.com/dodolook/archive/2011/05/31/2064363.html