首页 > Windows驱动开发 > VMWare搭建驱动双机调试环境

VMWare搭建驱动双机调试环境

一、虚拟机设置

以XP为例,因为XP相对Vista/Win7要小巧玲珑许多,安装方便,占用的空间也少,而且配置更加简单。在“文件夹选项”中设置显示隐藏文件和显示系统文件,打开系统盘(比如C盘),找到Boot.ini,去掉这个文件的只读属性,用记事本打开Boot.ini,大概的内容如下:

1
2
3
4
5
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

上面的Timeout选项为等待时间,可以改短一点,如10,表示等待10秒钟。
在文件的最后增加这样一行内容:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="XP Debug"  /fastdetect /debug /debugport=com1 /buadrate=115200

如果要设置默认进入Debug模式,可以把上面这一行内容加到[operating systems]下面。

1
2
3
4
5
6
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="XP Debug"  /fastdetect /debug /debugport=com1 /buadrate=115200
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

之后保存即可。

二、VMWare设置

关闭虚拟机,来到VMWare之后选择对应的虚拟机,对齐进行设置。选择“Commands”栏中的“Edit Virtual Machine Settings”,单击“Add”按钮增加一个串口,也就是Serial Port,单击下一步,选择“Output to named pipe”,之后进行相应的设置:
VMWare驱动开发虚拟机双击调试设置

三、Windbg设置

给Windbg创建一个快捷方式,设置一下这个快捷方式的属性:在快捷方式的目标后面增加一些命令,我这里是:

"C:\Program Files\Debugging Tools for Windows (x86)\windbg.exe" -b -k com:port=\\.\pipe\com_1,baud=115200,pipe

前面的字符串是Windbg的路径,加上后面的命令就可以了。

之后,最好给Windbg设置一下符号表。打开Windbg,选择菜单项的“File”->“Symbol File Path”,然后填下:

srv*c:\Symbols*http://msdl.microsoft.com/download/symbols

表示从网上下载系统对应的符号表到C盘的symbols目录下,只有需要的时候才会下载;对于已经下载的以后就直接用这个文件夹里面的符号表了。当然实际调试驱动时还要加上自己驱动对应的符号表。当然也可以把系统的Symbols从微软的网站上一次性打包下载下来再解压到C盘的Symbols文件夹。从http://msdn.microsoft.com/en-us/windows/hardware/gg463028可以下载到系统对应的符号表(注意是和虚拟机对应的系统版本)
之后关闭Windbg,会提示是否保存,点击是,保存。

四、测试双击调试环境

先打开虚拟机,开启对应的系统进入调试模式(过了菜单选择时间,进入Debug后会停留几秒钟),然后快速双击设置好的Windbg,就会自动连接到虚拟机了,如果Windbg出现如下的提示,那么就OK了:

*******************************************************************************
*                                                                             *
*   You are seeing this message because you pressed either                    *
*       CTRL+C (if you run kd.exe) or,                                        *
*       CTRL+BREAK (if you run WinDBG),                                       *
*   on your debugger machine's keyboard.                                      *
*                                                                             *
*                   THIS IS NOT A BUG OR A SYSTEM CRASH                       *
*                                                                             *
* If you did not intend to break into the debugger, press the "g" key, then   *
* press the "Enter" key now.  This message might immediately reappear.  If it *
* does, press "g" and "Enter" again.                                          *
*                                                                             *
*******************************************************************************

五、相关问题

如果Windbg提示kernel debugger failed initialization,请看这里WinDbg+VMware之kernel debugger failed initialization
提供一个可用的XP序列号:KG7G9-67KHV-4FQKV-4DYXK-BHQTJ


觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> VMWare搭建驱动双机调试环境
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



  1. 2011年12月12日20:22 | #1

    弱弱的问一下,这个是做啥用的

    [回复]

    代码疯子 回复:

    @the5fire的技术博客, 调试驱动程序用的;写驱动的时候,总要测试一下效果,一般不在本机测试,因为小小的BUG往往会导致蓝屏,虚拟机更加方便。另外,如果要调试驱动,Windbg+VMWare无疑是最佳选择了,没有专门的IDE

    [回复]