我有一个项目正在分析 C++ 文件中的 DWARF 信息。我的系统对于简单的 C++ 文件运行良好,但是当我开始添加 #includes 时就会变得混乱,因为 #includes 转储了大量额外的(通常是不必要的)代码。有没有办法告诉编译器(g++)不要生成标准库的调试信息?我这么认为,因为当你调试代码时,IDE 会在某些地方显示“源代码不可用”。
有没有办法告诉编译器(g++)不要生成标准库的调试信息?
当您说“标准库”时,您可能指的是 STL,它的大部分代码都在头文件中,因此 STL 代码被包含到您的程序中。
不,没有办法告诉 GCC 为其在给定翻译单元中编译的某些(但不是全部)源代码生成调试信息。
那么有时 IDE 中的调试信息只能部分可用吗?
与STL不同,大多数其他库的代码不是在您
#include
的头文件中,而是在实际的可链接库中(即在一组不同的翻译单元中,一起存档到libfoo.a
中,或者连接在一起形成 libfoo.so
)。这些可链接库可以使用不同的标志进行编译,并且通常在优化和不调试的情况下进行编译。