gdb调试命令
1>. 启动gdb
gdb 可执行程序的名字
2>. 查看代码
l -- 查看当前文件 -- 默认main函数
2. 查看其它文件: l 文件名:行号, 显示指定行号的上下文
l 函数名 -- 当前文件
l 文件名:函数名 -- 指定文件
3. 查看默认显示的行数: show listsize
4. 设置: set listsize 行数
3>. 断点操作
1. 当前文件设置断点: b(break) 行号
2. 指定文件: b 文件名:行号
b 函数名 -- 当前文件的这个函数位置打断点
b filename:funcName -- 指定文件的指定函数
3. info(i) b(break)
4. 删除断点:
d 删除所有断点
d m-n 删除范围 (m, n断点的编号)
d m n k 删除指定断点
5. 使断点无效: disable(dis) 断点编号
6. 是断点再次生效: enable(ena) 断点编号
7. 设置条件断点: b 行号 if 变量==value
4>. 调试相关命令
1. run(r) -- 执行gdb在断点处停止
2. start -- ....., 只执行一行就停止了
3. c(continue)继续运行, 停在下一个断点的位置
4. 单步调试:
n(next) -- 往下执行一行代码, 不会进入到函数内部
s(step) -- 往下执行一行代码, 会进入到函数内部
从函数内部出来: finish
5. 打印变量的值:
p 变量名
ptype 变量名 -- 打印变量的类型
自动追踪变量的值:
display 变量名
取消自动追踪:
undisplay 编号
info display -- 获取编号
6. 设置变量的值: set var 变量名=value
7. 退出gdb : quit(q)
5>. 查看变量和类型
6>. 退出gdb