用于软件跟踪的工具
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_TRACING 和 WPP_CLEANUP。 如果代码由于未定义所使用的类型而未编译,则 ETW 和 WPP 无法支持驱动程序类型。
本部分的内容
本部分首先对软件跟踪工具进行调查,讨论这些工具的基础概念,然后包括 WDK 中的软件跟踪工具的文档。
本节包括:
有关事件跟踪的概念性信息,请参阅Microsoft Windows SDK文档。