2013-07-28 15 views
9

Mi piacerebbe migliorare la velocità di costruzione di un grande progetto. La build opt è compilata con -O2 -g. Ho notato che senza -g, la compilazione diventa più veloce, circa il 10-20%. Il binario risultante ha informazioni sufficienti per analizzare i crash, ad eccezione dei numeri di riga. C'è un modo per includere le informazioni sul numero di riga ma nient'altro?GCC: come generare solo le informazioni di debug del numero di riga?

In base a http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html, i numeri di riga vengono prodotti solo al livello 2 (vale a dire -g2 o il valore predefinito di -g) o successivo. Ma secondo questo http://gcc.gnu.org/wiki/DebugFission, i numeri di riga sono solo una frazione delle informazioni di debug (1%). Quindi per me sarebbe meglio avere -g0 o -g1 ma con i numeri di riga. È possibile?

Con i migliori saluti, Martin

risposta

6

Potrebbe essere scambiato? So che Clang supporta -gline-tables-only, tuttavia per quanto ho potuto vedere gcc non lo fa; supporta -g1, ma non ci sono informazioni sulla linea.

+0

Grazie per il suggerimento. Ho anche trovato questa patch inviata a gcc che consente a gcc di fare lo stesso, tuttavia sembra che sia in sospeso da qualche tempo. –

+0

C'è un modo per eliminare le informazioni di debug eccessivo generate da GCC? Ad esempio, molte stringhe nella sezione '.debug_str' non sono necessarie, ma i nomi dei file e delle funzioni sono anche lì, quindi non dovremmo eliminare l'intera sezione. – pts

7

Googling l'opzione Clang menzionata da Matthieu, ho trovato una patch per gcc che fa quello che voglio. È stato presentato per il bagagliaio ma è stato sospeso da due anni. Ciò significa magazzino GCC non è in grado di fare questo, ma con questa patch può farlo utilizzando l'opzione "-gmlt"

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

+3

Ben fatto! Ho provato a cercare su google l'opzione, ma non ho ottenuto nulla in gcc. E 'un peccato che la patch sia ancora in sospeso, potresti voler sbatterla/manifestare il tuo interesse in essa. –

Problemi correlati