我尝试使用显式基本事件来记录事件以进行调试和分析。 但我有一个问题:当我在我的提供者注册时记录,一切都很好,当在WPA中打开.etl文件时,我可以查看尽可能多的信息。 但是如果我在没有注册提供者的情况下收集事件,当我在WPA中打开.etl文件时,一切都不是人性化的。 那么,在开始收集活动之前,我必须注册我的提供商吗?我希望不会,因为如果是这样,我必须冒险泄漏我的.man文件,所以其他人也可以使用它来获取详细跟踪日志。这是不可接受的!
我不希望我的.man文件打包在安装文件中,因此我不需要担心泄漏它。当然,我也无法注册我的提供商。
有没有办法查看.etl(尽可能先收到我的提供商注册)?
提前感谢。
下面是可能使我说的更容易理解的图片。
没有我的提供者注册的记录图片:
我的提供商注册的记录图片:
答案 0 :(得分:1)
我在msdn forums,here is the same question asked by myself.
找到了答案整个步骤如下:
安装我的软件并开始在自定义计算机上收集事件数据。 (无需注册我的提供者。)
致电xperf -start mysession -on MY_PROVIDER_GUID
开始收集活动数据。
运行一段时间后,请致电xperf -stop mysession -d poor.etl
停止收集并保存到 poor.etl 文件。
将 poor.etl 复制到我的开发计算机(我的提供商已注册)并致电xperf -merge poor.etl good.etl
使用wpa打开 good.etl ,我可以按预期看到每个细节。
就是这样。希望它会帮助像我这样的其他人。谢谢大家。
答案 1 :(得分:0)
如果您使用.Net,请使用EventSource package,这会将清单添加到ETL(ProviderName/ManifestData
)。
通过这种方式,您不需要在捕获和解码系统上安装清单。清单现在是ETL的一部分。
当然,如果有人获得ETL,他可以使用Perfview转储清单。