Informationen zu Debugging Symbolen

Die meisten Programme und Bibliotheken werden standardmässig mit debugging Symolen kompiliert (mit der gcc Option -g).

Wenn sie ein Programm oder eine Bibliothek debuggen die mit debugging Symbolen kompiliert wurde, dann kann ihnen der Debugger nicht nur die Speicheradressen, sondern auch die Namen der Funktionen und der Variablen im Programm angeben.

Doch das einbinden dieser debugging Symbole vergrössert das Programm bzw. die Bibliothek deutlich. Um einen Eindruck über den von debugging Symbolen belegten Speicher zu bekommen schauen sie sich dies an:

Die grössen variiern ein wenig, abhängig davon welchen Compiler und welche C Bibliothek sie benutzen. Aber wenn man Programme mit und ohne debugging Symbole vergleicht, ist der Faktor im Regelfall zwischen 2 und 5.

Da die meisten Leute vermutlich niemals einen Debugger mit ihrer Systemsoftware einsetzen, kann hier eine Menge Platz gespart werden indem wir die debugging Symbole entfernen.

Um debugging Symbole aus einer Binärdatei zu entfernen (diese muss eine a.out oder ELF Binärdatei sein), führen sie strip --strip-debug Dateiname aus. Um mehrere Dateien gleichzeit zu behandeln können sie Platzhalter verwenden (benutzen sie z. B. strip --strip-debug $LFS/tools/bin/*).

Der Einfachheit halber finden sie in Kapitel 9 ein einziges Kommando mit dem sie alle debugging Symbole von allen Programmen und Bibliotheken auf Ihrem System entfernen können. Weitere Informationen zum Thema Optimierung finden sie in einer Anleitung unter http://www.linuxfromscratch.org/hints/downloads/files/optimization.txt.