GDB - Debugging-Symbole

EIN Debugging Symbol TableOrdnet Anweisungen im kompilierten Binärprogramm der entsprechenden Variablen, Funktion oder Zeile im Quellcode zu. Diese Zuordnung könnte ungefähr so ​​aussehen:

  • Programmanweisung ⇒ Artikelname, Artikeltyp, Originaldatei, Zeilennummer definiert.

Symboltabellen können in das Programm eingebettet oder als separate Datei gespeichert werden. Wenn Sie also planen, Ihr Programm zu debuggen, müssen Sie eine Symboltabelle erstellen, die die erforderlichen Informationen zum Debuggen des Programms enthält.

Wir können die folgenden Fakten über Symboltabellen ableiten:

  • Eine Symboltabelle funktioniert für eine bestimmte Version des Programms. Wenn sich das Programm ändert, muss eine neue Tabelle erstellt werden.

  • Debug-Builds sind häufig größer und langsamer als Einzelhandels-Builds (ohne Debug). Debug-Builds enthalten die Symboltabelle und andere Zusatzinformationen.

  • Wenn Sie ein Binärprogramm debuggen möchten, das Sie nicht selbst kompiliert haben, müssen Sie die Symboltabellen vom Autor erhalten.

Damit GDB all diese Informationen Zeile für Zeile aus der Symboltabelle lesen kann, müssen wir sie etwas anders kompilieren. Normalerweise kompilieren wir unsere Programme wie folgt:

gcc hello.cc -o hello

Stattdessen müssen wir wie unten gezeigt mit dem Flag -g kompilieren:

gcc -g hello.cc -o hello