Windows内核Debbuging:使用WDK 8.1通过虚拟串行端口进行调试

xte*_*ef_ 5 windows kernel windbg wdk

我目前在从Windows 8.1 x64主机上对Windows 7 x64目标进行内核调试时遇到了一些问题.我在我的主机上运行带有WDK 8.1的Visual Studio 2013,并配置了在VMWare中运行的目标机器.

以下是我对目标机器的配置.它的配置主要是从这里阅读 - http://www.codeproject.com/Tips/545835/Kernel-Mode-Debugging-in-a-VM-using-Visual-Studio:

  • Windows 7 x64
  • 串口COM2,VMWare,名称为\\.\ pipe\com2.检查VMWare中的所有适当选项
  • 通过msconfig启用OS的调试标志.调试端口是COM2,运行速率为115200波特.
  • 在配置计算机之前,我在计算机上运行了测试目标客户端"WDK Test Target Setup x64-x64_en-us.exe"

我能够正确配置计算机 - 它创建了WDK删除用户帐户.但是,我遇到了一些实际调试的问题.以下是步骤

  1. 在VMWare中启动Windows 7 x64目标映像,然后等待启动菜单
  2. 在Visual Studio(主机)中,转到Debug - > Attach to process - > Select my computer - > Select process"Kernel" - > Attach
  3. 在VMWare中,按Enter键以启动Windows
  4. 这需要一段时间,但在我的主机上,Visual Studio最终会连接.我可以选择"Break All"并实际使用调试器.

但是,如果我在启动内核之前没有这样做,我似乎无法连接到调试器.我只能附上一次.例如,我不能让Windows初始化到桌面,然后构建我的驱动程序并开始调试.调试器将始终挂起"等待重新连接...".如果我开始调试内核初始化,决定停止调试,然后尝试重新连接或重新连接,也是如此; 它将无限期地依赖于"等待重新连接...".

tch*_*dev 2

请使用WinDbg进行内核调试。WinDbg 附带了 WDK,与使用 VS2013 相比,它会为您省去很多麻烦。查看手动设置虚拟机的内核模式调试以获取详细说明。如果你在让WinDbg工作时遇到困难,我可以帮助你,但我已经放弃使用VS2013进行内核调试了。