Condividi tramite


Avvio rapido: elaborare la prima traccia

Provare a usare TraceProcessor per accedere ai dati in una traccia Event Tracing for Windows (ETW). TraceProcessor consente di accedere ai dati traccia ETW come oggetti .NET.

Questa guida rapida consente di apprende come fare quanto segue:

  1. Installare il pacchetto NuGet TraceProcessing.
  2. Creare un TraceProcessor.
  3. Usare TraceProcessor per accedere alle righe di comando del processo contenute nella traccia.

Prerequisiti

Visual Studio 2019

Installare il pacchetto NuGet TraceProcessing

.NET TraceProcessing è disponibile in NuGet con l'ID pacchetto seguente:

Microsoft.Windows.EventTracing.Processing.All

È possibile usare questo pacchetto in un'app per console per elencare le righe di comando del processo contenute in un file traccia ETW (file con estensione .etl).

  1. Creare una nuova app per console .NET In Visual Studio selezionare File, Nuovo, Progetto e scegliere il modello App Console per C#.

    Immettere un nome di progetto, ad esempio TraceProcessorQuickstart e selezionare Crea.

  2. In Esplora soluzioni fare clic con il tasto destro del mouse su Dipendenze e selezionare Gestisci pacchetti NuGet... e passare alla scheda Sfoglia.

  3. Nella casella Cerca immettere Microsoft.Windows.EventTracing.Processing.All e cercare.

    Selezionare Installa nel pacchetto NuGet con tale nome e chiudere la finestra NuGet.

Creare un TraceProcessor

  1. Modificare Program.cs con il contenuto seguente:

    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. Specificare un nome di traccia da usare durante l'esecuzione del progetto.

    In Esplora soluzioni fare clic con il tasto destro del mouse sul progetto e selezionare Proprietà. Passare alla scheda Debug e immettere il percorso di una traccia (file con estensione .etl) negli argomenti dell'applicazione.

    Se non si dispone già di un file traccia, è possibile usare Windows Performance Recorder per crearne uno.

  3. Eseguire l'applicazione.

    Selezionare Debug, Start Without Debugging per eseguire il codice.

Usare TraceProcessor per accedere alle righe di comando del processo contenute nella traccia

  1. Modificare Program.cs con il contenuto seguente:

    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. Eseguire di nuovo l'applicazione.

    Questa volta dovrebbe essere visualizzato un elenco di righe di comando da tutti i processi in esecuzione durante la registrazione della traccia.

Passaggi successivi

In questa guida rapida è stata creata un'applicazione per console, è stato installato TraceProcessor ed è stato usato per accedere alle righe di comando del processo da una traccia ETW. A questo punto è disponibile un'applicazione che accede ai dati traccia.

Le informazioni sul processo sono solo uno dei molti tipi di dati archiviati in una traccia ETW a cui l'applicazione può accedere.

Il passaggio successivo consiste nell'esaminare più in dettaglio TraceProcessor e le altre origini dati a cui può accedere.