123456

 

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



posted on 2013-01-04 20:46  hgy413  阅读(314)  评论(0编辑  收藏  举报

导航