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

最近刚刚学习驱动,对驱动调试这部分很不熟悉,因此希望通过搭建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

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值