VS2015对WDK10驱动程序进行双机调试
扫描二维码
随时随地手机看文章
【1】设置Visual Studio 2015调试方式:
主计算机:WIN7 64位 虚拟机:WIN7 64位 调试器:VS2015 调试的软件:内核驱动程序
一、主计算机和虚拟机两台机器必须关闭防火墙,必须能够互相ping通(使用桥接模式).
二、 将WDK10携带的调试驱动包拷贝到虚拟机中安装:
1)WDK10安装时如果用的是默认路径: //两个都可以安装,因为VS2015可以调试32位和64位的驱动程序
C:Program Files (x86)Windows Kits10Remotex64WDK Test Target Setup x64-x64_en-us //64位调试驱动包
C:Program Files (x86)Windows Kits10Remotex86WDK Test Target Setup x86-x86_en-us //32位调试驱动包
2)如果你自定义了WDK10安装路径,请到你指定的目录寻找.
三、虚拟机添加串口:
1)设置-->添加-->串型接口-->输出到命名管道.
2)设置选项为“另一端为应用程序” 并且“ 为管道命名不要为常见名称” --> 添加命名管道完成.
问题:因为一般虚拟机的串口1是打印机,串口2才是我们创建的,所以可能连接时,会弄错,导致后来不能连接上串口通道.
解决:打开“运行”输入MSConfig,弹出MSConfig工具:(原创百度经验地址:http://jingyan.baidu.com/article/3a2f7c2e6dee4126afd611c6.html)
1)打开boot工具的debug,修改com1为com2:
四、虚拟机进入调试模式://使用管理员权限打开cmd,输入以下命令
1)bcdedit /debug ON 开启调试模式
//设置串口的波特率为115200bps(其实默认就是,不用修改)
2)bcdedit /dbgsettings serial debugport:串口号 baudrate:115200
3)bcdedit /dbgsettings 查看当前的调试配置
4)bcdedit /timeout 10 选择菜单的超时,我设置为10秒
五、驱动程序的项目点右键-->选择属性菜单-->选择调试选项-->在右边要启动的调试器上选择Debugging Tools for windows – Kernel Debugger-->在Remote Computer Name上点击配置,就会出现配置窗口,界面如下:
1)点击Add New Devide添加调试主机.
2)下一步
3)点击下一步,会对虚拟机进行自动安装,在此过程中,不应动虚拟机:
4)安装完成后,点击应用:
5)在VS2015中选择调试-->附加到进程:
1、传输:选择Windows Kernel Mode Debugger
2、限定符:选择创建新测试设备时输入的那个名称
3、以下可用进程出现一个Kernel的进程,点击它附加.
6)附加完成后,VS2015右下角会出现Debugger的“waiting to reconnect”.
7)如果没有问题,重启虚拟机,VS2015右下角会出现Debugger就会连接上了,状态为“正在跑”.
8)虚拟机启动完成后,打开“驱动程序加载工具"
必须确保将加载的驱动程序的.sys是DEBUG版的,而且要与VS2015调试中的代码对应.
(你的sys和加载驱动工具必须已经测试过能够加载驱动程序.)
//这就需要先看地址:http://blog.csdn.net/aaron133/article/details/78091639 加载驱动的文章.
9)打开“驱动程序加载工具"后,VS2015中点击暂停:,你会发现虚拟机整个卡住了.
10)现在才能设置有效断点,F9设置好断点后:
在VS2015右下角的Debugger界面中输入:kd> g 表示继续跑.
11)使用加载驱动程序加载我们的.sys驱动程序,当sys跑起来后,就能够断下来了: