2013-07-28 10 views
9

大きなプロジェクトのビルドスピードを改善したいと思います。 optビルドは-O2 -gでコンパイルされます。私は、-gなしでコンパイルが約10-20%速くなることに気付きました。結果のバイナリには、行番号を除いて、クラッシュを分析するのに十分な情報があります。行番号情報を含める方法はありますか?GCC:回線番号のデバッグ情報のみを生成する方法は?

http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.htmlによれば、レベル2(つまり-g2またはデフォルトの-g)またはそれ以上でのみ行番号が生成されます。しかし、このhttp://gcc.gnu.org/wiki/DebugFissionによれば、行番号はデバッグ情報の一部(1%)に過ぎません。ですから、私にとっては、-g0または-g1を使用するのが最善の方法ですが、行番号を付けることが最善の方法です。これは可能ですか?

敬具、 マーティン

答えて

6

は、あなたは間違っていませんか?私はClang-gline-tables-onlyをサポートしていることを知っていますが、gccが見ることができる範囲ではありません。 -g1をサポートしていますが、回線情報はありません。

+0

おかげで「-gmlt」オプションを使用して行うことができます。私はこのパッチがgccに提出されていることも発見しました.gccは同じことをすることができますが、しばらくしてから保留されているようです。 –

+0

GCCで生成された過剰なデバッグ情報を削除する方法はありますか?たとえば、 '.debug_str'セクションの多くの文字列は不要ですが、ファイル名と関数名もそこにあるので、セクション全体を削除しないでください。 – pts

7

Matthieuに言及されているClangオプションをGoogleで検索すると、gccのパッチが見つかりました。それはトランクのために提出されているが、2年以来保留中である。これは、株式GCCは、これを行うことができないことを意味するが、このパッチでそれがヒントの

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

+3

よくできました!私も同様のオプションをグーグルで試してみましたが、gccで何も得られませんでした。パッチが依然として保留中であることは残念ですが、あなたはそれをバンプしたい/あなたの興味を表したいかもしれません。 –

関連する問題