zoukankan      html  css  js  c++  java
  • 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”命令查看内核加载的模块儿。等等。。。。。。通往驱动的大门已经打开,写下来该怎么做就要进一步的学习了。

     

  • 相关阅读:
    JS中所有数组的方法和所有的对象方法,包含ES5和ES6
    (原创!)彻底理解JS中的事件,事件处理函数,钩子函数,回调函数。
    深拷贝和浅拷贝的区别,object.assgin方法是深拷贝还是浅拷贝
    axios,Ajax,jQuery ajax,axios和fetch的区别
    python : 文档比较
    leetcode——989.数组形式的整数加法
    leetcode——66.加一
    leetcode——283.移动0
    leetcode——27.移除元素
    leetcode刷题第一天——两数之和
  • 原文地址:https://www.cnblogs.com/priarieNew/p/9756195.html
Copyright © 2011-2022 走看看