`

一些调试软件的使用

 
阅读更多

(1)gdb的使用,别人的帖子写的不错,直接贴链接吧,有空了自己再重写。

 

【1】gdb常用命令  http://blog.csdn.net/gnuhpc/article/details/4368831

       主要讲了常用的gdb命令,对几个易混和重要的自己记录一下。

       r : 运行程序,直到断点

       c:从断点继续运行,直到下一个断点

       s与n的区别:s遇到函数会跳到函数中,继续在函数中单步,而n则直接调用函数,把调用函数看成一步。

       clear 的行号指示的断点,delete 的是info breakpoints中的断点统一编号

       until直到循环体结束,finish直到函数结束。

       字母l,列出10行源代码

       回车,重复上一次命令

       p,打印,可跟表达式, 例如  print  foo(123)  ,以参数123调用函数foo 

       bt:backtrace(回溯的缩写)

【2】GDB堆栈跟踪的方法 http://www.cppblog.com/BlueSky/archive/2007/11/20/37012.html

        主要讲了gdb中的堆栈帧是如何安排的,以及bt,frame,info locals命令的配合使用,在函数调用层次很多时,frame不得不用啊,写得很实用。

【3】linux下core文件调试方法  http://blog.csdn.net/shaovey/article/details/2744487

        主要讲了在linux下如何配置生成的core文件,其次是如何调用core文件。

 

(2)内存泄露调试 

【1】内存泄露检测工具比较  http://apps.hi.baidu.com/share/detail/6083671

         里面写的内存泄露发生方式不错:(1)常发性(2)偶发性(3)一次性(4)隐式

【2】应用 Valgrind 发现 Linux 程序的内存问题   http://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/

         大致讲了一下valgrind的工作原理和几个简单例子。

【3】Valgrind 使用简单说明  http://hi.baidu.com/timegoneby/blog/item/ffaad71790bf060dc93d6dd6.html

         基本的valgrind使用和简单例子

valgrind常用参数:

默认使用Memcheck工具

-log-file=<file> 将输出的信息写入到filename.PID的文件里,PID是运行程序的进行ID

-leak-check=no|summary|full 要求对leak给出详细信息? [summary]
-leak-resolution=low|med|high how much bt merging in leak check [low]

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics