Ponto de interrupção de hardware no GDB + QEMU faltando start_kernel

4

Estou tentando depurar um kernel em execução no QEMU com o GDB.

O kernel foi compilado com estas opções:

CONFIG_DEBUG_INFO=y
CONFIG_GDB_SCRIPTS=y

Eu inicio o kernel no qemu com o seguinte comando:

qemu-system-x86_64 -s -S -kernel arch/x86_64/boot/bzImage

Em um terminal separado, eu inicio o GDB pelo mesmo caminho e emito esses comandos em sequência:

 gdb ./vmlinux
(gdb) target remote localhost:1234
(gdb) hbreak start_kernel
(gdb) c

Eu não forneci um rootfs, já que não estou interessado em um sistema de trabalho completo a partir de agora, apenas o kernel. Eu também tentei combinações de hbreak / break.

O kernel apenas inicializa e atinge o pânico do kernel, já que rootfs não podem ser encontrados ... esperados. Eu quero que ele pare em start_kernel e depois passe pelo código.

observação: se eu definir um ponto de interrupção imediato, ele funciona e pára, mas não no start_kernel / startup_64 / main

É possível que o qemu não esteja chamando todas essas funções, ou esteja mascarado de alguma forma?

Kernel: 4.13.4 
GDB: GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.3) 7.7.1
GCC: gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4    
system: ubuntu 14.04 LTS

NOTA: Este mesmo procedimento funcionou com o kernel 3.2.93, mas não funciona com o 4.13.4, então eu suponho que mais algumas configurações sejam necessárias. Eu não consegui encontrar recursos online que permitiram este procedimento de depuração para o kernel 4.0 e acima, então a partir de agora eu continuo com o 3.2, todas e quaisquer entradas sobre isso são bem vindas.

    
por ArunMKumar 04.10.2017 / 11:52

1 resposta

5

Eu me deparei com o mesmo problema e encontrei a solução da lista de discussão de iniciantes do kernel do linux .

Você deve desabilitar KASLR na linha de comando do kernel com a opção nokaslr ou desabilitar a opção do kernel "Aleatorizar as seções da memória do kernel" "Tipo de processador e recursos " quando você constrói sua imagem do kernel.

    
por 08.10.2017 / 17:25

Tags