2013-07-28 11 views
9

Ich möchte die Baugeschwindigkeit eines großen Projekts verbessern. Der opt-Build wird mit -O2 -g kompiliert. Ich habe bemerkt, dass ohne -g die Kompilation schneller wird, etwa 10-20%. Die resultierende Binärdatei verfügt über genügend Informationen zum Analysieren von Abstürzen, mit Ausnahme der Zeilennummern. Gibt es eine Möglichkeit, Zeilennummerninformationen hinzuzufügen, aber sonst nichts?GCC: Wie generiert man nur Zeilennummer-Debug-Informationen?

Gemäß http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html werden Zeilennummern nur auf Ebene 2 (d. H. -g2 oder die Standardeinstellung von -g) oder höher erstellt. Aber nach dieser http://gcc.gnu.org/wiki/DebugFission sind Zeilennummern nur ein Bruchteil der Debug-Informationen (1%). Für mich wäre es am besten, -g0 oder -g1 zu haben, aber mit Zeilennummern. Ist das möglich?

Mit freundlichen Grüßen, Martin

Antwort

6

Könnten Sie sich irren? Ich weiß, dass Clang unterstützt -gline-tables-only, aber soweit ich gcc sehen konnte nicht; Es unterstützt -g1, aber es gibt keine Zeileninformationen.

+0

Danke für den Hinweis. Ich fand auch, dass dieser Patch an gcc gesendet wurde, was es gcc erlaubt, das gleiche zu tun, aber es scheint seit einiger Zeit ausstehend zu sein. –

+0

Gibt es eine Möglichkeit, die von GCC generierten exzessiven Debug-Informationen zu entfernen? Beispielsweise sind viele Zeichenfolgen im Abschnitt ".debug_str" nicht erforderlich, aber die Dateinamen und Funktionsnamen sind ebenfalls vorhanden, daher sollten wir den gesamten Abschnitt nicht entfernen. – pts

7

Googeln die von Matthieu erwähnte Clang-Option, ich fand einen Patch für gcc, der tut was ich will. Es wurde für den Kofferraum eingereicht, ist jedoch seit zwei Jahren anhängig. Dies bedeutet, Lager GCC nicht in der Lage ist, dies zu tun, aber mit diesem Patch kann es tut es mit der Option „-gmlt“

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

+3

Gut gemacht! Ich habe versucht, die Option zu googeln, aber habe nichts in gcc bekommen. Es ist eine Schande, dass der Patch noch aussteht. Vielleicht möchten Sie Ihr Interesse daran bekunden. –

Verwandte Themen