-no-reboot
+ kernel.panic=-1
-
qemu-system-X -no-reboot
opção QEMU CLI: faz o QEMU sair quando o convidado tenta reinicializar
-
Parâmetro de inicialização do kernel
kernel.panic=-1
: faz com que o Linux tente reinicializar imediatamente após um pânico:
Ele também retorna 0
como pvpanic
, mas tem as seguintes vantagens:
- não é necessário recompilar nada, apenas um parâmetro de inicialização
- funciona em armar e aarque64
-M virt
bem como x86, enquanto o pvânico parece específico do x86, pois está abaixo de arch/x86
Testado com esta configuração .
Acompanhe o símbolo panic
com o GDB
Outra maneira de fazer isso pode ser detectar quando o endereço da função panic
é atingido e tentar fazer com que o QEMU seja encerrado.
Você pode definitivamente quebrar o GDB em panic
, conforme explicado em: link
Mas TODO: como fazer o QEMU sair com o status 1? Usando monitor quit
, de dentro do GDB, que encaminha quit
para o monitor QEMU do GDB, fica muito próximo, mas não exatamente, já que não sai com status 0
.
gem5 faz esse rastreamento por padrão nativamente, o que é bastante impressionante.
Isso acontece em: link
Talvez os desenvolvedores do QEMU possam se inspirar nessa técnica e implementar algo semelhante.