windbg调试方法
1、网络连接
两台pc通过网络连接,我们把驱动测试的主机称为目的机,把运行windbg进行远程调试的主机称为host主机,首先设置目的机与host主机连接的ip端口以及key信息,已管理员权限运行CMD,输入以下命令:
bcdedit /dbgsettings net hostip:192.168.6.14 port:50000 key:1.2.3.4
开机目的机的调试模式:
bcdedit /set {default} DEBUG YES
禁用驱动程序签名:
bcdedit /set nointegritychecks on
–如果要恢复驱动程序签名,再次运行
bcdedit /set nointegritychecks off
运行host主机的WinDbg调试软件,如果安装wdk会自带,没有安装需要手动下载安装,启动之后如下
配置windbg调试的驱动文件目录和源码文件目录,File-Symbol search Path,File-Source File Path
设置与目的机连接的网络信息,端口号和key值,由上述步骤指定
点击确定,此时如果一直停留在 waiting to reconnect…,需要重启目的机。
重启目的机后,可以看到windbg与目的机连接上了
目的机使用驱动加载工具加载测试驱动,并启动
2、远程调试
Host主机上的windbg打开要调试的源码文件,File-Open source file
接下来快捷键CRL+B 或者点击工具栏的中断按钮,使目的机内核运行暂停,在需要调试的位置加入断点,打开watch窗口,可以观察相关变量的值。例如在目的机启动应用软件,应用软件通过输入两个数值,传给驱动程序,驱动程序做加法计算,然后驱动再把值返回给应用软件,图示如下:
可以看到windbg单步调试信息如下:
调试时,目的机处于暂停状态(卡死),在cmd窗口的命令输入框输入g,目的机恢复运行状态,可以看到测试的应用程序返回了运行结果1+9=10
备注
上述测试驱动与应用代码链接 https://download.csdn.net/download/jiangyingfeng/12023768