g++强制生成调试信息

g++ force debug info to be generated

本文关键字:调试 信息 g++      更新时间:2023-10-16

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

int foo(int);

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

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

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

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