Debugging-bootloader mit gdb qemu
Scheint es ein problem mit der Freedos-bootloader. (Es scheint, dass der bootcode nicht finden können, den kernel unter bestimmten Umständen.)
So, ich bin versucht zu Debuggen des Bootloaders in qemu mit gdb. Gemäß der Anleitung auf mehreren wiki und frei zugänglichen online-Kurs mit Materialien, die ich qemu laufen lassen wie dieses
qemu-system-i386 -fda fdboot.img -boot a -s -S
Und verbinden Sie dann den gdb-wie dies
$ gdb
(gdb) target remote localhost:1234
Kann ich Schritt für Schritt durch die ersten 10 - 12-Anleitung mit si
was ich davon ausgehen ist das SeaBIOS.
Aber Vergangenheit, dass, wenn ich versuche, um den Schritt in die bootloader-code, es setzt die Ausführung Fort, ohne zu brechen, den ganzen Weg bis zu dem FreeDos-Menü-Eingabeaufforderung. Diese völlig springt der bootloader-code, den würde ich gerne untersuchen, Schritt für Schritt, wie es ausgeführt wird.
Was muss ich tun, damit ich gehen kann wenn der bootloader?
[Herunterladen können Sie das freedos floppy-Image von der Projekt-website, wenn Sie versuchen wollen, sich selbst.]
- Alternativer Vorschlag: BOCHS hat einen integrierten debugger, mit denen Sie ein-Schritt-ein-boot-Sektor.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktioniert hier mit qemu 1.3 und gdb 7.3.50.20111117 (Sie wollte nicht sagen, welche Versionen du benutzt).
Ich war in der Lage, einzelne Schritt, Tonnen von Anweisungen, bis ich gelangweilt und legte einen Haltepunkt zu fangen, den bootloader:
Beachten Sie, dass ich gdb zu 16-bit-Modus zuerst mit
set architecture i8086
.