您的位置:首页 > 其它

利用Virtual Box/ VMware Workstation实现单机调试

2011-11-20 11:44 267 查看
最近刚刚学习驱动,对驱动调试这部分很不熟悉,因此希望通过搭建Debug平台来熟悉Windows下的Driver调试。

从网上找了不少资料,帮助很大,下面简单介绍下基于Virtual Box / VMware Workstation建立单机调试环境。

 

1,安装虚拟机,可以是Virtual Box,也可以是VMware WorkStation,这两个都有安装过。

Virtual Box的优点是安装文件比较小(<100M),免费的。缺点是对很多硬件支持不够友好,笔者尝试过USB 2.0设备,发现经常无法识别。

VMWare WorkStation的优点是对硬件的支持比较好,USB 2.0多个设备均可正常工作,缺点是需要收费,安装文件比较大(>450M)。

 

2,安装操作系统,笔者只尝试了Win XP32 SP3,Virtual比较奇怪,如果按照操作系统前没有在硬件里添加串口,按照之后再添加居然不能找到。。。

不过网上有说不影响调试,我没有测试过。VMware Workstation则要友好许多。

 

3,设置调试端口,这里可以采用COM,也可以采用Virtuak KD这款软件,据说Virtual KD利用了Virtual Box/VMware Workstation的后门,可以直接与主机交互数据。

串口的设置如下图:

主机上:(以\\.\pipe\com_2为例,com_2对应了com口,可以不需要跟机器上的真正com口一致,只需要跟WinDbg中所带参数一直即可)



虚拟机上:

a) 设置串口数据速率,如下图:



b) 设置调试机器启动选项,在Windows\下找到boot.ini(需要通过 工具->文件夹选项->查看 设置"显示所有文件和文件夹",并关闭"隐藏受保护的操作系统文件")

打开后,添加如下:

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

如图:



 

这些都设置好了之后就可以调试了,这里采用的是WinDDK自带的WinDbg,WinDbg还有些参数需要设置,启动时需要设置参数:

windbg -b -k com:port=\\.\pipe\com_2,baud=115200,pipe

    可以在桌面或者其他位置建立快捷方式,修改其中的 属性->目标

以"C:\Program Files\Debugging Tools for Windows (x86)\windbg.exe"为例,

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

    接下来就是启动虚拟机,这时候经常会发现虚拟机卡死,启动不了,或者停在某个位置,笔者观察,这是虚拟机在等待主机连接,这时候只需要打开上述方式建立的快捷方式或者输入命令参数即可。此处的com:port=\\.\pipe\com_2需要跟Virtual box/VMware Workstation中所设置的端口一致。

    Windbg启动后出现 Waiting to reconnect... 字样,稍等出现如下字样,则说明已经连接上:



这时候虚拟机会停在某个位置,这时候是调试机器在等待调试命令,正如上面提示的

*                   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.                                          *

此时如果继续运行至需要输入 "g"  即可。

 

至此,单机调试环境已经OK了,下来就是加载symbols、加载sys进行断点设置以及单步调试了。

 

参考:

http://hi.baidu.com/_achillis/blog/item/4f2ec159f64bfa86810a18cd.html

http://hi.baidu.com/_achillis/blog/item/4666c1c9ed915e107f3e6fa8.html

http://hi.baidu.com/_achillis/blog/item/734018fb91ddbe9058ee90f2.html

 

http://blog.csdn.net/BackStrokeFish/article/details/2205404

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息