gdb(Linux下的调试器)

gdb(Linux下的调试器)


前景提要

  • Linux下的gcc和g++默认动态链接形成的程序是release而不是debug,所以无法被直接调试

    所以我们需要对gcc形成的程序进行强制管理

    • 为了便于理解本文采用gdb与vs下的调试做对比
gcc 文件名 -o 文件名2 -g
#该指令形成的程序是debug版本可以被调试
#可以通过查看文件大小 debug版本文件 > release版本文件

gdb的基本操作指令


  • readelf -s 文件名 :形成可执行程序下的各个分段
  • gdb 可执行程序名 :启动gdb
  • quit :退出gdb
  • l(list) :采用默认方式显示代码
    • l 0:显示所有代码
  • r(run) :开始调试,若没有设置断点则直接运行至程序结束(相当于F5)
  • b num :在第num行打上断点(相当于F9)
  • info b :查看断点(包含断点的编号以及是否启用等信息)
  • d num :删除编号为num的断点
  • n(next) :逐过程调试(相当于F10)
  • p 变量名 :打印指定的变量值
  • s(step) :逐语句调试(相当于F11)
  • bt :查看调用堆栈
  • finish :直接跑完当前所在函数
  • display 变量名 :常显示指定变量值(相当于监视)
  • undisplay 变量编号 :取消所在编号变量的常显示
  • until num :运行到num行/跳转到num行,一般用于函数内的局部性执行
  • c(continue) :运行到下一个断点处
  • disable/enable 断点编号 :打开或者关闭指定断点
  • set var=num :设置变量var的值为num

gdb会记录最近一条命令,所以当前命令和上一条命令相同时可以直接回车

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值