利用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中所带参数一直即可)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/11/67a96d4cde4e3bd54dcff89c43380f50.gif)
虚拟机上:
a) 设置串口数据速率,如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/11/346a539a93f12e22e9367ecbf0c2361d.gif)
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
如图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/11/208260c142aefceba506445cb2d7b82e.gif)
这些都设置好了之后就可以调试了,这里采用的是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... 字样,稍等出现如下字样,则说明已经连接上:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/11/6612c351bbff59cc48e25bb9e4ddf367.gif)
这时候虚拟机会停在某个位置,这时候是调试机器在等待调试命令,正如上面提示的
* 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
从网上找了不少资料,帮助很大,下面简单介绍下基于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中所带参数一直即可)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/11/67a96d4cde4e3bd54dcff89c43380f50.gif)
虚拟机上:
a) 设置串口数据速率,如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/11/346a539a93f12e22e9367ecbf0c2361d.gif)
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
如图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/11/208260c142aefceba506445cb2d7b82e.gif)
这些都设置好了之后就可以调试了,这里采用的是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... 字样,稍等出现如下字样,则说明已经连接上:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/11/6612c351bbff59cc48e25bb9e4ddf367.gif)
这时候虚拟机会停在某个位置,这时候是调试机器在等待调试命令,正如上面提示的
* 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
相关文章推荐
- VirtualKD + VMWare实现单机内核调试
- 填坑实录 Android Studio 利用 ADB WIFI 插件实现真机无线调试
- virtualbox centos6.5 ambari1.7 单机安装hdp2.2相关笔记
- 简析利用调试寄存器实现内核函数的HOOK
- 利用 MDT 2010 的 Media 功能实现单机的轻量级接触部署 Windows Server 2003
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- mysql中利用mysqld_multi实现单机多实例
- Debugging Linux Kernel Modules with VirtualBox and KGDB(自己加调试方法总结)
- 如何设置路由器并利用路由器+宽带猫实现单机或是多机共享自动拨号上网
- 利用jlink实现串口调试
- VirtualBox+Windbg 进行双机调试的方法
- MySQL单机多实例部署详解之------利用mysqld_multi配置实现
- [MDT] 利用 MDT 2010 的 Media 功能实现单机的轻量级接触部署 Windows Server 2003
- 搭建virtualbox + kgdb内核调试环境
- CSS3利用box-shadow实现相框效果
- Oracle VM VirtualBox 在linux系统下安装增强插件实现访问主机的共享文档方法
- 利用模板实现virtual 重新覆盖父类函数的功能
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- 利用PEB结构体实现反调试
- VS2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息