快捷搜索: 王者荣耀 脱发

Win10下VS2019双机调试之调试驱动

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 .pipecom_1)
接着重新启动虚拟机,等待虚拟机进入桌面。Debug窗口显示如下: 注意:1.这里可能会花较长时间,并不是因为卡死了。 注意:2.重启虚拟机的时候记得禁用驱动程序强制签名。(或者使用testsigning)
进入桌面后,虚拟机可以正常操作。在VS2019中按下 全部中断, 等待VS停下来,并出现以下画面,再点击 继续。(先暂停再继续,否则可能断不下来) 此时就可以设置断点了。 注意:如果VS很长时间都没有响应,可以用任务管理器结束VS,然后重新打开再附加到进程。
等待虚拟机可以正常操作后,将主机生成的驱动程序拷贝到虚拟机中,用相关程序加载,就可以成功命中断点。
经验分享 程序员 微信小程序 职场和发展