1.gcc a.c b.c c.c -o app -g
-g:会保留函数名和变量名
2.启动gdb
- gdb 可执行程序的名字
gdb app
- 给程序传参:set args xxx xxx
3.查看代码 --list
- 当前文件:
- l
- l 行号
- l 函数名
- 非当前文件:
- l 文件名:行号
- l 文件名:函数名
- 设置显示的行数:
- set listsize n
- show listsize (查看)
4.断点操作 -break/b
- 设置断点:
- b 行号
- b 函数名
- b 文件名:行号
- b 文件名:函数名
- 查看断点
- info(i) b
- 删除断点
- d num(断点编号)
- d num1 num2
- d num1-num2
- 设置断点无效
- dis num
- 断点生效
- ena num
- 设置条件断点
- b 行号 if变量==值
5.调试相关命令
- 打印变量的值:
- p 变量名
- 打印变量的类型:
- ptype 变量名
- 向下单步调试:
- next - n
- 遇到函数不会进入函数体
- step - s
- 会进入函数体
- 跳出函数体 finish
- next - n
- 继续运行停在下一个断点的位置
- continue - c
- q 退出
- 变量的自动显示
- display 变量名
- 取消 undisplay 编号
- i display
- 从循环体直接跳出
- until
- 不能有断点
- until
- 直接设置变量的值
- set var 变量名=5