虚拟机是XP情况:

启动项添加调试启动,并设置波特率为115200

具体操作可在boot.ini中添加如下代码:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="MicrosoftWindows XP Professional" /noexecute=optin /fastdetect /debug/debugport=com1 /baudrate=115200


虚拟机是WIN7 WIN8情况:

1.启动一个管理员权限的命令行窗口.

2.执行如下命令将当前的启动入口复制一份

   bcdedit /copy {current} /d "Kernel Debug"

   其中双引号重的字符串为新启动入口的名称如果执行成功显示类似如下的信息:

  “已将该项成功复制到 {f349d9f9-660a-11e1-892b-b9453034af9f}。”

  花括号中的内容是新启动入口的GUID,用来唯一标识这个启动入口。

3.执行如下命令对这个启动入口启动内核调试:

   bcdedit /debug {f349d9f9-660a-11e1-892b-b9453034af9f} on

4.设置目标主机与主机间的通信参数

   bcdedit /set {f349d9f9-660a-11e1-892b-b9453034af9f} debugtype serial

   bcdedit /set {f349d9f9-660a-11e1-892b-b9453034af9f} debugport 1

   bcdedit /set {f349d9f9-660a-11e1-892b-b9453034af9f} baudrate 115200

5.执行bcdedit 列出刚刚创建的启动项和参数,确认以上设置都已经被记录下来。

设置完成以后可以通过CMD-> msconfig的引导来查看结果 如图

windbg+VM 设置内核调试环境


vmware中的设置:

 1打开相应 vmware虚拟机上的 “Virtaul Machine Settings“

windbg+VM 设置内核调试环境

 2. “Hardware”选项中 ----> 点击“Add" 添加一个串口设备 SeriallPort

windbg+VM 设置内核调试环境

 3. "Next",在 "Serial Port" 里选中 “Output to named pipe"

windbg+VM 设置内核调试环境

 4. "next",然后如下设置

windbg+VM 设置内核调试环境

 5.  确定之后,回到如下界面,在右脚"Virtual Machine Settings"页面时,在“I/O Mode”里选中“Yield CPU on poll“

windbg+VM 设置内核调试环境

 6.  Ok之后就设定完毕了。


Windbg设置

创建windbg的一个桌面快捷方式,然后,右键->属性,在目标中的引号后面添加如下:

-b -k com:pipe,port=\\.\pipe\com_1,resets=0

示例如下:

"C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x86\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_1,resets=0


操作方式提示

如果在虚拟机系统启动过程中,如果打开了windbg之后,整个系统就像死机,不动了。估计是windbg启动后设定了断点做调试,试试按F5,或者g这样就可以恢复原来的状态。


多系统同时调试的设置

比如想同时开启3个WINDBG调试VM中的XP,win7,win8.可以想象成有一台配置很强大的PC假定他为PC_A 他有3个串口,还有3台PC 每台PC只有一个串口,假定他们为PC_1,PC_2, PC_3现在需要让PC_A同时通过串口调试连接其他3台PC进行调试, 需要注意的地方有以下几点:

1.每个虚拟系统中设置都和以前一样,都设置为com1,这个可以理解为每个系统都只有一个串口设备,当然都是com1了

2.在vmware中的设置有变化,他直接对应的是PC_A,它有三个串口,所以设置分别为\\.\pipe\com_1   \\.\pipe\com_2  \\.\pipe\com_3 分别对应了PC_1 PC_2 PC_3的串口,这样一来PC_A就模拟出了3个串口,且分别和PC_1 PC_2 PC_3对应起来了 具体如图:


windbg+VM 设置内核调试环境


windbg+VM 设置内核调试环境


windbg+VM 设置内核调试环境


3.设置windbg,以前是创建一个windbg的快捷方式,现在是创建3个 分别设定为

"C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x86\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_1,resets=0

"C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x86\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_2,resets=0

"C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x86\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_3,resets=0

具体如图:

windbg+VM 设置内核调试环境


windbg+VM 设置内核调试环境


windbg+VM 设置内核调试环境


windbg+VM 设置内核调试环境

这样调试相应的PC_X时 运行相应的图标即可