我有一个ETW提供程序,我的系统使用它来使用TraceEvent API函数记录不透明的二进制数据blob.我的系统本质上是一个高吞吐量的事件处理系统,我希望能够(廉价地)捕获某些对象在通过系统时的序列化状态.这将给我一个重播功能,以便在将来的任何时候我都可以重放事件跟踪并重现在应用程序中产生特定状态的确切事件序列.
它仍处于早期阶段,所以目前我对跟踪的唯一控制是使用logman或tracelog之类的工具,它可以创建跟踪控制器,将事件记录到具有.etl扩展名的跟踪文件.我知道我可以编写一个独立的控制器,它可以实时消耗事件并将事件写入文件,但我想在这个阶段尽量避免这种情况(称之为懒惰:)),但是认真地为什么重写已经存在的东西可用?
那么,有没有人对.etl文件的二进制格式有任何了解?我知道tracedmp可以读取它们并生成CSV,但这对二进制部分没有帮助.如果我可以读取这些文件并解析出我写的blob,那么我基本上会拥有我可以重放的功能,但是我找不到这种文件格式的任何内容.
谢谢,保罗