注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

中吴南顾惟一笑

成功法则就是那19个字

 
 
 

日志

 
 

GDB的几个tips  

2009-12-29 09:02:34|  分类: R&D |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  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。跳转中,栈平衡是自动维护的。
  评论这张
 
阅读(2778)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017