获取没有-g标志的gdb可读符号?

时间:2012-01-10 16:25:20

标签: c++ debugging gdb symbols

我正在开发一个非常大的项目,我想用gdb调试。不幸的是,使用-g标志进行编译需要两天半的时间并且输出大于60Go的库(项目需要大约1Go而没有-g)。

是否有更简单的方法来获取符号表(即能够回溯),如果是,如何? 我已经看到gdb提供了三个级别的调试(-g level ,如here所述),它会有帮助吗?会string吗?

提前致谢。

2 个答案:

答案 0 :(得分:6)

对于仅包含函数名称的回溯,您根本不需要-g

对于包含文件和行信息的回溯,使用最近的GCC版本,请尝试-gmlt选项(最小行表)。请注意,GDB中不会提供任何本地变量信息。

如果你想要局部变量,你可能想要使用-gdwarf-4

您指出的文档适用于gcc-2.95。这是古代版本。如果您仍在使用它,那么第一个任务应该是切换到(当前)gcc-4.6.2

答案 1 :(得分:1)

如果您对要调试的源文件有所了解compile them with -g option。确保你也link with -g选项。现在你有一个部分调试图像。