admin管理员组

文章数量:1558092

本文讲了如何使用VS2019在VMware虚拟机上进行双机调试。
上一篇:Win10下VS2019驱动开发环境搭建(一)

环境:VS2019 Community + Windows10专业版
虚拟机环境(VMware Workstation 16 Pro):Windows10家庭版

VMware虚拟机可以直接在官网下载(密钥可以直接百度搜到):参考下载链接
(操作系统自行安装)

1.虚拟机设置

添加串行端口

虚拟机设置中,先移除打印机,然后添加串口。(打印机可能会占用COM1端口,所以先移除,当然使用其他端口也可以,但相关设置都要更改为相应的端口)

串口设置如下图:

设置系统引导

win+R,运行 窗口中输入 msconfig,回车,打开系统配置。
选择 引导 - 高级选项,设置如下图:

设置测试模式

在本地WDK的安装目录下找到 Remote 文件夹,复制相应的 WDK Test Target Setup.msi 文件到虚拟机中打开。

管理员权限运行cmd,输入 bcdedit /set testsigning onbcdedit /Debug on ,开启测试模式。
输入 bcdefit /dbgsettings 查看设置情况如下。

2.VS2019设置

添加新设备

打开 扩展 - Diver - Test - Configure Devices…,选择 Add New Device

输入名称,然后下一步。注意:Network host name必须为虚拟机的计算机名。

Kernel Mode中设置串口通信等信息,如下图:
注意:Pipe name要与虚拟机串口设置的管道名称一致。

下一步, Driver test configurationStatus 显示为 Configured for driver testing 说明一切正常,完成。

3.双机调试

VS2019中,选择 调试 - 附加到进程,连接类型选择 Windows Kernel Mode Debugger,连接目标为之前新建的Device,附加。
注意:附加前要开启虚拟机

Debug窗口会显示以下字样,表示已打开管道并等待重连。(注意是 Opened \.\pipe\com_1)

接着重新启动虚拟机,等待虚拟机进入桌面。Debug窗口显示如下:
注意:1.这里可能会花较长时间,并不是因为卡死了。
注意:2.重启虚拟机的时候记得禁用驱动程序强制签名。(或者使用testsigning)

进入桌面后,虚拟机可以正常操作。在VS2019中按下 全部中断

等待VS停下来,并出现以下画面,再点击 继续(先暂停再继续,否则可能断不下来)

此时就可以设置断点了。

注意:如果VS很长时间都没有响应,可以用任务管理器结束VS,然后重新打开再附加到进程。

等待虚拟机可以正常操作后,将主机生成的驱动程序拷贝到虚拟机中,用相关程序加载,就可以成功命中断点。

本文标签: 双机环境