Parallels+Windbg+Win7+WinXP搭建双机调试
ʕ •ᴥ•ʔ ɔ:
1 前言
网上教程基本都是VmWare通过命名管道的串口方式进行双机调试的环境搭建。条件不允许,手头只有Parallels和VmWare Fusion。Parallels搭建双机调试的教程Google没有找到。于是自己摸索了记录一下(着急就看下一章开始使用)。
先做定义(参见使用 WinDbg 进行实时内核模式调试):
- 用来做调试的机器:主计算机
- 被调试的机器:目标计算机
为了方便,许多人使用以下2种方式搭建:
- VmWare下,搭建2个虚拟机,Windows7+Win XP,然后使用串口的命名管道方式进行通信;
- VmWare下,主计算机为Windows7,Windows7中安装VmWare然后装一个Win XP,使用串口的命名管道方式进行通信;
- 主计算机为本机(非虚拟机),目标计算机为虚拟机。
上述方式2下会遇到的几个问题:
- 虚拟机中装虚拟机会导致主计算机性能降低。我给了VmWare Fusion 8G内存4核心,在装Win XP时仍然很卡;
- 虚拟机中装虚拟机会提示“Intel VT-x处于禁用状态”,处理方法:
- 需要进入主计算机系统的BIOS,选中“Intel (R)Virtualization Technology”,设为启用“Enabled”;
- 但上述方式2的主计算机是虚拟机,无法进入BIOS。VmWare可以在设置中“CPU与内存”中高级设置勾选上允许虚拟化即可。PD要在Pro版本下面才可以设置。
为什么要用Parallels Desktop而非VmWare Fusion:
- PD能够使鼠标无缝衔接,无须按Control+Command(VmWare Fusion太烦了每次都要切换鼠标);
- PD的流畅度可以做到和实体机一样,哪怕只分给虚拟机很少的内存和CPU(PD下的Win7给2CPU+2G,运行VS2019、OD、Chrome、VC++6很流畅);
2 Parallels搭建双机调试环境
基础环境:
- macOS Monterey 12.0.1
- Parallels Desktop 16.0.1(Monterey目前不支持PD17)
- Windows 7 Professional SP3.iso
- Windows XP Professional SP3.iso
- WDK7600(自带Windbg)
- 调试符号的安装程序
搭建场景:
由于手残,将系统升级到了Monterey,但是之前的皇帝版PD17不能用了,网上看了一圈,仅商业版的PD16.0.1可用,那就不能处理“Intel VT-x处于禁用状态”这样提示了,也就是暂时不能在虚拟机中安装虚拟机了。故采用一下方案:
- 使用PD安装2个虚拟机,主计算机为Windows7,目标计算机为Windows XP。
2.1 安装Win XP
Windows XP中修改C盘根目录下的隐藏文件
boot.ini
:1
2
3
4
5
6[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="Debug" /noexecute=optin /fastdetect /debug /debugport=com1串口的名称为:com1(只能填com1,PD无法识别com2)
- 硬件 – “+” – 串行口 – 源:名称为
com1
- 模式:客户端(必须是客户端,Win7为服务器端,不同于VmWare)
2.2 安装Win7
安装WDK,找到Windbg.exe并创建快捷方式到桌面,路径:
C:\WinDDK\7600.16385.1\Debuggers\windbg.exe
。安装对应的Windows调试符号程序。(以默认安装路径安装,否则后续较麻烦)
给Windbg添加启动参数:
右键 – 属性 –
C:\WinDDK\7600.16385.1\Debuggers\windbg.exe -b -k com:port=com1,baud=115200,reconnect -y
打开Windbg,添加调试符号路径:File – Symbol File Path添加:
C:/WINDOWS/Symbols;srv*C:/WINDOWS/Symbols*http://msdl.microsoft.com/download/symbols;
,然后reload
。关机后添加串口如下图。
2.3 虚拟机启动/关闭顺序
启动顺序:
- 启动Win7,打开桌面的Windbg。
- 启动Win XP。
中止顺序:
- Win XP。
- Win7。