我曾经使用调试 Windows 内核虚拟KD, WinDBG和一个虚拟机。
最近我得到了一台Linux机器,现在我想知道当你的主机无法运行时调试Windows内核的最简单方法是什么虚拟KD/WinDBG*?
我假设该解决方案需要两个虚拟机,但我宁愿在我的实际计算机上托管两个实例,而不是让一个实例驻留在另一个虚拟实例中......
有办法让它发挥作用吗?
提前致谢!
*出于稳定性原因,葡萄酒是最后的手段......
解决了!基本上,我最终使用了two(虚拟盒)VMs模拟一个串行连接(零调制解调器电缆)通过Unix 域套接字(在主机上)。欲了解更多信息,请阅读以下内容:
硬件设置*:
- Debuggee:
- 确保机器已关闭并编辑串口设置。
- Enable Port 1,并按如下方式指定值: 端口号:COM1,端口模式:主管道,创建管道:未选中(客户端),端口/文件路径:/tmp/win_link.
- Debugger:
- 与上面相同(使用相同的路径),只是这次创建管道应该是Checked(服务器)。
调试器设置:
- 运行WinDBG并按Ctrl+K调用内核调试.
- in COM,输入:波特率:115200,端口:COM1,重置:0 并验证Pipe和重新连接是未经检查的(重要的)。
- 您将看到以下输出:
Opened \\\\.\com1 Waiting to reconnect...
调试器设置:
- Run /port com1 /baud 115200 /id 1 上的 bootcfg /debug。要验证,请运行bootcfg.**
- Reboot.
- 在启动阶段的早期,另一台机器上的 WinDBG 应该检测到调试程序正在运行。
*假设使用 VirtualBox。 VMWare/KVM 用户按照类似的步骤可能会获得相同的结果。另外,有关更多信息,请参阅VirtualBox 文档 https://www.virtualbox.org/manual/ch03.html#serialports.
**假设访客使用的是 Windows XP。更高版本包括bcdedit,可以按照描述使用here http://msdn.microsoft.com/en-us/library/windows/hardware/ff556867%28v=vs.85%29.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)