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

GCC: How to generate line number debug information only?

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

我想提高大型项目的构建速度。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,但要有行号。这可能吗?

谨致问候,Martin

在谷歌上搜索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

你会错吗?我知道Clang支持-gline-tables-only,但据我所知,gcc不支持;它确实支持-g1,但没有线路信息。

时间已经过去。

GCC know包含带有-g1的行号。

您还可以添加另外两个选项来节省更多空间:-g1 -gz -gsplit-dwarf