-3

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

int foo(int);

显然,您不会期望由此生成任何调试信息,因为它不会在任何地方调用且未定义,但我想知道是否可以设置任何选项来强制生成此声明的信息。 . 我已经尝试过g++ -g -c -O0 foo.cpp,但它没有生成任何信息。

4

2 回答 2

3

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

于 2013-08-22T16:35:41.717 回答
1

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

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

于 2013-08-22T16:28:54.250 回答