用于软件跟踪的工具

Microsoft Windows 驱动程序工具包(WDK)包括一组应用程序和命令行工具用于软件跟踪。 这些工具旨在支持 Windows 事件跟踪(ETW),并补充 Windows 中包含的跟踪工具。

什么是跟踪工具?

这些工具包括用于配置、启动、更新和停止跟踪会话的 跟踪控制器 ,以及 跟踪使用者 ,这些使用者接收会话期间生成的跟踪消息,并将二进制数据转换为文件或显示的用户可读格式。

这些工具支持多种跟踪提供程序,包括用户模式应用程序和内核模式驱动程序,这些工具通过使用WPP 软件跟踪Windows 事件跟踪 (ETW)进行了软件跟踪的集成。 有关检测代码的两种方法的比较,请参阅何时使用适用于 Windows 的 WPP 软件跟踪和事件跟踪(ETW)。

这些工具还可以访问内置于 Windows 中的保留 跟踪会话 ,例如 全局记录器跟踪会话 / NT 内核记录器跟踪会话

其中一些工具位于 Windows 驱动程序工具包(WDK)的工具\<平台> 子目录中,其中 <平台> 为 x86 或 x64。 其他工具要么包含在 Windows 中,要么位于 WDK 的 bin\<Platform> 子目录中。

何时应使用 WPP 软件跟踪或 Windows 事件跟踪 (ETW) API?

如果有兴趣主要收集跟踪数据以进行开发和调试,请使用 WPP 软件跟踪将 Windows 事件跟踪(ETW)用于其他类型的跟踪。

WPP 软件跟踪 Manifested/TraceLogging ETW
在 Windows 2000 及更高版本上受支持。 在 Windows Vista 及更高版本上受支持。
用于开发和调试的事件跟踪。 主要针对内部开发人员。 用于管理、操作、分析和调试的事件跟踪。
需要 TMF 文件来解码从日志记录二进制文件的 PDB 中提取的事件。 用于解码事件的元数据包含在本地二进制文件或事件有效负载中。
每个跟踪提供程序只能有一个活动会话。 事件可以分配给多个消费者。
无法本地化消息字符串。 字符串可以本地化。
提供程序安全性仅限于不共享启用和解码事件所需的控制 GUID 或 TMF 文件。 提供程序可以应用 ACL 来限制哪些用户可以从中收集事件。
 

有关使用 Windows 软件跟踪预处理器 (WPP) 宏将软件跟踪添加到驱动程序或应用程序的信息,请参阅 WPP 软件跟踪

有关使用驱动程序的内核模式 ETW API 的信息,请参阅 Windows 事件跟踪(ETW)。

有关使用 Windows Management Instrumentation (WMI) 扩展到 Windows 驱动模型 (WDM) 的信息,以将软件跟踪添加到任何驱动程序,请参阅 WMI 事件跟踪

注意 ETW 和 WPP 支持大多数类型的内核模式驱动程序和用户模式应用程序。 但是,ETW 和 WPP 使用不适用于某些类型的驱动程序的类型,例如微型端口驱动程序。 若要确定是否支持特定驱动程序类型,请将基本 WPP 宏添加到驱动程序,例如 WPP_INIT_TRACINGWPP_CLEANUP。 如果代码未编译,因为未定义所使用的类型,则 ETW 和 WPP 不支持驱动程序类型。 

本部分的内容

本部分从对软件跟踪工具的调查开始,讨论工具的基础概念,然后包括 WDK 中软件跟踪工具的文档。

本部分包括:

软件跟踪工具调查

跟踪工具概念

TraceView

Tracelog

Tracepdb

Tracefmt

启动时跟踪

WPP 软件跟踪

软件跟踪常见问题解答

Windows 事件跟踪 (ETW)

内核模式性能监视

有关 事件跟踪的概念性信息,请参阅 Microsoft Windows SDK 文档。