我有一个项目,我正在分析 C++ 文件中的 DWARF 信息。我的系统适用于简单的 C++ 文件,但是当我开始添加 #includes 时会变得一团糟,因为 #includes 会转储大量额外(通常是不必要的)代码。有没有办法告诉编译器(g++)不为标准库生成调试信息?我会这样认为,因为当您调试代码时,IDE 会显示“源代码不可用”的块。
问问题
178 次
1 回答
0
有没有办法告诉编译器(g++)不为标准库生成调试信息?
当您说“标准库”时,您可能指的是 STL,它的大部分代码都在头文件中,因此STL 代码被包含在您的程序中。
不,没有办法告诉 GCC 生成一些调试信息,但不是它在给定翻译单元中编译的所有源代码。
那么调试信息有时只能在 IDE 中部分可用?
与 STL 不同,大多数其他库的代码不在您的头文件中#include
,而是在实际的可链接库中(即在一组不同的翻译单元中,一起归档到libfoo.a
,或一起链接到libfoo.so
)。这些可链接库可以使用不同的标志进行编译,并且通常在进行优化和不进行调试的情况下进行编译。
于 2013-08-25T06:50:41.280 回答