Ich versuche momentan wiedereinmal mein OS zu debuggen.
Vor einiger Zeit habe ich bereits einmal einen Anlauf gestartet:
Softwareentwicklung -> Thema: Kerneldebugging unter Windows mit QEmu & GDBInzwischen bin ich auf Eclipse umgestiegen.
Jetzt habe ich im Moment wieder zwei Probleme mit dem Debugging:
1. Wenn ich die Debuginformationen einschalte(egal ob g1, g2 oder g3), kann GRUB den Kernel nicht mehr starten.
Meldung von Grub:
Booting 'start'
kernel /kernel.bin
Error 13: Invalid or unsupported executable format
Press any key to continue...
Ohne Debuginformationen hat GRUB keine Probleme den Kernel zu starten.
Als Postbuild führe ich noch folgende Befehle aus:
copy "%CD%\kernel.bin" "%CD%\..\cd\kernel.bin"
cd ..
mkisofs -R -J -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o "cdrom.iso" "cd/"
i586-elf-objcopy --only-keep-debug "cd\kernel.bin" "kernel.sym"
copy "cd\kernel.bin" "kernel.sym"
i586-elf-objcopy --strip-debug "cd\kernel.bin"
Das Problem tritt auch auf, wenn ich die letzten drei Befehle zum extrahieren der Debuginformation auskommentiere.
2. Eclipse weigert sich im Moment beharrlich Qemu zu starten ("
${project_loc}\RunDebugQemu.bat") und kommt immer mit einen nichtssagenden Fehlerfenster:
Excetion occurred during lauch
Reason:
Program is not a recognized executable.
Details:
Program is not a recognized executable.
Program is not a recognized executable.
Program is not a recognized executable.
Die oben erwähnte Batchdatei startet Qemu im Debugmodus und scheint zu funktionieren.
Im Moment habe ich meine Debug-Konfiguration im Abschnitt "
C/C++ Application" erstellt. Vorher habe ich schonmal einen Versuch mit "
C/C++ Remote Application" gestartet.
Da es schwierig ist alle möglicherweise wichtigen Einstellungen hier anzugeben, habe ich einen(/mehrere) Screens von den Einstellungen angehängt.
Meine "
gdb.gdbinit" sieht so aus:
symbol kernel.sym
target remote 127.0.0.1:1234
Hoffentlich wisst ihr eine Lösung.
Ich bin inzwischen schon sehr genervt von meinen Debuggingproblemen...