Como depurar o kernel do Linux com o GDB e o QEMU?

Eu sou novo no desenvolvimento do kernel e gostaria de saber como executar / depurar o kernel do Linux usando o QEMU eo gdb. Na verdade, estou lendo o livro de Robert Love, mas infelizmente isso não ajuda o leitor a instalar ferramentas adequadas para executar ou depurar o kernel ... Então, o que eu fiz foi seguir este tutorialhttp://opensourceforu.efytimes.com/2011/02/kernel-development-debugging-using-eclipse/. Eu estou usando o Eclipse como um IDE para desenvolver no kernel, mas eu queria primeiro fazê-lo funcionar em QEMU / gdb. Então o que eu fiz até agora foi:

1) Para compilar o kernel com:

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

2) Quando a compilação terminar, eu corro o Qemu usando:

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

que lançam o kernel no estado "parado"

3) Assim, eu tenho que usar o gdb, eu tento o seguinte comando:

gdb ./vmlinux

que rodá-lo corretamente, mas ... Agora eu não sei o que fazer ... Eu sei que eu tenho que usar a depuração remota na porta 1234 (porta padrão usada pelo Qemu), usando o vmlinux como o arquivo de tabela de símbolos para depuração.

Então, minha pergunta é: O que devo fazer para executar o kernel no Qemu, anexar meu depurador a ele e, assim, fazer com que trabalhem juntos para tornar minha vida mais fácil com o desenvolvimento do kernel.

questionAnswers(5)

yourAnswerToTheQuestion