制作用于调试管理程序的测试台
Making a test-stend for debugging a hypervisor
我想基于一个开放项目为英特尔平台编写我自己的管理程序,我想了解如何调试它。
我确实有调试的打算,但是一有故障就重启,很难找错。我发现我可以使用 QEMU/KVM 和嵌套的管理程序来调试它。可能还有其他变体吗?据我了解,VMware 正处于故障之中。在 AMD 平台上,我使用过 SimNow。
如果宿主系统是Windows.
就好了
谢谢指教
这取决于你的口味。这对夫妇Qemu/GDB是一个好的开始。如果您的主机平台是 Intel CPU,这里有一些有用的提示,您可以:
- 像这样启动 qemu:
qemu-system-x86_64 -enable-kvm -cpu host -s -S ...
.
Qemu 将启动管理程序及其 gdb 服务器并暂停它,直到它从 gdb 接收到 continue
命令。
- 像这样启动 GDB:
gdb /path/to/hypervisor
然后,target remote :1234
将 gdb 附加到 gdbserver
- 使用
hbreak
代替break
,但你只剩下4个断点
- 从这里开始,您可以像一个简单的应用程序一样继续调试
我想基于一个开放项目为英特尔平台编写我自己的管理程序,我想了解如何调试它。
我确实有调试的打算,但是一有故障就重启,很难找错。我发现我可以使用 QEMU/KVM 和嵌套的管理程序来调试它。可能还有其他变体吗?据我了解,VMware 正处于故障之中。在 AMD 平台上,我使用过 SimNow。 如果宿主系统是Windows.
就好了谢谢指教
这取决于你的口味。这对夫妇Qemu/GDB是一个好的开始。如果您的主机平台是 Intel CPU,这里有一些有用的提示,您可以:
- 像这样启动 qemu:
qemu-system-x86_64 -enable-kvm -cpu host -s -S ...
.
Qemu 将启动管理程序及其 gdb 服务器并暂停它,直到它从 gdb 接收到continue
命令。 - 像这样启动 GDB:
gdb /path/to/hypervisor
然后,target remote :1234
将 gdb 附加到 gdbserver - 使用
hbreak
代替break
,但你只剩下4个断点 - 从这里开始,您可以像一个简单的应用程序一样继续调试