debugging 如何找到x86 CPU重置的原因?

yx2lnoni  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(86)

我在QEMU上运行Linux,模拟x86_64 CPU,尝试Kexec到elf32格式的内核,但是在执行内核之后,系统重新启动,我不知道如何找出原因。
我连接了GDB,并确认新内核已经正确加载并开始执行。我在新内核设置了一个新IDT之后设置了一个HW断点,并在所有向量上设置了断点,以尝试捕获任何可能引发的异常(三重故障重置),但似乎没有任何异常发生。
除了故意重启技术(FAR JMP 0xFFFF:0000 ...等)之外,是否还有其他可能导致CPU重置的技术,而我却忽略了?
谢谢。

zujrkrfu

zujrkrfu1#

完成此操作的主要方法是在QEMU调用中使用以下标志

  • -d int导致QEMU显示错误中断
  • -no-reboot将使您的计算机不会重新启动
  • -no-shutdown-no-reboot相同

另外,QEMU重新启动的原因可能是分段错误。

相关问题