我正在寻找一个使用 WPP(预处理器)在 Visual Studio 环境中开发的应用程序使用“Windows 事件跟踪”(ETW)的示例。虽然 MSDN 文档承诺 WPP 也可用于用户模式、本机应用程序,但它仅包含用于设备驱动程序的示例,并且还严重依赖于与 makefile 的集成。
所以我想知道是否有人能够让这个工作,他是否愿意分享他的发现或工作示例代码。谢谢!乌里·科恩
我正在寻找一个使用 WPP(预处理器)在 Visual Studio 环境中开发的应用程序使用“Windows 事件跟踪”(ETW)的示例。虽然 MSDN 文档承诺 WPP 也可用于用户模式、本机应用程序,但它仅包含用于设备驱动程序的示例,并且还严重依赖于与 makefile 的集成。
所以我想知道是否有人能够让这个工作,他是否愿意分享他的发现或工作示例代码。谢谢!乌里·科恩
WPP 绝对可以在用户模式下使用,你只需要从 WDK 中取出 TraceWPP.exe。
但是,如果您不使用大量遗留代码,或者您对监控应用程序性能感兴趣,我会考虑使用基于清单的 ETW 事件;由于每条消息都被明确描述为一个结构,因此在 XPerf 中分析或围绕它编写其他工具会更容易。WPP 实际上只是将字符串记录到 ETL 跟踪中,您稍后必须对其进行解析。
您还可以在同一应用程序中同时使用 WPP 和基于清单的 ETW - 指导是,将 WPP 用于私有/一次性调试字符串,并将清单事件用于您想要跟踪的更多公共“官方”事件。
找到了我在文章中寻找的答案: Trey Nash 的“Visual C++ 2010 项目中的 WPP 跟踪” !