强大的gdb

来源:互联网 发布:java游戏圈钱 编辑:程序博客网 时间:2024/05/16 07:33
    今天仔细看了一下gdb的介绍,发现它的调试功能实在是太强大了。VC++在它面前必将羞愧不已。
  
    比较imba的功能列举如下:
    1、break *address   
       在程序运行的内存地址处停住。  
    2、break ... if  
       condition表示条件,在条件成立时停住。比如在循环体中,可以设置break if i=100,表示当i为100时停住程序。
      
    除了断点之外,gdb还能设置观察点和捕捉点。
   
    观察点一般来观察某个表达式(变量也是一种表达式)的值是否有变化了,如果有变化,马上停住程序。
    1、watch
      为表达式(变量)expr设置一个观察点。一表达式值有变化时,马上停住程序。
    2、rwatch
      当表达式(变量)expr被读时,停住程序。
    3、awatch
      当表达式(变量)的值被读或被写时,停住程序。

    gdb可以设置捕捉点来捕捉程序运行时的一些事件。如:载入共享库(动态链接库)或是C++的异常。
   
    设置捕捉点的格式为:
    * catch
    当event发生时,停住程序。event可以是下面的内容:
   1. throw 一个C++抛出的异常。(throw为关键字)
   2. catch 一个C++捕捉到的异常。(catch为关键字)
   3. exec 调用系统调用exec时。(exec为关键字,目前此功能只在HP-UX下有用)
   4. fork 调用系统调用fork时。(fork为关键字,目前此功能只在HP-UX下有用)
   5. vfork 调用系统调用vfork时。(vfork为关键字,目前此功能只在HP-UX下有用)
   6. load 或 load 载入共享库(动态链接库)时。(load为关键字,目前此功能只在HP-UX下有用)
   7. unload 或 unload 卸载共享库(动态链接库)时。(unload为关键字,目前此功能只在HP-UX下有用)

   看来命令行调试工具不仅丝毫不逊色于图形化调试工具,反而在某些方面更加强大。

           

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(504) | 评论(0) | 转发(1) |
0

上一篇:C++内存泄露的定位与解决

下一篇:ubuntu10.04下vim7.3安装手记

相关热门文章
  • test123
  • 编写安全代码——小心有符号数...
  • 使用openssl api进行加密解密...
  • 彻底搞定C语言指针详解-完整版...
  • 一段自己打印自己的c程序...
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
原创粉丝点击