《软件调试的艺术》之GDB关键点摘记

  • 在重新编译程序之前不必退出GDB,在调试会话期间也不用退出再重启文本编辑器。只要将文本编辑器放在一个窗口中,GDB放在另一个窗口中,用第三个窗口调试程序即可。
  • 在重新编译代码时,最好不要退出GDB。这样你的断点和建立的其他各种动作都会保留。另外也可将断点和设置的其他命令放在一个GDB启动文件中,每次启动GDB时会自动加载它们。GDB的启动文件默认名为.gdbinit。
  • 很多人以为GDB显示的是最后执行的代码行,事实上,它显示的是将要执行的代码行。
  • 临时断点是首次到达后就会被自动删除的断点,它使用tbreak命令设置。
  • GDB实际上是使用机器语言指令工作的,但是有了增强的符号表的魔力后(-g),GDB表现出了使用源代码行的错觉。
  • 在具有多个断点的代码行上,触发中断的断点将是标识符编号最小的那一个。
  • 如果在修改和重新编译代码时没有退出GDB,那么在下一次执行GDB的run命令时,GDB会感知到代码已修改,并自动重新加载新版本。
  • delete和disable表示删除和禁用断点,enable once命令则会使断点导致GDB暂停执行一次后被禁用,与tbreak类似,但tbreak设置的临时断点是执行一次后被删除了。
  • finish命令(简写为fin)指示GDB恢复执行,直到恰好在当前栈帧完成之后为止。比如,当程序处于某个函数中时,我们可以利用finish命令离开此函数。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值