Parallels+Windbg+Win7+WinXP搭建双机调试

ʕ •ᴥ•ʔ ɔ:

1 前言

网上教程基本都是VmWare通过命名管道的串口方式进行双机调试的环境搭建。条件不允许,手头只有Parallels和VmWare Fusion。Parallels搭建双机调试的教程Google没有找到。于是自己摸索了记录一下(着急就看下一章开始使用)。

先做定义(参见使用 WinDbg 进行实时内核模式调试):

  • 用来做调试的机器:主计算机
  • 被调试的机器:目标计算机

为了方便,许多人使用以下2种方式搭建:

  1. VmWare下,搭建2个虚拟机,Windows7+Win XP,然后使用串口的命名管道方式进行通信;
  2. VmWare下,主计算机为Windows7,Windows7中安装VmWare然后装一个Win XP,使用串口的命名管道方式进行通信;
  3. 主计算机为本机(非虚拟机),目标计算机为虚拟机。

上述方式2下会遇到的几个问题:

  1. 虚拟机中装虚拟机会导致主计算机性能降低。我给了VmWare Fusion 8G内存4核心,在装Win XP时仍然很卡;
  2. 虚拟机中装虚拟机会提示“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

  1. 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)

      1.png

    1. 硬件 – “+” – 串行口 – 源:名称为com1
    2. 模式:客户端(必须是客户端,Win7为服务器端,不同于VmWare)

2.2 安装Win7

  1. 安装WDK,找到Windbg.exe并创建快捷方式到桌面,路径:C:\WinDDK\7600.16385.1\Debuggers\windbg.exe

  2. 安装对应的Windows调试符号程序。(以默认安装路径安装,否则后续较麻烦)

  3. 给Windbg添加启动参数:

    右键 – 属性 – C:\WinDDK\7600.16385.1\Debuggers\windbg.exe -b -k com:port=com1,baud=115200,reconnect -y

  4. 打开Windbg,添加调试符号路径:File – Symbol File Path添加:

    C:/WINDOWS/Symbols;srv*C:/WINDOWS/Symbols*http://msdl.microsoft.com/download/symbols; ,然后reload

  5. 关机后添加串口如下图。

    2.png

2.3 虚拟机启动/关闭顺序

启动顺序:

  1. 启动Win7,打开桌面的Windbg。
  2. 启动Win XP。

中止顺序:

  1. Win XP。
  2. Win7。