如何将跟踪消息发送到内核调试器?

可以使用多种方法将跟踪消息重定向到内核模式调试器。 此处讨论了一些内容。

可以将跟踪消息重定向到 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。