Udostępnij przez


Szybki start: przetwarzanie pierwszego śladu

Wypróbuj TraceProcessor, aby uzyskać dostęp do danych śledzenia zdarzeń w systemie Windows (ETW). Narzędzie TraceProcessor umożliwia dostęp do danych śledzenia ETW jako obiektów platformy .NET.

Z tego przewodnika Szybki start dowiesz się, jak wykonywać następujące zadania:

  1. Zainstaluj pakiet NuGet TraceProcessing.
  2. Utwórz TraceProcessor.
  3. Użyj narzędzia TraceProcessor, aby uzyskać dostęp do wierszy poleceń procesu zawartych w śladzie.

Wymagania wstępne

Visual Studio 2019

Instalowanie pakietu NuGet TraceProcessing

TraceProcessing dla platformy .NET jest dostępne w NuGet pod następującym identyfikatorem pakietu:

Microsoft.Windows.EventTracing.Processing.All

Za pomocą tego pakietu w aplikacji konsolowej można wyświetlić listę wierszy poleceń procesu zawartych w pliku śledzenia ETW (plik etl).

  1. Utwórz nową aplikację konsolową platformy .NET. W programie Visual Studio wybierz pozycję Plik, Nowy, Projekt..., a następnie wybierz szablon Aplikacja konsolowa dla języka C#.

    Wprowadź nazwę projektu, na przykład TraceProcessorQuickstart, a następnie wybierz pozycję Utwórz.

  2. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy pozycję Zależności i wybierz polecenie Zarządzaj pakietami NuGet... i przejdź do karty Przeglądaj.

  3. W polu wyszukiwania wprowadź Microsoft.Windows.EventTracing.Processing.All.

    Wybierz pozycję Zainstaluj w pakiecie NuGet o tej nazwie i zamknij okno NuGet.

Utwórz TraceProcessor

  1. Zmień Program.cs na następującą zawartość:

    using Microsoft.Windows.EventTracing;
    using Microsoft.Windows.EventTracing.Processes;
    using System;
    
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.Error.WriteLine("Usage: <trace.etl>");
                return;
            }
    
            using (ITraceProcessor trace = TraceProcessor.Create(args[0]))
            {
                // TODO: call trace.Use...
    
                trace.Process();
    
                Console.WriteLine("TODO: Access data from the trace");
            }
        }
    }
    
  2. Podaj nazwę śledzenia, która ma być używana podczas uruchamiania projektu.

    W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz polecenie Właściwości. Przejdź do karty Debugowanie i wprowadź ścieżkę do pliku śledzenia (plik etl) w argumentach aplikacji.

    Jeśli nie masz jeszcze pliku śledzenia, możesz go utworzyć za pomocą narzędzia Windows Performance Recorder .

  3. Uruchom aplikację.

    Wybierz pozycję Debuguj, Rozpocznij bez debugowania, aby uruchomić kod.

Uzyskiwanie dostępu do wierszy poleceń procesu zawartych w śladzie za pomocą narzędzia TraceProcessor

  1. Zmień Program.cs na następującą zawartość:

    using Microsoft.Windows.EventTracing;
    using Microsoft.Windows.EventTracing.Processes;
    using System;
    
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.Error.WriteLine("Usage: <trace.etl>");
                return;
            }
    
            using (ITraceProcessor trace = TraceProcessor.Create(args[0]))
            {
                IPendingResult<IProcessDataSource> pendingProcessData = trace.UseProcesses();
    
                trace.Process();
    
                IProcessDataSource processData = pendingProcessData.Result;
    
                foreach (IProcess process in processData.Processes)
                {
                    Console.WriteLine(process.CommandLine);
                }
            }
        }
    }
    
  2. Ponownie uruchom aplikację.

    Tym razem powinna zostać wyświetlona lista wierszy poleceń ze wszystkich procesów, które były wykonywane podczas rejestrowania.

Dalsze kroki

W tym szybkim starcie utworzono aplikację konsolową, zainstalowano narzędzie TraceProcessor i użyto go do uzyskiwania dostępu do wierszy poleceń procesu ze śledzenia ETW. Teraz masz aplikację, która uzyskuje dostęp do danych śledzenia.

Informacje o procesie są tylko jednym z wielu rodzajów danych przechowywanych w śladzie ETW, do których aplikacja może uzyskać dostęp.

Następnym krokiem jest przyjrzeć się bliżej TraceProcessor i innym źródłom danych, do których może uzyskać dostęp.