用于Windows的C ++事件跟踪(ETW)包装器

时间:2011-06-19 06:14:08

标签: c++ windows events tracing etw

我一直在调查Windows事件跟踪(ETW),以便在现有的后端/服务器应用程序中使用。 MSDN和其他消息来源已经出售了框架的功能以及它与xperf等的集成,坦白地说我印象深刻。

然而,我对win32 apis以及使用清单编码编译/注册等工作的开销感到担忧。

伙计,你呢:

  • 推荐吗?在您的系统中使用它有问题吗?
  • 了解更多C ++ / STL样式的包装器?
  • 是否有用于管理清单文件的工具?

2 个答案:

答案 0 :(得分:5)

我建议使用WPP,而不是直接使用Win32 API。

WPP是一个预处理器,它允许您在代码中的任何位置写入类似printf的跟踪行,并获得其结果以及其他数据(例如传递给各种%d和%的参数)跟踪中的s)记录到ETW。

明确指南是WPP Tracing in Visual C++ 2010 Projects

答案 1 :(得分:2)

单手ETW非常强大。但与此同时,从一开始就不容易。

但是,github上的项目简化了编写自己的ETW提供程序。这是写作的好例子:

  • ETW清单(.man)披露事件字段
  • WP R 个人资料(.wprp),教导WPRUI(记录员)关于您的探查者
  • WP A 个人资料(.wpaProfile)&感兴趣的区域(.xml)教授WPA关于数据表示的内容。

请看这里:https://github.com/01org/IntelSEAPI/wiki