【问题标题】:Event tracing using WPP from user mode, native application using Visual Studio从用户模式使用 WPP 进行事件跟踪,使用 Visual Studio 的本机应用程序
【发布时间】:2010-12-19 08:09:51
【问题描述】:

我正在寻找在 Visual Studio 环境中开发的应用程序中使用 WPP(预处理器)的“Windows 事件跟踪”(ETW) 的示例。 虽然 MSDN 文档承诺 WPP 也可用于用户模式、本机应用程序,但它仅包含用于设备驱动程序的示例,并且还严重依赖于与 makefile 的集成。

所以我想知道是否有人能够让这个工作,他是否愿意分享他的发现或工作示例代码。 谢谢! 乌里·科恩

【问题讨论】:

    标签: c++ visual-studio logging etw


    【解决方案1】:

    WPP 绝对可以在用户模式下使用,你只需要从 WDK 中取出 TraceWPP.exe。

    但是,如果您不使用大量遗留代码,或者您对监控应用性能感兴趣,我会考虑使用基于清单的 ETW 事件;由于每条消息都被明确描述为一个结构,因此在 XPerf 中分析或围绕它编写其他工具更容易。 WPP 实际上只是将字符串记录到 ETL 跟踪中,您稍后必须对其进行解析。

    您还可以在同一应用程序中同时使用 WPP 和基于清单的 ETW - 指导原则是,将 WPP 用于仅私有/一次性调试字符串,并将清单事件用于您想要的更多公共“官方”事件追踪。

    【讨论】:

    • 谢谢。我不能使用基于清单的 ETW,因为我需要支持 WinXP,我错过了什么吗?您还可以指出一个使用 Visual Studio 使用 WPP 的示例吗?
    • 不,基于清单的 ETW 是在 Vista 中引入的,你被 WPP 卡住了。
    【解决方案2】:

    在文章中找到了我一直在寻找的答案: "WPP Tracing in Visual C++ 2010 Projects" 特雷纳什!

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2017-11-04
    相关资源
    最近更新 更多