如何将跟踪消息发送到内核调试器?
可以使用多种方法将跟踪消息重定向到内核模式调试器。 此处讨论了一些内容。
可以将跟踪消息重定向到 KD 或 Windbg,以附加的为准。 调试器必须通过具有调试 (null 调制解调器) 电缆的 COM 端口连接,或者通过具有 IEEE 1394 电缆的 1394 (“firewire”) 端口进行连接。 无法将跟踪消息重定向到其他内核调试器,例如 NTSD。
若要在调试器中显示跟踪消息,wmitrace.dll 和 traceprt.dll 必须在主计算机上的调试器的搜索路径中。 这些 DLL 包含在 Windows 调试工具 中。此外,若要使调试器能够查找 跟踪消息 (.tmf) 文件的 跟踪消息格式,TMF 文件必须位于主计算机上的调试器的搜索路径中。 若要设置调试器的搜索路径,请使用 !wmitrace.searchpath 专用调试器扩展或设置 %TRACE_FORMAT_SEARCH_PATH% 环境变量的值。
有关详细信息,请在 Windows 调试工具中搜索 !wmitrace。
Logman
使用以下 Logman 命令将跟踪消息重定向到内核模式调试器:
logman start TraceSession -ets -mode KernelFilter -bs 3
-ets 参数启动不受性能日志和警报服务控制的事件跟踪会话。 -mode 参数激活高级选项,包括 KernelFilter 选项。
-bs 参数将跟踪会话的缓冲区大小设置为 3 KB,即调试器的最大缓冲区大小。 如果省略此参数,调试器会话将无法正常运行。
Logman 包含在 Windows XP 和更高版本的 Windows 中。
Tracelog
使用以下 Tracelog 命令将跟踪消息重定向到内核模式调试器:
tracelog -start MyTrace -guid MyProvider.ctl -rt -kd
-guid 参数指定跟踪提供程序。 -rt 参数指定实时跟踪会话。 -kd 参数将跟踪消息重定向到内核调试器,并将最大缓冲区大小设置为 3 KB,即调试器的最大大小。
有关示例,请参阅 示例 16:在调试器中查看跟踪消息。
Tracelog 位于 WDK 的工具\tracing\<Platform> 子目录中,其中 <Platform> 为 i386、amd64 或 ia64。
TraceView
TraceView 具有图形用户界面。
可以在创建跟踪会话时将跟踪消息重定向到内核调试器。 在“ 日志会话选项” 页上,单击“ 高级日志会话选项”,单击“ 日志会话参数选项 ”选项卡,然后将 Windbg 选项的值更改为 TRUE。 在跟踪会话运行时,无法更改此选项。
TraceView 位于 WDK 的工具\tracing\<Platform> 子目录中,其中 <Platform> 为 i386、amd64 或 ia64。