相关参数
- -g:生成能用gdb调试的可执行程序 gcc -c main.c -g -o app
- 启动gdb调试(gdb 可执行程序名):gdb app
- 程序运行
- start //程序停在主程序第一行
- r //run缩写,程序停在第一个断点位置
- gdb传参:set args aaa bbb ccc
- 查看代码--list
- 查看当前文件
- l(小写字母L)
- l 行号
- l 函数名
- 非当前文件
- l 文件名:行号
- l 文件名:函数名
- 设置显示的行数
- set listsize n
- 查看当前文件
gdb调试中直接按enter默认执行上一次输入的命令
- b n //在第n行设置断点
- b 函数名 //在函数前设置断点
- b 文件名:行号
- b 文件名:函数名
- i b //查看设置断点的详细信息,i代表info
- d n //删除编号为n的断点,d代表delete
- dis n//使编号为n的断点失效
- ena n//使能编号为n的断点
- 设置条件断点 b 行号 if 变量==var
- 调试相关命令
- 打印变量名
- p 变量名
- 打印变量类型
- ptype 变量名
- 向下单步调试
- n 表示next
- 不会进入函数体
- s 表示step
- 会进入到函数内部
- 跳出函数体:finish
- 如果出不去,看一下函数体中的循环中是否有断点,如果有,删掉,或者设置无效
- n 表示next
- 继续运行gdb,停在下一个断点位置
- c 表示continue
- 退出gdb
- quit -q
- 变量的自动显示
- display 变量名
- 取消:udisplay 编号
- i display //查看编号
- 从循环体直接跳出
- u 表示until
- 不能有断点
- u 表示until
- 直接设置变量等于某一值
- set var i=10
- 打印变量名