Démarrage rapide : Traiter votre première trace
Essayez TraceProcessor pour accéder aux données d’une trace ETW (Suivi d’événements pour Windows). TraceProcessor vous permet d’accéder aux données de trace ETW en tant qu’objets .NET.
Dans ce guide de démarrage rapide, vous découvrez comment :
- Installer le package NuGet TraceProcessing.
- Créer un TraceProcessor.
- Utiliser TraceProcessor pour accéder aux lignes de commande de processus contenues dans la trace.
Prérequis
Visual Studio 2019
Installer le package NuGet TraceProcessing
.NET TraceProcessing est disponible auprès de NuGet avec l’ID de package suivant :
Microsoft.Windows.EventTracing.Processing.All
Vous pouvez utiliser ce package dans une application console pour lister les lignes de commande de processus contenues dans une trace ETW (fichier. .etl).
Créez une application console .NET. Dans Visual Studio, sélectionnez Fichier, Nouveau, Projet..., puis choisissez le modèle d’application console pour C#.
Entrez un nom de projet, par exemple TraceProcessorQuickstart, puis choisissez Créer.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur Dépendances, puis choisissez Gérer les packages NuGet... et accédez à l’onglet Parcourir.
Dans la zone de recherche, entrez Microsoft.Windows.EventTracing.Processing.All, puis lancez la recherche.
Sélectionnez Installer sur le package NuGet portant ce nom, puis fermez la fenêtre NuGet.
Créer un TraceProcessor
Remplacez le contenu de Program.cs par ceci :
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"); } } }
Spécifiez un nom de trace à utiliser lors de l’exécution du projet.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis choisissez Propriétés. Accédez à l’onglet Déboguer, puis entrez le chemin vers une trace (fichier .etl) dans Arguments de l’application.
Si vous n’avez pas encore de fichier de trace, vous pouvez utiliser l’Enregistreur de performances Windows pour en créer un.
Exécutez l'application.
Choisissez Déboguer, Démarrer sans débogage pour exécuter votre code.
Utiliser TraceProcessor pour accéder aux lignes de commande de processus contenues dans la trace
Remplacez le contenu de Program.cs par ceci :
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); } } } }
Exécutez de nouveau l'application.
Cette fois, vous devez voir une liste des lignes de commande de tous les processus qui étaient en cours d’exécution pendant l’enregistrement de la trace.
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez créé une application console, vous avez installé TraceProcessor et vous l’avez utilisé pour accéder aux lignes de commande de processus d’une trace ETW. Vous disposez maintenant d’une application qui accède aux données de trace.
Les informations de processus ne sont qu’un des nombreux types de données stockés dans une trace ETW à laquelle votre application peut accéder.
L’étape suivante est de regarder de plus près TraceProcessor et les autres sources de données auxquelles il peut accéder.
Windows developer