Sdílet prostřednictvím


Rychlý začátek: Zpracování prvního trasování

Vyzkoušejte TraceProcessor pro přístup k datům v trasování událostí pro Windows (ETW). TraceProcessor umožňuje přístup k datům trasování ETW jako k objektům .NET.

V tomto rychlém startu se naučíte:

  1. Nainstalujte balíček NuGet TraceProcessing.
  2. Vytvořte TraceProcessor.
  3. Použijte TraceProcessor k přístupu k příkazovým řádkům procesu obsaženým v trasování.

Požadavky

Visual Studio 2019

Instalace balíčku NuGet TraceProcessing

.NET TraceProcessing je k dispozici z NuGetu s následujícím ID balíčku:

Microsoft.Windows.EventTracing.Processing.All

Tento balíček můžete použít v konzolové aplikaci k vypsání příkazových řádků procesů obsažených v záznamu ETW (soubor .etl).

  1. Vytvořte novou konzolovou aplikaci .NET. V sadě Visual Studio vyberte Soubor, Nový, Projekt... a zvolte šablonu konzolové aplikace pro C#.

    Zadejte název projektu, například TraceProcessorQuickstart, a zvolte Vytvořit.

  2. V Průzkumníku řešení klikněte pravým tlačítkem na Závislosti a zvolte Spravovat balíčky NuGet... a přepněte na kartu Procházet.

  3. Do vyhledávacího pole zadejte Microsoft.Windows.EventTracing.Processing.All a vyhledejte.

    Vyberte Nainstalovat do balíčku NuGet s tímto názvem a zavřete okno NuGet.

Vytvoření TraceProcessoru

  1. Změňte Program.cs na následující obsah:

    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. Zadejte název sledování, který se má použít při spuštění projektu.

    V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a zvolte Vlastnosti. Přepněte na kartu Ladění a v argumentech aplikace zadejte cestu k trasování (souboru .etl).

    Pokud ještě nemáte trasovací soubor, můžete ho vytvořit pomocí nástroje Windows Performance Recorder .

  3. Aplikaci spusťte.

    Zvolte Ladit, Spustit bez ladění a spusťte kód.

Použijte TraceProcessor pro přístup k příkazovým řádkům procesů obsaženým v trasování

  1. Změňte Program.cs na následující obsah:

    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. Spusťte aplikaci znovu.

    Tentokrát byste měli vidět seznam příkazových řádků všech procesů, které se spouštěly během zaznamenávání sledování.

Další kroky

V tomto rychlém průvodci jste vytvořili konzolovou aplikaci, nainstalovali TraceProcessor a použili ji pro přístup k příkazovým řádkům procesu z ETW trasování (Trasování událostí pro Windows). Teď máte aplikaci, která přistupuje k datům trasování.

Informace o procesu jsou jen jedním z mnoha druhů dat uložených ve stopy ETW, ke kterým má vaše aplikace přístup.

Dalším krokem je podívat se blíže na TraceProcessor a další zdroje dat, ke kterým má přístup.