GDB的几个TIPS

10 篇文章 0 订阅

  [disas]
  反汇编一段指令。可以带零个、一个或两个参数。第一个参数是反汇编开始地址,第二个参数是反汇编结束地址。
  如果没有参数,则反汇编当前的函数。

  [内存读/写断点]
  watch *(int *)0x12345678
  在 0x12345678 处下写断点,断点的范围为 4个字节。
  gdb支持更大范围的内存写断点。
  rwatch ,awatch 用法同 watch ,分别表示读断点和读写断点。
  读写断点依赖于 gcc可用的硬件寄存器。
  (其实是设置一个watchpoint用于监视表达式的值被读写)

  [rbreak REGEX]
  在所有满足表达式REGEX的函数上设置断点。这个命令在所有相匹配的函数上设置无条件断点,当这个命令完成时显示所有被设置的断点信息。
  这个命令设置的断点和/"break/"命令设置的没有什么不同。
  这样你可以象操作一般的断点一样对这个命令设置的断点进行删除,使能,使不能等操作。
  当调试C++程序时这个命令在重载函数上设置断点时非常有用。

 
  [寄存器窗口]
  (gdb) display  /x $eax    
 
  [设置反汇编代码使用的指令集]
  (gdb) set disas intel
  设置反汇编代码使用的指令集,可选择 intel 指令集或 AT&T指令集.
  该指令只能用于x86平台。

  [捕获"段错误"的信号]
  (gdb) handle SIGSEGV

  [抛出异常时捕获]
  (gdb) catch throw

  [强制返回]
  (gdb) return
  程序直接从当前行跳转到 return 处。如果函数有返回值,则加在 return 命令之后。例如,return 1。跳转中,栈平衡是自动维护的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值