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.