gdb使用注意:编译时使用 -g 参数使可执行文件附加上源码信息,调试时源码必须可见。
gcc -g test.c -o test // -g 参数使编译结果附带源码信息
#单步跟踪
1 list(l): 示源码l -> 显示全部源码
l num -> 从第num行开始显示10行源码
2 quit: 退出gdb
3 start: 开始运行代码
3 next(n): 逐行运行显示(不显示内嵌函数代码)
4 step(s): 逐步运行显示(显示内嵌函数代码)
5 backtrace(bt): 查看函数调用栈
6 frame(f): 显示栈帧
f num 显示num号栈帧(号码针对bt所得)
7 info(i) locals: 显示当前局部变量
8 print(p) var: 显示当前局部变量的值
9 set var: 设置当前变量的值
#断点
1 display/undisplay var: 监视/不监视局部变量(用于重点变量的监视)
2 break: 设置程序断点(info b 查看设置的断点)
break num //按照行号创建断点
break func //函数名创建断点
3 continue(c): 连续执行程序,直到断点处或结束
4 delete breakpoints num: 清除断点
5 disable breakpoints num: 使断点失效
6 enable breakpoints num: 启用无效断点
7 run: 从头开始连续执行程序
#观察点:
1 watch var: 为变量设置观察点
2 info watchpoints: 查看设置的观察点