用 WinDbg 连接 VMware 的客户系统
倒腾了两天,综合了网上的各个资料,终于能顺利地用 WinDbg 连上 VMware 上的客户系统了。
首先设置好微软符号服务器的以及下载到本地的路径, 像如下所示:
SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols
自然是为虚拟机上的系统设置好串口设备,如下图。

设置客户系统的启动配置文件 boot.ini ,在 [operating systems] 段中加入一行以调试模式启动的配置:
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=”Microsoft Windows XP Professional Debug” /fastdetect /debugport=com1 /baudrate=115200
设置 WinDbg 快捷方式的命令行为:
“C:\Program Files\Debugging Tools for Windows\windbg.exe” -b -k com:pipe,port=\\.\pipe\com_1,resets=0
重新启动虚拟机上的系统,并选择新加入的启动配置进行启动,如下图。

启动 WinDbg ,稍等一下就可以连上了。
整个的探索过程比较郁闷。有些说法指出,在第 4 步的时候应先启动 WinDbg 然后再启动客户系统。但据我尝试,这样往往导致很长时间连不上,而先启动客户系统后立即启动 WinDbg 的连接效果却非常理想,所以在此沿用我的做法。
另外多说一句,应该先关闭客户系统之后再关闭 WinDbg ,否则关闭 WinDbg 后会导致客户系统无响应,并且在重启客户系统后会造成其硬盘的自检与修复。
在 Vista 客户机上的设置
激活 administrator 账户, 方法是, 右击 “计算机” -> “管理” -> “确定”(如图1)

“计算机管理(本地)” -> “本地用户和组” -> “用户” -> “Administrator” -> 右击, 选择 “属性” (如图2)

在 “常规” 选项卡内, 将 “账户已禁用” 上的勾选去掉, 如上图, 点击 “确定” 后退出.
从当前账户上注销, 在登录窗口上登录到 administrator 账户,
在 cmd 命令行上输入以下命令:
- bcdedit /copy {current} /d “Win Vista Debug”
这时会复制出一个新的配置, 记下这个很长的 GUID字符串, 形如 {526D15B4-23B9-4906-B832-08641F7086C4}, 用这个 GUID 进行下一步 - bcdedit /debug {GUID} ON
- bcdedit /bootdebug {GUID} ON
- bcdedit /dbgsettings
这个命令可以查看当前的调试配置 - bcdedit /timeout 7
这个命令设置选择菜单的超时时间, 这里设为 7 秒
重新启动虚拟机, 选择 “Win Vista Debug” 配置即可进入调试模式.
重要更新
上述方法在 64 位的 win 7 主机系统和 64 位的 win 7 客户系统无效, 必须使用 virtualKD 工具.使用方法如下链接. VirtualKD + VMWare实现单机内核调试
延伸阅读:
借助 VMware 实现单机使用 WinDbg
WinDBG + VMware = 调试内核
VMWare+WinDbg搭建(驱动)调试环境








近期评论