Freigeben über


Schnellstart: Verarbeiten Ihrer ersten Ablaufverfolgung

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

In dieser Schnellstartanleitung wird Folgendes behandelt:

  1. Installieren des TraceProcessing-NuGet-Pakets.
  2. Erstellen eines TraceProcessors.
  3. Verwenden von TraceProcessor, um auf in der Ablaufverfolgung enthaltene Prozessbefehlszeilen zuzugreifen.

Voraussetzungen

Visual Studio 2019

Installieren des TraceProcessing-NuGet-Pakets

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

Microsoft.Windows.EventTracing.Processing.All

Sie können dieses Paket in einer Konsolen-App verwenden, um die in einer ETW-Ablaufverfolgung (.etl-Datei) enthaltenen Prozessbefehlszeilen 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“, 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 danach.

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

Erstellen eines TraceProcessors

  1. Ändern Sie den Inhalt von „Program.cs“ wie folgt:

    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 Ablaufverfolgungsnamen an, der beim Ausführen des Projekts verwendet werden soll.

    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 unter „Anwendungsargumente“ den Pfad zu einer Ablaufverfolgung (ETL-Datei) ein.

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

  3. Führen Sie die Anwendung aus.

    Wählen Sie „Debuggen“ und „Ohne Debuggen starten“ aus, um Ihren Code auszuführen.

Verwenden von TraceProcessor, um auf in der Ablaufverfolgung enthaltene Prozessbefehlszeilen zuzugreifen

  1. Ändern Sie den Inhalt von „Program.cs“ wie folgt:

    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

    Diesmal sollte eine Liste der Befehlszeilen aller Prozesse angezeigt werden, die während der Aufzeichnung der Ablaufverfolgung ausgeführt wurden.

Nächste Schritte

In dieser Schnellstartanleitung haben Sie eine Konsolenanwendung erstellt, TraceProcessor installiert und für den Zugriff auf Prozessbefehlszeilen aus einer ETW-Ablaufverfolgung verwendet. Jetzt verfügen Sie über 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, sich TraceProcessor näher anzusehen, sowie die anderen Datenquellen, auf die er zugreifen kann.