引自免费微信小程序:皆我百晓生
在Windbg Preview中进行驱动程序调试时,过滤不必要的输出信息可以帮助你更专注于关键的日志和调试信息。虽然.ofilter命令可能在某些情况下不适用,但你可以尝试其他方法来达到目的。
- 使用扩展:WinDbg有许多内置和第三方扩展可以帮助你更好地管理和过滤日志。例如,你可以试试"LogExtension"(https://github.com/Microsoft/Windows-driver-samples/tree/master/wdf/samples/logger/logextension)这个扩展,它可以让你设置过滤规则,只显示特定模块、进程或日志等级的信息。
安装步骤:
- 下载并解压LogExtension到一个目录,例如
C:\LogExtension - 在Windbg Preview中打开命令提示符,输入以下命令加载扩展:
.loadby sos C:\LogExtension\logext.dll
-
设置过滤规则:你可以根据需要设置不同的过滤规则。例如,要过滤掉除你的驱动程序之外的所有日志,你可以这样做:
!logext.setfilter DriverName YourDriverModuleName Level=Info,Error,Warning将
YourDriverModuleName替换为你的驱动程序模块的实际名称。 -
查看和修改过滤规则:如果你想查看当前的过滤规则,可以输入:
!logext.getfilter -
如果你需要关闭所有过滤,可以使用:
!logext.clearfilter -
为了确保这些设置在重启调试会话后仍然有效,你可以在Windbg Preview的启动配置文件(默认位于 %APPDATA%\Microsoft\Windows Debugger\windbg.exe.config)中添加一个脚本标签,这样每次启动都会自动执行上述命令。在
标签内添加以下内容:然后保存并关闭文件。
-
当你在VMware上进行双机调试时,确保你的主机和虚拟机都已安装了相同的LogExtension,并且在每个机器上都设置了相应的过滤规则。
通过这种方式,你应该能有效地过滤掉大部分无用的输出信息,只留下与你的驱动程序相关的调试信息。如果你的驱动程序使用了特殊的日志库,你可能还需要查阅相关文档,了解如何配合该库进行日志过滤。
