33.Windbg-VMware+windbg搭建双机调试(增加virtualKD)

虚拟机环境

1.xp

虚拟机用的是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

其中最后一行为自己新加,用于创建一个新的调试系统,这里设置的是com2,所以会占用com2

2.win7

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

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

找到cmd,右击管理员身份运行:

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


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


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


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

要删除也容易了:


看到删除了吧~~~~~~~~~~~~~~,同时也注意,这里调试端口是com1

注意看虚拟机的右下角:

调试端口要和通迅端口相同,所以要使用COM2,和命名管道的名字无关,只是window会默认生成同名的命名管道

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

虚拟机设置

关闭虚拟机系统,并配置其属性:加一项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_2,resets=0


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

1.windows使用虚拟COM串口和host主机之间进行数据交换;
2.WinDbg/KD使用VM提供的一个PIPE管道来与目标调试机进行通信。
这里最弱的连接是虚拟COM串口,其传输速率仅为:115200 baudrate,等效于115200 bit per second,也就是大约10KB/S的传输速率。VirtualKD取代了虚拟COM串口的功能,极大的提高了数据交换速率,可达6MB/S,但是官方给出的用!irpfind命令测试的话,vmware平台可达150KB/S,不过已经比虚拟COM串口快了15倍了。具体的效果只有在调试过程当中,才会体会到 -:) 事实上,VirtualKD的主要原理是,利用KD的扩展DLL功能,并且向虚拟机patch一个进程,二者通过pipe来进行通信。

安装:

1.http://virtualkd.sysprogs.org/download/下载

2.解压到本地,把它的target目录copy到虚拟机,点击target/vminstall.exe 运行,然后直接安装即可


3.选择install以后,按照提示直接重启。
4.在host主机端开启vmmon.exe程序(vmmon程序要始终开启着),设置下windbg路径


新版的不要勾选"Replace kdcom.dll"(win10虚拟机才需要)

参看http://virtualkd.sysprogs.org/tutorials/install/

  


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值