GDB findet keine Zeilennummern, die Objdump tut
-
12-11-2019 - |
Frage
Ich verwende DDD / GDB, um ein Homebrew-Spiel zu debuggen, das auf Nintendods ausgeführt wird, der mit "Arm-EABI-GCC (Devkitarm Release 32) 4.5.1" erstellt wurde. FYI, ich habe den unstatteten Binary hier , falls jemand einige der folgenden Schritte reproduzieren möchte.
- .
-
Ich frage GDB für eine Auflistung eines der Funktionen, die in GreyScript.o sitzen (GOBEXPression :: Eval), es greift es gut aus.
-
Ich frage GDB für eine Auflistung von SimpleGOB :: Play, in derselben GielgyScript.o, klagt, dass "keine Zeilennummer für Simplegob :: Play" bekannt ist. (Arm-EABI-GDB-Sitzung knapp unten :)
arm-eave-gdbreeasault.f generasacodicetagpre. Wenn ich jedoch Arm-EABI-OBJDUMPUDUM-DRL ELEEASSAULT.FLAUM aufforderte, finden es offensichtlich einige Zeilennummern, da sie in der Müllkippe erwähnt werden: generasacodicetagpre.
-Datei wird mit dem generationspoDicetagcode zusammengestellt, somit mit debugging-Symbolen aktiviert, in einem .a-Archiv verpackt und schließlich mit dem Programm verknüpft. Mit -O0 neu kompilieren scheint nicht zu helfen.
Ich habe eine Problemumgehung auf GDB nicht gefunden Zeilennummern Das ist vorzunehmen, Add-Symbol-Datei zu verwenden, obwohl ich nicht ganz weiß, welche Symbollendatei ich hinzufügen würde Fehlend für die GDB, um es mit Zeilennummern annotieren zu können?
Lösung
Versuchen Sie es generakodicetagcode beim Kompilieren mit dem -gstabs+
, um mit GNU-Erweiterungen zu versuchen