前提:编译时添加 -g 选项,得到调试表 gcc gdbtest.c -o a.out -g
常用指令:
- 打开 gdb 调试工具:
gdb ./a.out - 列出源码以及行号:
list 或者 l(按list 1即可从代码第一行开始显示,按l翻页) - 设置断点:
b或者break,比如b 45 - 运行程序:
run或者r - 下一条指令(越过函数):
n或者next - 下一条指令(进入函数):
s或者step - 查看变量的值:
p或者print(p i代表查看变量i的值) - 结束当前函数调用:
finish - 继续执行断点后续指令:
continue(即执行到下一个断点,如果后续没有断点,则执行到程序结束) - 退出gdb当前调试:
quit
其他指令:
- 针对段错误:打开 gdb 后,直接使用
run命令,程序停止的位置就是段错误出现的位置 - 设置 main 函数命令行参数
set args参数1 参数2(在start、run之前)run 参数1 参数2
- 查看断点信息表:
info b - 设置条件断点:
b 20 if i = 5 - 查看变量类型:
ptype - 查看当前程序正存活的栈帧:
bt - 根据栈帧编号切换栈帧:
frame 2 - 设置跟踪变量:
display - 根据跟踪变量的编号,取消设置跟踪变量:
undisplay2