Debugging 如何找出x86 CPU重置的原因?

Debugging 如何找出x86 CPU重置的原因?,debugging,x86,qemu,osdev,Debugging,X86,Qemu,Osdev,我在QEMU上运行Linux,模拟x86_64 CPU。我正试图将Kexec转换成elf32格式的内核,但是在执行内核后,系统会重新启动,我不知道如何找出原因 我连接了GDB,可以确认新内核已正确加载并开始执行。在新内核设置了新的IDT之后,我设置了一个HW断点,并在所有向量上设置断点,以尝试捕获可能引发的任何异常(三重故障重置),但似乎什么都没有命中 除了故意的重新启动技术(远JMP 0xFFFF:0000…等等),还有什么可能会导致CPU复位,而我丢失了吗 谢谢。使用附加选项运行QEMU-d

我在QEMU上运行Linux,模拟x86_64 CPU。我正试图将Kexec转换成elf32格式的内核,但是在执行内核后,系统会重新启动,我不知道如何找出原因

我连接了GDB,可以确认新内核已正确加载并开始执行。在新内核设置了新的IDT之后,我设置了一个HW断点,并在所有向量上设置断点,以尝试捕获可能引发的任何异常(三重故障重置),但似乎什么都没有命中

除了故意的重新启动技术(远JMP 0xFFFF:0000…等等),还有什么可能会导致CPU复位,而我丢失了吗


谢谢。

使用附加选项运行QEMU
-d int-无需重新启动-无需关机
可以帮助您跟踪问题<代码>-d int将显示发生的中断和异常,
-no reboot-no shutdown
阻止QEMU重新启动或关闭。