Frage

Ich arbeite ein Betriebssystem auf das Schreiben, und ich renne Probleme versuchen, meinen Code zu debuggen. Ich bin mit GDB Bochs' GDB-Stub ‚remote‘ debuggen meinen Kernel zu verbinden. Connecting funktioniert gut, funktioniert das Laden Debugging-Symbole aus der Kernel-Datei. Ich habe einen Haltepunkt für die kmain Funktion, die erfolgreich entfernt, und der Debugger bricht richtig (in meinem Kernel). Aber ich kann nicht „Schritt“ oder „weiter“ durch meinen Code, noch kann GDB offenbar bestimmen, welche Codezeile die aktuelle Zeile ist.

Wenn ich auf „Schritt“ versuchen, ich die folgende Meldung: „Kann nicht Grenzen der aktuellen Funktion finden“. Dies ist die einzige Fehlermeldung, die ich an irgendeiner Stelle zu bekommen.

Mein Code wird in GCC mit der Option -g kompiliert (Ich habe versucht, andere Arten von Debug-Informationen GCC Optionen;. Keine gearbeitet haben) Ich habe versucht, Blick durch das manuelle GDB sowie für die Antwort suchen und ich bin total ratlos. Jede Hilfe wäre toll.

Danke!

War es hilfreich?

Lösung

Nun, ich habe das Debuggen zu arbeiten, aber ich hatte Emulatoren zu wechseln. Ich konnte GDB Arbeiten mit Qemu bekommen, obwohl ich auch tun, dass Probleme hatte. Um GDB zu erhalten zum Qemu gdbserver zu verbinden, hatte ich die folgende Option Qemu weitergeben müssen: "-gdb tcp :: 1234 ipv4". Hat mich für immer an das herauszufinden ... Debuggen perfekt funktioniert jetzt!

Andere Tipps

wirft googeln up „Dies liegt daran, wenn Sie gdbserver angebracht, das Verfahren unter debug hat den C Start-up-Code“abgeschlossen http: // www .cygwin.com / ml / gdb / 2005-03 / msg00237.html ... http://www.bravegnu.org/gnu-eprog/c-startup.html beschreibt den Vorgang, wenn Sie für eingebettete Geräte kodieren, vielleicht wird diese Ihnen helfen?

Wenn Sie die Antwort finden Sie hier posten, wie Ich mag würde wissen, was die Lösung des Problems zu ist.

Ich weiß nicht, warum, aber bochs mit GDB-Stub scheint aktiviert mit den Konfigurationsoptionen wählerisch zu sein. Auf einigen System folgende Optionen wird es brechen: --enable-x86-64, --enable-VMX

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top