存档

文章标签 ‘GDB’

独立的调试符号文件

2013年4月29日 没有评论 7,626 次浏览

也许,我们还记得各大Linux发型版提供的debuginfo安装包,比如fedora:http://fedoraproject.org/wiki/Packaging:Debuginfo,这种将可执行程序与调试符号分离的方案好处多多。一方面,缩减了可执行程序的文件大小,在一定程度上提高了程序的执行性能,另一方面,对应的调试符号文件也方便了一些不时之需。本文就来看一下与此相关的两个问题。 一,如何给应用程序创建对应的调试符号文件? 这很简单,看个演示实例。有代码如下: #... [阅读更多]

分类: *nix技术, 跟踪调试 标签: ,

如何对仅在指定调用路径下的函数断下断点

2013年3月16日 没有评论 5,991 次浏览

举个例子,有示例代码如下: # cat t.c #include <stdio.h> void foo() { printf("foo\n"); } void bar() { foo(); } void baz() { foo(); } int main() { bar(); baz(); bar(); ... [阅读更多]

如何追踪函数的完整调用过程

2013年2月5日 2 条评论 9,686 次浏览

何追踪函数的完整调用过程?对于软件编程人员来说,这一个有趣的话题,而在stackoverflow上就恰好有这么一个讨论,本文就对这个讨论里的内容进行一下实际操作与转述。 我们知道两个命令,ltrace和strace,其中ltrace用于追踪记录动态库函数的调用执行,而strace用于追踪记录系统调用函数的调用执行,看示例: #... [阅读更多]

利用GDB7.0的反向调试(reverse debug)特性调试程序

2013年1月11日 没有评论 5,408 次浏览

同事问到一个问题:假设a函数调用了b函数,并且当前执行点已经进入到b函数,如果想退到a函数来查看程序状态,是否有这样的调试工具?因为2010年在CU上写过一篇博客“利用GDB7.0的反向调试(reverse... [阅读更多]

gdb调试内联函数与宏

2012年8月27日 没有评论 11,193 次浏览

在用gdb调试程序的时候,会遇到内联函数与宏的问题,下面来看看。 # cat t.h #ifndef _T_H #define _T_H #include <stdio.h> static inline long utilfunc(long a, long b, long c) { long xx = a + 2; long yy... [阅读更多]

利用gdb在汇编指令级调试C程序

2012年5月30日 没有评论 9,479 次浏览

关于GDB调试C程序的常用命令与手段就不多说了,这里主要介绍一下如何对C程序做到汇编指令级别的调试。 首先是获取汇编代码,这可以通过disassemble命令或x命令或类似的命令: # gdb ./a.out... [阅读更多]