VS 2019 + Win10 + VMware 双机调试

驱动开发过程中, 用双机调试算是最方便的调试方式.

环境配置:

一 虚拟机配置:

        

\\.pipe\com_1

我这里配置的是com1, 所以需要把虚拟机默认的打印机去掉, 因为打印机也会使用com1,也可以配置com2.

在虚拟机里面运行 msconfig

 在虚拟机中用管理权限运行cmd, 执行命令 bcdedit /set testsigning on, 使系统处于测试模式.

编译好的驱动是使用测试证书签名的, 不开启测试模式是无法安装驱动的.

修改虚拟机的计算机名称  [这一步不做也可以]

 

 

 

 这里我编辑为VM-TestDriver

最后一步, 安装WDK的调试包, 不是vs的remote debug

wdk的调试包默认安装在 C:\Program Files (x86)\Windows Kits\10\Remote\x64

安装完, 重启虚拟机

二 VS2019配置 :

配置过程中可以不需要管理员, 但是调试过程需要管理员全选, 尽量所有的步骤都运行在管理权限下

 

其中Network host name 是我上面配置的计算机名字

 

最终的结果

实际调试: 

点击附加后, 状态会变成这样

这时候点一下调试的暂停键

这时候虚拟机会卡死

在debugger 的控制台输入g命令

虚拟机恢复正常, 能操作了, vs进入如下状态 

前面几步, 都不依赖驱动, 主要使VS附加到虚拟机中, 使虚拟机进入调试状态.

下面步骤依赖具体的驱动, 在driverentry入处打断点

把之前编译好驱动文件拷贝到虚拟机中,   用DriverMonitor 或者 devcon 或者 用sc 命令等安装驱动.

注意微过滤驱动, 例如文件过滤驱动, minifilter, 右键inf安装后, 需要使用 fltmc load swapbuffers 命令来加载驱动.

这时候调试器就会处于中断状态

技巧:

        利用VMware的快照功能, 可以快速重测. 

        有时候重新启动vs, 再打开虚拟机并附加到VM虚拟机时一闪而过, 并没有进入下面这个界面

原因是vs有个bug, 在重新打开vs时候, 并没有读取管道信息, 这时候需要重新打开下面这个信息就行了.

总结: 

         vs2017 之后驱动开发变得简单了许多, 以前需要用windbg这老古董, 还需要使用非常多命令, 现在变得跟开发用户程序差不多, 大大提高了生产力, 当然, 要变得专业点还是需要去学习windbg的命令, 但是现在基本不太需要了.

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值