1.主机安装WinDbg
2.设置主机的WinDbg属性参数
3.安装虚拟机并安装系统
4.设置虚拟机的命名管道
5.虚拟机安装WinDbg
6.对虚拟机的调试进行配置
7.设置主机WinDbg
8.调试驱动
1.主机安装WinDbg
2.设置主机的WinDbg属性参数
给WinDbg添加一个快捷方式,再快捷方式的目标后加入一行指令
-b -k com:pipe,port=\\.\pipe\com_1,resets=0
3.安装VM虚拟机并安装系统
安装VM软件之后,并为其安装操作系统。
4.设置虚拟机系统管道
先把打印机的端口移除,要不会因为串行口不匹配而出现问题,新添加一个串行端口,输入以下:
\\.\pipe\com_1
5.安装虚拟机WinDbg
安装的方式和主机一样,直接安装就可以,不需要设置快捷方式的目标参数
6.对虚拟机的调试进行配置
虚拟机以管理身份打开“命令提示符”输入“bcdedit”
设置端口命令:
bcdedit /dbgsettings serial baudrate:115200 debugport:1
复制一个开机选项:
bcdedit /copy {current} /d "Windwos7"
增加一个开机引导项:
bcdedit /displayorder {current} {ID}
注:这个ID要填写上一条命令生成的一串数字或字母。
激活debug:
bcdedit /debug {ID} ON
注:ID以生成的数字或字母串代替
设置新的启动项
bcdedit /debug ON
bcdedit /bootdebug ON
查看当前的调试配置:
bcdedit /dbgsettings
配置正确会显示出使用的第一个串口,波特率为115200bps,和期望的一致,不需要修改。
选择菜单的超时,设置为10秒:
bcdedit /timeout 10
重启虚拟机,选择“Wiondows7[调试模式]”作为启动项
重启虚拟机之后,主机打开WinDbg会出现
如果虚拟机系统出现软中断,直接通过g指令继续运行即可。
如果在调试驱动过程中想断开虚拟机,只需要使用Ctrl+Break 键即可,这时候虚拟机被软中断,需要g命令才可以继续运行。
7.主机WinDbg设置
设置下载symbols文件
.sympath srv*c:\Symbols*http://msdl.microsoft.com/download/symbols
注:当我们本机缺少或没有某个symbol时从上面微软地址自动下载到C:\symbols目录中,如要查看模块先在命令行里输入:
>ld IGFilter
然后重新加载,这样就可以看到所有的模块了。
设置Source File Path目录(源文件)路径
在C盘里新建一个CommonFramework文件夹用来放置要调试的驱动源文件,将编译好的项目下的 xx.cpp或者xx.c文件拷贝到Source File Path目录路径下,这里指定路径为:C:\CommonFramework
这样 Windbg 调试器的配置基本完成了
8.调试驱动
在VM win7系统里运行DriverMonitor加载驱动
为了方便调试需要给代码增加软中断:
__debugbreak();//64位软中断
_asm int 3;//32位软中断
这时候我们运行调试的时候会在软中断中断下来,接着我们就可以在主机的WinDbg里利用 F11 或 F8 对驱动进行调试。
至此坑爹的Win7+VM+WinDbg双机调试就完成了,主要的问题在于 禁用驱动程序签名强制 进入无效,多次进行重启后方可解决,当右下角出现:
才是成功 进去测试驱动模式,这时候利用签名软件对其进行签名,然后用DriverMonitor对其进行加载,加载完毕后主机会出现软中断:
加载完毕后,可以通过设备管理器直接查看驱动的安装情况:
打开设备管理器=》显示》显示隐藏设备
在此处可以查看驱动是否能正常加载卸载。