【发布时间】:2015-03-05 15:57:31
【问题描述】:
我正在使用 TraceEvent library 捕获 ETW 跟踪,但我无法确定导致事件的进程的名称。
这是我目前所拥有的:
var session = new TraceEventSession(sessionName, null);
session.EnableProvider(MyEventSource.Log.Guid, TraceEventLevel.Informational,
options: TraceEventOptions.Stacks);
Task.Delay(1000).ContinueWith(t => session.Stop()); // for testing, deal with it (⌐■_■)
var src = new ETWTraceEventSource(sessionName, TraceEventSourceType.Session);
TraceLog.CreateFromSource(src, etlxFile, null);
var log = TraceLog.OpenOrConvert(etlxFile);
var process = log.Events.First().ProcessName;
// breakpoint
命中最后的断点时,process 为""。 ProcessID 是一个正确的 PID,但这是我可以从日志中的进程中找到的唯一有用信息。
我希望日志会捕获进程名称。是我做错了什么,还是这个 API 在我的操作系统(Windows 7)上不可用?
【问题讨论】:
标签: c# .net etw etw-eventsource