Я пытаюсь настроить ETW TraceEventSession с ETWTraceEventSource для захвата трассировки от нескольких процессов, использующих один и тот же пользовательский класс EventSource.Хотя код, который я разместил ниже, способен получать события трассировки - он проходит как UnhandledTraceEvent со всеми значимыми данными, удаленными.
Если я использую ObservableEventListener, я могу захватить все детали, как я ожидал- но это не похоже на возможность захвата трассировки от других процессов.
Ниже приведена моя текущая попытка запуска этого сеанса трассировки:
Try
If Not TraceEventSession.IsElevated Then
Throw New AccessViolationException("Admin Mode Required")
End If
Dim eventSourceId = TraceEventProviders.GetEventSourceGuidFromName(MyEventSource.EVENT_SOURCE_NAME)
_traceSession = New TraceEventSession("testSession", Nothing, TraceEventSessionOptions.Create)
_traceSession.StopOnDispose = True
_traceSession.EnableProvider(eventSourceId, Microsoft.Diagnostics.Tracing.TraceEventLevel.Verbose)
_traceSource = New ETWTraceEventSource("testSession", TraceEventSourceType.Session)
Dim traceTask = Task.Factory.StartNew(
Sub()
If Not _traceSource.Process() Then
Debugger.Break()
End If
Debugger.Break()
End Sub
)
_traceSource.ObserveAll.Subscribe(Me)
Catch ex As Exception
Debugger.Break()
End Try
Как настроить сеанс трассировки / источникчтобы я мог правильно захватить детали / параметры пользовательского события?