Freigeben über


Schnellstartanleitung: Verarbeiten Sie Ihre erste Ablaufverfolgung

Testen Sie TraceProcessor, um auf Daten in einer Ereignisablaufverfolgung für Windows (ETW) zuzugreifen. TraceProcessor ermöglicht ihnen den Zugriff auf ETW-Ablaufverfolgungsdaten als .NET-Objekte.

In dieser Schnellstartanleitung erfahren Sie, wie Sie:

  1. Installieren Sie das TraceProcessing NuGet-Paket.
  2. Erstellen Sie einen TraceProcessor.
  3. Verwenden Sie TraceProcessor, um auf Prozessbefehle zuzugreifen, die in der Ablaufverfolgung enthalten sind.

Voraussetzungen

Visual Studio 2019

Installiere das TraceProcessing-NuGet-Paket

.NET TraceProcessing ist über NuGet mit der folgenden Paket-ID verfügbar.

Microsoft.Windows.EventTracing.Processing.All

Sie können dieses Paket in einer Konsolenanwendung verwenden, um die Prozessbefehlszeilen in einer ETW-Ablaufverfolgung (ETL-Datei) aufzulisten.

  1. Erstellen Sie eine neue .NET-Konsolen-App. Wählen Sie in Visual Studio "Datei", "Neu", "Projekt" und dann die Konsolen-App-Vorlage für C# aus.

    Geben Sie einen Projektnamen ein, z. B. TraceProcessorQuickstart, und wählen Sie "Erstellen" aus.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Abhängigkeiten, und wählen Sie "NuGet-Pakete verwalten" aus... und wechseln Sie zur Registerkarte "Durchsuchen".

  3. Geben Sie im Suchfeld "Microsoft.Windows.EventTracing.Processing.All" ein und suchen Sie.

    Wählen Sie "Installieren" im NuGet-Paket mit diesem Namen aus, und schließen Sie das NuGet-Fenster.

Erstellen eines TraceProcessor

  1. Ändern Sie Program.cs durch den folgenden Inhalt:

    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. Geben Sie einen beim Ausführen des Projekts zu verwendenden Ablaufverfolgungsnamen an.

    Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie "Eigenschaften" aus. Wechseln Sie zur Registerkarte „Debuggen“ und geben Sie den Pfad zu einer Ablaufverfolgungsdatei (ETL-Datei) in die Argumente der Anwendung ein.

    Wenn Sie noch keine Ablaufverfolgungsdatei haben, können Sie Windows Performance Recorder verwenden, um eine datei zu erstellen.

  3. Führen Sie die Anwendung aus.

    Wählen Sie "Debuggen" aus, "Ohne Debuggen starten", um den Code auszuführen.

Verwenden Sie den TraceProcessor, um auf Prozessbefehlszeilen zuzugreifen, die im Trace enthalten sind.

  1. Ändern Sie Program.cs durch den folgenden Inhalt:

    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. Erneutes Ausführen der Anwendung

    Dieses Mal sollte eine Listenbefehlszeile aus allen Prozessen angezeigt werden, die ausgeführt wurden, während die Ablaufverfolgung aufgezeichnet wurde.

Nächste Schritte

In dieser Schnellstartanleitung haben Sie eine Konsolenanwendung erstellt, TraceProcessor installiert und es verwendet, um auf Prozessbefehlszeilen aus einer ETW-Ablaufverfolgung zuzugreifen. Jetzt haben Sie eine Anwendung, die auf Ablaufverfolgungsdaten zugreift.

Prozessinformationen sind nur eine von vielen Arten von Daten, die in einer ETW-Ablaufverfolgung gespeichert sind, auf die Ihre Anwendung zugreifen kann.

Der nächste Schritt besteht darin, den TraceProcessor näher zu betrachten und die anderen Datenquellen, auf die er zugreifen kann.