gdb从不同目录

时间:2016-07-18 20:28:11

标签: c gcc macros gdb

我试图使用gdb调试我对一个相当大的c程序的一些补充。我尝试调试的程序广泛使用#define语句来设置整个代码中使用的不同值。我需要能够看到这些值是什么,以帮助我调试(因为它们包括一些非常重要的信息。

经过一番挖掘后,我发现info macro FOOmacro expand FOO命令应该能够在-g3选项中打印这些值(同时尝试了-gdwarf-2和{{ 1}}标志也被传递给编译器(如here所述)。但是,每当我尝试使用它时,我都会得到

-ggdb3

现在,我确定已定义宏,否则前一行代码将无法运行。另外,我确定我已将The symbol `FOO' has no definition as a C/C++ preprocessor macro at <user-defined>:-1 标志传递给编译器。我对问题的位置有一个想法,那就是定义宏的位置。目前,宏在头文件中定义,该头文件与其余文件不在同一目录中(即如果源文件在-g3中,则宏在/foo/bar/blam/..中定义。鉴于此我想想也许问题是gdb不知道要查看这个目录,所以我尝试在gdb中发出/def/mac/here/命令并给它指向包含头文件的目录的路径(基于this这仍然没有解决问题。

有谁知道如何获取这些宏的值?如果是相关的,我正在运行gdb版本7.11并使用编译程序 directoryccgcc。另外,gdb是使用自制软件安装/构建的。

0 个答案:

没有答案
相关问题