Трассировка ETW (.NET): Настройка ETWTraceEventSource - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь настроить 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

Как настроить сеанс трассировки / источникчтобы я мог правильно захватить детали / параметры пользовательского события?

...