• 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



  • 相关阅读:
    【BUG】android.content.res.Resources$NotFoundException: File res/drawable-xxhdpi/toolbar_line.png from
    关于 折半查找 while 条件 < , <=
    Unity3D——加入剑痕效果(PocketRPG Trail插件)
    用外部物理路由器时使用Neutron dhcp-agent提供的metadata服务(by quqi99)
    项目经理之项目经理注意事项
    让你提前认识软件开发(37):研发流程初探
    1.RunLoop是什么?
    列表类型内置方法
    字符串类型内置方法
    数字类型内置方法
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693442.html
Copyright © 2020-2023  润新知