用于软件跟踪的工具

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

什么是跟踪工具?

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

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

这些工具还可以访问 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文档。