gdb的作用
- 随心所欲的控制程序
- 在重点关照的地方设置断点
- 可以查看程序停止时的执行环境
- 动态改变执行环境
编译时要加 -g
gdb相关指令
启动gdb:gdb ./app --这样代表要调试当前路径下的app程序
运行程序
- 单步调试启动:start
- 直接运行启动:r(un)
- 带参数运行:r(un) argv[1] argv[2] ...
常用指令
断点
- 设置断点
- b line
- b(reak) func
- b(reak) file:line
- b(reak) file:func
- 删除断点
- 查看断点信息:i(nfo) b
- 删除断点:del 编号
变量
- 打印变量:p(rint) x
- 跟踪变量:display x
- 取消跟踪变量
- 查看编号:info display
- 取消:undisplay 编号
调试过程
1.显示代码:l(ist)
- 显示具体行:list line
- 显示函数:list func
- 显示文件:list file:line
- 跳到下一断点:continue
gdb跟踪core
- 设置生成core:ulimit -c unlimited
- 取消生成core:ulimit-c 0
- 设置core文件格式:/proc/sys/kernel/core_pattern
- 文件不能vi,可以用后面的套路 echo "/corefile/core-%e-%p-%t" > core_pattern
网友评论