GCC:如何仅生成行号调试信息?

时间:2013-07-28 11:26:51

标签: c++ debugging gcc compilation

我想提高大型项目的构建速度。 opt构建使用-O2 -g编译。我注意到没有-g,编译变得更快,大约10-20%。生成的二进制文件具有足够的信息来分析崩溃,除了行号。有没有办法包括行号信息,但没有别的?

根据http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html,行号仅在第2级(即-g2或默认值-g)或以上产生。但根据这个http://gcc.gnu.org/wiki/DebugFission,行号只是调试信息的一小部分(1%)。所以对我来说最好是-g0或-g1但是有行号。这可能吗?

祝你好运, 马丁

2 个答案:

答案 0 :(得分:7)

使用Matthieu提到的Clang选项,我找到了一个gcc的补丁,可以满足我的需要。它已经提交给主干,但已经有两年了。这意味着库存GCC无法做到这一点,但使用此补丁,它可以使用选项“-gmlt”

来完成

http://old.nabble.com/-patch--Add-new--gmlt-option-for-min.-debug-info-with-line-tables-%28issue4440072%29-td31482851.html

答案 1 :(得分:6)

你可能弄错了吗?我知道Clang支持-gline-tables-only,但据我所知,gcc没有;它确实支持-g1,但没有行信息。