winDbg + VMware + window 双机联调环境搭建

这里简单的介绍一下内核开发双机联调的搭建环境,尽管网上有很多类似的文章,但看了很多总是不太舒服,觉得不太明白,所以自己实践一下总结一篇。下面就拿我的环境简单介绍,希望别人可以看懂。

准备工具:
装虚拟机VMware,
安装被调试机OS(笔者的是win7 x86)
笔者的真机OS版本为 win8.1 x64(其他真机调试也是可行的)


安装完以后接下来就进行配置了,其实配置并不难,步骤开始了:
VMware win7配置:
1:点击"编辑虚拟机设置",进入虚拟机设置对话框,  添加一个串行端口,

 

2:在命名管道中已经有默认填好的管道名了,这里要注意了,有的会出现com_2,这是因为虚拟机里有打印机驱动或者其他驱动占用了com_1。不管是com多少,以后的管道命名都要一致。还要注意下面的三个设置,“该端是服务器”,“另一端是应用程序”,勾选“启动时链接”。

 

 3:启动VMware中的 win7,管理员运行cmd,  键入bcdedit, 查看默认设置如下:

刚装好的系统,一般只有一个标识为{current}的启动加载器是当前的启动配置, 接下来键入下面命令

拷贝当前配置, 建一个名为 "Windows Debug" 的启动项
bcdedit /copy {current} /d “Windwos Debug”

记录新加的标识符GUID,命令: bcdedit

对新加的启动项,增加调试功能:
bcdedit /debug {之前查询到的GUID} ON

修改调试的设置:
bcdedit /dbgsettings serial debugport:1 baudrate:115200

注意:最后一条命令里的数字1 变色了, 如果删除掉打印机, 新建的串行端口的话就是第一个(COM1), 根据实际情况改成对应的数字即可.

调试好以后, 再次输入 bcdedit /dbgsettings , 查看当前配置是否正确.

或者用如下方法, 代替bcdedit的设置:

在运行中启动msconfig程序,切换到“引导”选项卡,选择“高级选项”,接下来勾选“调试”,调试端口和波特率默认是勾选的,如果没有勾选,则勾选。注意调试端口要和先前设置的一样。单击“确定“后就设置好了。先不要启动系统,等设置好真机后再启动。

到此虚拟机已经设置完毕, 下一步进入真机设置


设置真机
真机设置比较简单,只是设置windbg的启动参数。
1:首先设置windbg的快捷方式,由于被调试机为win7 x86,所以要设置x86版的windbg快捷方式
2:查看快捷方式的属性 ,在目标中windb.exe 后面添加“-b -k com:port=\.pipecom_1,baud=115200,pipe”参数,
3:选择“确定”就设置好了。

所有的设置都已完成了,现在就可以调试了内核了。
启动VMware中的别调试机win7 x86
启动windbg,当在windbg中看到如下字面时,表明环境已经搭好了


这里一定要先启动VMware,再启动windbg,因为当初的设置环境是:VMware是服务器,windbg为应用程序。

当连接通以后就可以进行更深入的调试了,输入“g”命令后让VMware继续启动,还可以输入“lm”命令查看内核加载的模块儿。等等。。。。。。通往驱动的大门已经打开,写下来该怎么做就要进一步的学习了。

 

原文地址:https://www.cnblogs.com/priarieNew/p/9756195.html