告诉编译器不要生成标准库的调试信息。

问题描述 投票:0回答:1

我有一个项目正在分析 C++ 文件中的 DWARF 信息。我的系统对于简单的 C++ 文件运行良好,但是当我开始添加 #includes 时就会变得混乱,因为 #includes 转储了大量额外的(通常是不必要的)代码。有没有办法告诉编译器(g++)不要生成标准库的调试信息?我这么认为,因为当你调试代码时,IDE 会在某些地方显示“源代码不可用”。

c++ debugging g++ include
1个回答
0
投票

有没有办法告诉编译器(g++)不要生成标准库的调试信息?

当您说“标准库”时,您可能指的是 STL,它的大部分代码都在头文件中,因此 STL 代码被包含到您的程序中。

不,没有办法告诉 GCC 为其在给定翻译单元中编译的某些(但不是全部)源代码生成调试信息。

那么有时 IDE 中的调试信息只能部分可用吗?

与STL不同,大多数其他库的代码不是在您

#include
的头文件中,而是在实际的可链接库中(即在一组不同的翻译单元中,一起存档到
libfoo.a
中,或者连接在一起形成
libfoo.so
)。这些可链接库可以使用不同的标志进行编译,并且通常在优化和不调试的情况下进行编译。

© www.soinside.com 2019 - 2024. All rights reserved.