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

时间:2013-08-24 06:54:28

标签: c++ debugging compiler-construction include g++

我有一个项目,我正在分析来自C ++文件的DWARF信息。我的系统适用于简单的C ++文件,但是当我开始添加#includes时会搞砸,因为#includes转储了大量的额外(通常是不必要的)代码。有没有办法告诉编译器(g ++)不为标准库生成调试信息?我想是这样的,因为当您调试代码时,IDE会说“#34;源代码不可用”。"

1 个答案:

答案 0 :(得分:0)

  

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

当您说"标准库"时,您可能意味着STL(其大部分代码都在头文件中)和因为 STL代码被包含在内你的计划。

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

  

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

与STL不同,大多数其他图书馆&#39;代码在<{1}}的头文件中,而是在实际的可链接库中(即在一组不同的翻译单元中,一起存档到#include,或链接一起进入libfoo.a)。这些可链接的库可以使用不同的标志进行编译,并且通常在调试时进行优化编译。