写任何程序动态调试是非常重要的。驱动开发也不例外。
通常现在写驱动的时候,都是在VM上跑的,调试手段基本也是本地windbg + 虚拟机。
虚拟机配置
我用的是win7,
第一步,看下面。成功执行后,会提示:
The entry was successfully copied to {xxxxxxxxxxxxxxxxxxx}
第二步:
继续在CMD中输入bcdedit /debug {xxxxxxxxxxxxxxxx} on
{xxxxxxxxxxxxxx}就是前面一步输出的GUID,用来唯一标识这个启动入口。
这样就行了,可以用bcdedit /dbgsettings来查看
VM配置
需要给VM配置一下,
先增加一个串口配置
选择output to namedpipe
输入一个名字
WinDbg连接
从file菜单里面点击Kernel debug
点击ok。
然后启动VM,选择刚才新加的启动入口
登录Windows后,启动驱动,就会发现Windbg里面可以看到log了。
在Windbg里面打开源文件,再设置pdb文件,就可以单步跟踪了。使用windbg可以大大提高开发效率。