如何查看自定义提供的事件(不收集注册提供商)通过WPA

问题描述:

我尝试用显现的基本事件进行调试和分析日志事件。 但是我遇到了一个问题:当我使用我的提供程序进行注册时,一切正常,当在WPA中打开.etl文件时,我可以尽可能多地查看信息。 但是,如果我在没有注册供应商的情况下收集活动,当我在WPA中打开.etl文件时,所有内容都不是人性化的。 那么,在我开始收集活动之前,我必须注册我的提供商吗?我希望不会,因为如果是这样,我必须冒险泄漏我的.man文件,以便其他人可以使用它来获取详细信息跟踪日志。这是不可接受的!如何查看自定义提供的事件(不收集注册提供商)通过WPA

我不希望我的.MAN文件打包在安装文件,所以我并不需要担心泄漏了。当然我也不能注册我的提供者。

有没有一种方法来查看.etl(不收我的供应商临时用户第一),以及可能吗?

在此先感谢。下面

是图片,可能使我的话更容易理解。记录

图像没有我的供应商注册:记录

image:record without my provider registered

图像与我的供应商注册:

image:record with my provider registered

+0

如果您在开发人员计算机上安装清单并在开发人员计算机上打开ETL,会发生什么情况? – Sirotnikov

+0

如果我安装了清单,我会得到我想要的所有信息。就像第二张照片一样。人类可读*事件数据,提供者名称,任务名称,一切!*这就是我想要的!我在第一张照片上看不到任何有用的东西,对吧? – BianChengNan

+0

,那么为什么不在用户机器上记录没有清单,然后用清单存在复制到开发人员机器,并且可以看到正确的数据? – Sirotnikov

使用EventSource package如果你使用的.Net,这增加了明显的成ETL(ProviderName/ManifestData)。

用这种方式,你不需要有明显的安装在捕获和解码系统。清单现在是ETL的一部分。

当然,如果有人得到了ETL,他可以用Perfview转储清单。

+0

感谢您的提示,我刚开始注意到我的第二张图片上的** ProviderName/ManifestData **信息。 (在我的提供商注册时捕获) >当然,如果有人获得ETL,他可以使用Perfview转储Manifest。 这听起来不太好。我不想让其他人知道我的秘密如此简单。 我想知道别人用什么ETW?伐木(像我这样的人)? – BianChengNan

+0

我希望微软一定考虑过这种情况(用于日志记录和安全性),他们必须设计一些东西,不是吗?顺便说一下,我可以手动解析.etl文件(记录没有我的提供者注册),事件数据都在那里(二进制形式)。没有任何意义,wpa无法读取它们,真的很困惑。 – BianChengNan

+0

EventSource旨在包含清单以避免注册清单。 – magicandre1981

我找到答案在MSDN论坛,here is the same question asked by myself.

xperf -merge是关键!

整个步骤如下:

  1. 安装我的软件和定制的机器上开始收集事件数据。 (无需注册我的提供商。) 致电xperf -start mysession -on MY_PROVIDER_GUID开始收集事件数据。

  2. 后运行一段时间后,打电话xperf -stop mysession -d poor.etl停止收集并保存到poor.etl文件。

  3. 副本poor.etl我的dev的机器(我的供应商已经注册),并调用xperf -merge poor.etl good.etl

  4. 开放好。etl与wpa,我可以看到每个细节,如我所料。

就是这样。希望它能帮助像我这样的其他人。感谢大家。

+0

好的,是的,你总是需要合并它们。这也增加了加载符号的信息。这是写在所有指南。 – magicandre1981