我正在尝试使用 VirtualBox 和 WinDBG 进行 Windows 内核调试。但是每次我遇到断点时,虚拟机 CPU 使用率都会飙升,并且 CPU 寄存器不会显示在 WinDBG 中。难道我做错了什么?
我做了什么:
- 在
boot.ini我设置/debugport=COM1 /baudrate=115200; - 在 VirtualBox 中,我转发
COM1到一个命名管道\\.\pipe\debug; - 在 WinDBG 文件 >
Kernel Debug...>COM选项卡中:勾选“管道”复选框,对于Port = \\\\.\pipe\debug;
在 WinDBG 中找到调试会话,我可以打断点,我可以单步执行代码,我可以在“反汇编窗口”中看到反汇编的代码,我可以在“内存窗口”中查看内存位置。但是在 WinDBG 的“注册窗口”中什么也没有显示。
主机操作系统是 Windows 10,对于虚拟来宾操作系统,我尝试过 Windows XP 和 Windows 7 都有相同的问题。
我真的不知道在哪里寻找这个问题的答案,有人能指出我正确的方向吗?
对于遇到此问题或尝试学习内核调试的任何其他人,我使用了以下教程中的部分内容来了解目前的情况:
- Windows 内核调试技巧(Virtualbox 文档);
- 如何为内核调试配置 WinDbg(博客文章)。