gdb常用命令总结

printf就是一种基本调试方法,gdb是一种更强大的工具。

调试的基本思想仍然是:

“分析现象->假设错误原因->产生新的现象去验证假设”

单步执行、跟踪函数调用

命令简写描述
backtracebt查看各级函数调用及其参数
finish-连续运行到当前函数返回为止,然后停下来等待命令
frame 编号f ~选择栈帧
info localsi locals查看当前栈帧局部变量的值
listl列出源代码,接着上次的位置往下列,每次10行
list 行号列出源代码,从第几行开始
list 函数名列出源代码,某个函数
nextn执行下一条语句
printp打印表达式的值(通过表达式可以修改变量的值、调用函数)
quitq结束gdb环境
set var-修改变量的值
set args 参数-含参程序,加入参数
start-开始
steps执行下一语句,和n不同在于:若有函数则进入函数

断点

命令简写描述
break 行号b ~在某一行设置断点
break 函数名在某个函数开头设置断点
break … if …条件断点
continuec从当前位置开始,连续运行函数
delete breakpoints 编号-删除断点
display 变量名-跟踪查看某个变量,每次停下来都显示它的值
disable breakpoints 编号-禁用断点
enable 编号-启用断点
info breakpointsi b查看断点
runr从头开始连续运行程序
undispaly 跟踪显示编号-取消跟踪显示(注意是编号)

观察点

命令简写描述
watch-设置观察点
info watchpointsi ~查看已设置的观察点
x-从某个位置开始打印存储单元的内容,全部当成字节来看,而不区分哪个字节属于哪个变量

参考: Linux C 编程一站式学习.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值