zoukankan      html  css  js  c++  java
  • VMware+windbg搭建双机调试

    VM版本如下:


    虚拟机用的是XP系统,找到XP系统打开系统盘(比如C盘),找到Boot.ini,去掉这个文件的只读属性,用记事本打开Boot.ini

    [boot loader]
    timeout=30
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="WIN XP Debug" /fastdetect /debug /debugport=com2 /baudrate=115200

    其中最后一行为自己新加,用于创建一个新的调试系统


    虚拟机如果是win7,就要用bcdedit进行启动设置:



    我们需要复制一个开机选项, 以进入OS的debug模式

    命令为:
    bcdedit /copy {current} /d DebugOS
    DebugOS可以自己定义. 然后复制得到的ID号


    接着增加一个新的选项到引导菜单
    bcdedit /displayorder {current} {ID}
    这里的{ID}的ID值是刚生成的ID值.


    激活DEBUG : bcdedit /debug {ID} ON
    这里的{ID} 的ID值还是刚才的ID值.


    命令执行成功后, 重新启动机器.或者更简单的图形界面设置:在msconfig界面中,选引导,再选高级选项,在选择调试、调试端口、波特率都打上钩

    要删除也容易了:


    看到删除了吧~~~~~~~~~~~~~~


    //---------------------------------分隔线 ---------------------------------------------------------------------------------------------------------------------

    关闭虚拟机系统,并配置其属性:加一项Serial Port 2


    在真实系统中查看"设备管理器",在端口里找到Com1,然后在属性页中的“端口设置”修改速率为115200


    WinDbg的快捷方式属性中的“目标(T)”栏里输入:

    "C:\Program Files\Debugging Tools for Windows (x86)\windbg.exe" -y C:\Windows\Symbols\ -b -k com:port=\\.\pipe\com_2,baud=115200,pipe


    使用时,首先运行虚拟机系统,到bootloader选择进入哪个系统的时候,按下上下方向键倒计时就会停止:


    然后再到真实系统中运行刚才创建的WinDbg快捷方式,运行完成后再在虚拟系统中选择带有调试标志的系统即可。此时回到真实系统,稍等一会就可以看到WinDbg输出信息告诉我们两个系统已经连接上了:


    当windbg连接上后按Ctrl+Break中断,
    输入命令:bu DriverName!DriverEntry(大小写不限)。然后F5(或者输入G命令)让windbg跑起来。
    在虚拟机中使用第三方工具(例如:InstDrv)加载你的驱动文件并启动,那么该驱动文件的入口函数DriverEntry便会被调用。
    由于刚才下好了断点,因此windbg便中断在了该函数的入口。


    更新下:


    "C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_1,resets=0



  • 相关阅读:
    webpack入门
    react中的this.setState()
    Echarts学习之路3(在react中使用)
    Echarts学习之路2(基本配置项)
    react+mobx脚手架搭建多页面开发
    解决使用插件带来的页面弹框滚动穿透问题
    屏蔽微信内置底部前进后退按钮(很迫切的需求)
    input框输入金额处理的解决办法
    git仓库的创建以及本地代码上传
    又发现了一个git clone代码失败时的解决办法
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693442.html
Copyright © 2011-2022 走看看