本文讲了如何使用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 on
和
bcdedit /Debug on
,开启测试模式。
输入
bcdefit /dbgsettings
查看设置情况如下。
2.VS2019设置
添加新设备
打开
扩展
–
Diver
–
Test
–
Configure Devices…
,选择
Add New Device
。
输入名称,然后下一步。
注意:Network host name必须为虚拟机的计算机名。
Kernel Mode中设置串口通信等信息,如下图:
注意:Pipe name要与虚拟机串口设置的管道名称一致。
下一步,
Driver test configuration
中
Status
显示为
Configured for driver testing
说明一切正常,完成。
3.双机调试
VS2019中,选择
调试
–
附加到进程
,连接类型选择
Windows Kernel Mode Debugger
,连接目标为之前新建的Device,附加。
注意:附加前要开启虚拟机
Debug窗口会显示以下字样,表示已打开管道并等待重连。(注意是
Opened \.\pipe\com_1
)
接着重新启动虚拟机,等待虚拟机进入桌面。Debug窗口显示如下:
注意:1.这里可能会花较长时间,并不是因为卡死了。
注意:2.重启虚拟机的时候记得禁用驱动程序强制签名。
(或者使用testsigning)
进入桌面后,虚拟机可以正常操作。在VS2019中按下
全部中断
,
等待VS停下来,并出现以下画面,再点击
继续
。
(先暂停再继续,否则可能断不下来)
此时就可以设置断点了。
注意:如果VS很长时间都没有响应,可以用任务管理器结束VS,然后重新打开再附加到进程。
等待虚拟机可以正常操作后,将主机生成的驱动程序拷贝到虚拟机中,用相关程序加载,就可以成功命中断点。