GDB
简介
GDB是GNU发布的一款功能强大的程序调试工具。
GDB主要完成以下三方面的功能:
1. 启动被调试的程序。
2. 让被调试的程序在指定的位置停住。
3. 当程序被停住时,可以检查程序状态(如变量值)。
起步
1 #tst.c 2 #include <stdio.h> 3 void main() 4 { 5 int i; 6 long result = 0; 7 for(i=1;i<=100;i++) 8 { 9 result +=1; 10 } 11 printf("result = %d \n",result); 12 }
GDB快速进阶
1. 编译生成可执行程序。
gcc -g tst.c -o tst
2. 启动GDB
gdb tst
3. 在main函数出设置断点
break main 或者 b main
4. 运行程序
run
5. 单步运行
next
6. 继续运行
continue
7. 退出gdb
quit
启动GDB
方法1:gdb 调试程序名
例: gdb hello
方法2:gdb进入,然后 file 调试程序名
gdb
file hello
GDB命令
list(l) :查看程序
break(b) 函数名 :在某函数入口处添加断点
break(b) 行号 :在制定行添加断点
break(b) 文件名:行号 :在指定文件指定行添加断点
break(b) 行号 if 条件 :当条件为真时,指定行号处断点生效。
例: b 5 if i=10 ,当i等于10时,第5行断点生效
info break :查看所有设置过的断点
delete 断点编号 :删除断点
run(r) :开始运行程序
next(n) :单步运行程序(不进入子函数)
step(s) :单步运行程序(进入子程序)
continue(c) :继续运行程序
print(p) 变量名 :查看指定变量值
finish :运行程序,直到当前函数结束。不是整个程序结束。
watch 变量名 :对指定变来那个
quit(q) :退出gdb