分类: C/C++
2008-10-03 17:57:19
一、安装windbg+vmware,配置主机与虚拟机
1、windbg是微软提供的免费的内核级的调试工具,到处可以下载
2、vmware不是免费的,不过在网上可以找到破解版。我用的是5.0的。
3、完成了上面二个软件的安装后。进入下一步工作。即配置主机和虚拟机。
4、在vmware里安装操作系统(我装的是winxp,sp2)。这个不会,请查阅相关资料。
5、编辑vmware中winxp这个操作系统的C盘下的boot.ini文件,在[operating systems]节里,添加下面一句话:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional - debug" /fastdetect /debug /debugport=com1
6、打开vmware中winxp的设备管理器,选择端口(com1),如图一
图一
7、双击这个"com1",在弹出的对话框中,设置如图二
图二
8、关闭vmware下的操作系统。配制虚拟机的硬件,VM->Settings->Add->加一个Serial Port,选择"Output to named pipe",然后下一步,第一框里保持默认的 "\\.\pipe\com_1"
第二框里选"This end is the server."
第三框里选"The other end is an application."
选中 "Connect at power on"
然后点击 "Advanced>>" 然后在新窗口中选中 "Yield CPU on poll"。保存退出。
好了,以上就是虚拟机系统要做的全部事情。
到此,虚拟机的设置基本完毕。
9、打开我们真实的操作系统。(我的还是winxp,sp2)
重得6,7步,不过此时是在真实的操作系统中。
10、设置windbg的快捷方式,即它运行时的参数。如下
"D:\Program Files\Debugging Tools for Windows\windbg.exe" -k com:port=\\.\pipe\com_1,baud=115200,pipe
"D:\Program Files\Debugging Tools for Windows\windbg.exe",这个串是你的windbg.exe文件所在路径,后面的是参数。分号是有的。
11、OK.所有的工作都完成了。现在(1)、打开虚拟机。并选择如图三所示
图三
12、选择图三“启用调试程序”选项,并按回车,此时vmware的操作系统处于停顿状态。这是关键的一步,很多文章里没有说清楚,导致不能调试。
13、在做完12步后,在真实操作系统中,运行windbg,看,是不是可以看到调试信息了,虽然看不懂。此时vmware下的操作系统,开始进入我们熟悉的欢迎界面了。
14、在vmware的操作里打开monitor这个软件,相信大家都用过了,然后File->Open Driver.这样就算是装载了我的们的驱动了。
15、切换到真实主机,我们在windbg中,选择File->Open source file(或者Ctrl+O),这样我们就可以调试了,调试方法和调试应用程序如出一辙,我就废话了。
注意:我们的驱动程序(即.sys)文件可以在真实系统下编写,也可以在vmware下的操作系统下编写,但最好还是在真实主机下编写,这样调试起来稍微方便一些。
写了这么多,不知是否解开了你的疑惑。有问题,我们随时沟通,谢谢!