一些调试软件的使用
(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]
?
?
?