
Ich suche nach einem x86-Emulator, damit ich meinen Linux-Kernel darin ausführen kann. Insbesondere suche ich nach einem Emulator, der alle Funktionsaufrufe auf C/Assembler-Ebene vom Bootloader bis zum Laden des Kernels anzeigt. Darüber hinaus sollte er in der Lage sein, das RAM-Speicherlayout anzuzeigen.
Antwort1
Es stehen zahlreiche Lösungen zum Kernel-Debuggen zur Verfügung. Hier sind einige, die ich verwendet habe:
- bochs, ein Vollsystem-Emulator, hat eine netteeingebauter Debugger(mit optionaler GUI) sowie Unterstützung fürRemote-Debugging mit
gdb
; - QEMU, ein weiterer Vollsystememulator (der auch CPU-only-Emulation pro Prozess unterstützt) unterstützt auchRemote-Debugging mit
gdb
.
Beide können die CPU beim Start des emulierten Systems einfrieren, wodurch das Debuggen des Bootstraps möglich wird. Wenn sie als Ziele für verwendet werden gdb
, unterstützen sie auch das Anhängen von Quellcode, sodass Sie C-Code (oder theoretisch allem, was dies gdb
unterstützt) folgen können.