21 Stimmen

Finden Sie den Pfad des Quellcodes für die ausführbare Datei, die derzeit im GDB debuggt wird.

Ich kann einen Haltepunkt in main setzen und den Code mit dem korrekten Quellcode debuggen, aber ich weiß nicht, woher GDB den Quellcode bezieht.

Der Quellcode ist nicht im CWD (aktuelles Arbeitsverzeichnis) vorhanden.

Wie kann ich herausfinden, von welchem Ort GDB den Code bezieht?

29voto

Sie können den GDB-Befehl verwenden:

info source

Beispiel-Ausgabe:

Aktuelle Quelldatei ist a.c
Kompilationsverzeichnis ist /home/user/test
Befindet sich in /home/user/test/a.c
Enthält 17 Zeilen.
Quellsprache ist c.
Kompiliert mit dem DWARF 2 Debugging-Format.
Enthält Präprozessor-Makro-Informationen.

6voto

fabrizioM Punkte 43906

Verwenden Sie

(gdb) show directories

Wenn Sie nicht wissen, wo diese Verzeichnisse festgelegt sind, überprüfen Sie Ihre .gdbinit Datei, um zu sehen, ob es Anweisungen wie

directory /path/to/source

Sehen Sie auch diese andere Stack Overflow-Frage zu GDB.

6voto

Marko Kevac Punkte 2692

Diese Informationen werden im Binärformat im DWARF2 gespeichert. Um die DWARF2-Informationen anzeigen zu können, können Sie das dwarfdump-Dienstprogramm verwenden. Die benötigten Informationen befinden sich im Feld DW_AT_comp_dir.

3voto

diciu Punkte 28693

Das Binärformat ist wahrscheinlich mit "-g" kompiliert - d.h. Debugging.

2voto

Verwenden Sie das GDB-Kommando "show directories", um den Suchpfad für Quellen anzusehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X