g ++强制生成调试信息

时间:2013-08-22 16:25:47

标签: c++ debugging g++

我想编译一行代码并从中生成调试信息 -

int foo(int);

显然你不会指望从这里生成任何调试信息,因为它不是在任何地方调用而是没有定义,但我想知道是否有任何我可以设置的选项来强制生成此声明的信息从来没有。我曾尝试g++ -g -c -O0 foo.cpp,但它不会生成任何信息。

2 个答案:

答案 0 :(得分:3)

函数声明甚至不能使它成为可执行文件。该行仅适用于编译器,并且二进制文件中没有任何生成的代码。由于它在编译过程中消失,因此无法生成调试信息。

答案 1 :(得分:1)

为函数定义生成调试信息,而不是声明。为函数声明生成调试信息没有意义;这样的调试信息没有用处。

类型声明可能会产生调试信息,因为这有助于调试器找到该类型对象的数据成员,但是自由函数声明不会产生有用的调试信息。