Wie kann man den Linux-Kernel mit GDB und QEMU debuggen?

Ich bin neu in der Kernelentwicklung und möchte wissen, wie man den Linux-Kernel mit QEMU und gdb ausführt / debuggt. Eigentlich lese ich das Buch von Robert Love, aber leider hilft es dem Leser nicht, die richtigen Tools zum Ausführen oder Debuggen des Kernels zu installieren. Ich habe also dieses Tutorial befolgthttp://opensourceforu.efytimes.com/2011/02/kernel-development-debugging-using-eclipse/. Ich verwende Eclipse als IDE, um den Kernel zu entwickeln, aber ich wollte zuerst, dass er unter QEMU / gdb funktioniert. Was ich bisher gemacht habe, war:

1) So kompilieren Sie den Kernel mit:

make defconfig (then setting the CONFIG_DEBUG_INFO=y in the .config)
make -j4

2) Sobald die Kompilierung beendet ist, starte ich Qemu mit:

qemu-system-x86_64 -s -S /dev/zero -kernel /arch/x86/boot/bzImage

die den Kernel im "gestoppten" Zustand starten

3) Damit ich gdb benutzen muss, versuche ich folgendes Kommando:

gdb ./vmlinux

welche es korrekt ausführen, aber ... Jetzt weiß ich nicht, was ich tun soll ... Ich weiß, dass ich Remote-Debugging auf dem Port 1234 (Standard-Port, der von Qemu verwendet wird) verwenden muss, wobei vmlinux als Symboltabellendatei für verwendet wird Debuggen.

Meine Frage ist also: Was soll ich tun, um den Kernel auf Qemu auszuführen, meinen Debugger an ihn anzuhängen und sie so zusammenarbeiten zu lassen, um mir das Leben mit der Kernelentwicklung zu erleichtern.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage