◊基本框架:
a) Gdb功能
b) 运行程序
c) 查看源码
d) 设置断点(break)与观察点(watch)
e) 单步调试
f) Gdb常用命令总结
5.1 gdb功能
1)启动程序:
Run(r),另外启动程序的时候还可以带上参数(argv[1],argv[2]……)
2) 设置断点:
设置断点:break(b) +行号/函数名
另外设置断点的时候还可以用条件表达式(if)
删除断点:delete(d) + 断点号
查看断点:info break(i b)
3) 查看变量信息:
Print 查看变量值
Ptype 查看变量类型
4) 动态改变程序的执行环境:
Print 变量=value 动态改变程序运行时变量的值
5.2 运行程序
1) run(r) 运行程序
2) run + arg1 arg2…… (参数列表)
5.3 查看源码
1) list(l) 查看最近10行源码
l 2,10 查看第2行到第10行的源码
l ,15 查看最多到第15行的源码
2) list +fun(函数名) 查看fun函数源码
3) list +file:fun 查看file文件中的fun函数源码
4) list +file:15 查看file文件中的第15行左右的源码
5.4 设置断点(break)与观察点(watch)
1) break 行号
2) break 函数名
3) break file:行号
4) break file:函数名
5) break if <condition> 条件成立时程序停住
6) info break(i b) 查看断点
7) watch expr 一旦expr值发生改变,程序就停住
8) delete +断点编号 删除断点
5.5 单步调试
1) continue(c) 运行至下一个断点
2) step(s) 单步跟踪,进入函数,类似于VC中的step in
3) next(n) 单步跟踪,不进入函数,类似于VC中的step out
4) finish 运行程序,直到当前函数返回,并输出函数的返回值。
5) until 退出循环体(for)
5.6 gdb常用命令总结
Run(r) 运行程序
List(l) 列出源代码
Break(b) 设置断点
Info break(i b) 查看断点信息
Continue(c) 继续运行程序,直到下一个断点
Watch 设置观察点,一旦观察值发生改变,程序就停住
Step(s) 单步跟踪,进入函数,类似于VC中的step in
Next(n) 单步跟踪,不进入函数,类似于VC中的step out
Finish 退出函数,并输出函数的返回值。
Until(u) 退出循环体
Print(p) 查看变量值
5.7 一些细节知识:
1.在gdb调试过程中按Enter键代表重复执行上条命令;
2.几个退出命令的比较:
Until 退出循环(for)
Finish 退出函数
q 退出gdb