windbg+VM 设置内核调试环境
2012-02-24 11:56
253 查看
虚拟机是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的引导来查看结果 如图
![](http://img.blog.csdn.net/20130831093445671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2hhdGRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
vmware中的设置:
1.打开相应 vmware虚拟机上的 “Virtaul Machine Settings“
![](http://img.my.csdn.net/uploads/201304/21/1366553602_4936.jpg)
2. “Hardware”选项中 ----> 点击“Add" 添加一个串口设备 SeriallPort
![](http://img.my.csdn.net/uploads/201304/21/1366553614_6113.jpg)
3. "Next",在 "Serial Port" 里选中 “Output to named pipe"
![](http://img.my.csdn.net/uploads/201304/21/1366553625_8594.jpg)
4. "next",然后如下设置
![](http://img.my.csdn.net/uploads/201304/21/1366553636_7623.jpg)
5. 确定之后,回到如下界面,在右脚"Virtual Machine Settings"页面时,在“I/O Mode”里选中“Yield CPU on poll“
![](http://img.my.csdn.net/uploads/201304/21/1366553648_3240.jpg)
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对应起来了 具体如图:
![](http://img.blog.csdn.net/20131216114337765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2hhdGRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20131216114356765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2hhdGRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20131216114409140?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2hhdGRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
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
具体如图:
![](http://img.blog.csdn.net/20131216114850093?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2hhdGRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20131216115053515?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2hhdGRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20131216115103843?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2hhdGRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20131216115112890?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2hhdGRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这样调试相应的PC_X时 运行相应的图标即可
启动项添加调试启动,并设置波特率为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的引导来查看结果 如图
vmware中的设置:
1.打开相应 vmware虚拟机上的 “Virtaul Machine Settings“
![](http://img.my.csdn.net/uploads/201304/21/1366553602_4936.jpg)
2. “Hardware”选项中 ----> 点击“Add" 添加一个串口设备 SeriallPort
![](http://img.my.csdn.net/uploads/201304/21/1366553614_6113.jpg)
3. "Next",在 "Serial Port" 里选中 “Output to named pipe"
![](http://img.my.csdn.net/uploads/201304/21/1366553625_8594.jpg)
4. "next",然后如下设置
![](http://img.my.csdn.net/uploads/201304/21/1366553636_7623.jpg)
5. 确定之后,回到如下界面,在右脚"Virtual Machine Settings"页面时,在“I/O Mode”里选中“Yield CPU on poll“
![](http://img.my.csdn.net/uploads/201304/21/1366553648_3240.jpg)
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对应起来了 具体如图:
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
具体如图:
这样调试相应的PC_X时 运行相应的图标即可
相关文章推荐
- windbg+VM 设置内核调试环境
- windbg+VM 设置内核调试环境
- 基于VirtualBox虚拟机的Windbg内核调试设置
- Windbg内核调试之一: Vista Boot Config设置
- Windbg内核调试之一: server2008 Boot Config设置
- Windbg内核调试之一: Vista Boot Config设置
- Windbg内核调试之一: Vista Boot Config设置
- Windbg内核调试之一: Vista Boot Config设置
- 搭建Windbg和Hyper-V第二代虚拟机,双机调试内核环境
- Windbg内核调试之一: Vista Boot Config设置
- WinDbg+VMware windows内核调试环境搭建
- windbg 调试环境设置
- windows内核驱动之环境搭建-双机调试 wdk7600+win7/xp+windbg
- WinDbg命令详解--调试环境设置
- 设置WINDBG本机内核调试
- Windows内核 - 调试:符号文件和Windbg的安装与环境配置
- 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置 ------符号文件
- Windbg内核调试之一: Vista Boot Config设置
- Windbg远程内核调试环境:Win7 to Win7 via 1394
- 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置