快速入門:處理您的第一個追蹤
試用 TraceProcessor 以存取 Windows 事件追蹤 (ETW) 追蹤中的資料。 TraceProcessor 可讓您以 .NET 物件身分存取 ETW 追蹤資料。
在本快速入門中,您已了解如何:
- 安裝 TraceProcessing NuGet 套件。
- 建立 TraceProcessor。
- 使用 TraceProcessor 存取追蹤中包含的程序命令行。
必要條件
Visual Studio 2019
安裝 TraceProcessing NuGet 套件
.NET TraceProcessing 可從 NuGet 取得,其中包含下列套件標識碼:
Microsoft.Windows.EventTracing.Processing.All
您可以在主控台應用程式中使用此套件來列出 ETW 追蹤中所包含的行程命令列 (.etl 檔案)。
建立一個新的 .NET 控制台應用程式。 在 Visual Studio 中,選擇檔案、新建、專案...,然後選擇 C# 的控制台應用程式範本。
輸入項目名稱,例如 TraceProcessorQuickstart,然後選擇建立。
在解決方案 Explorer 中,以滑鼠右鍵按兩下相依性,然後選擇管理 NuGet 套件... 和切換至瀏覽索引標籤。
在搜尋方塊中,輸入 Microsoft.Windows.EventTracing.Processing.All 並搜尋。
選取在該名稱的 NuGet 套件上安裝,然後關閉 NuGet 視窗。
建立 TraceProcessor
將 Program.cs 變更為下列內容:
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"); } } }
提供執行專案時要使用的追蹤名稱。
在方案總管中,以滑鼠右鍵按一下專案,然後選擇屬性。 切換至偵錯索引標籤,然後在 Application 自變數中輸入追蹤 (.etl 檔案) 的路徑。
如果您還沒有追蹤檔案,您可以使用 Windows Performance Recorder 來建立一個。
執行應用程式。
依次選擇偵錯和開始不偵錯以執行代碼。
使用 TraceProcessor 存取追蹤中包含的程序命令行
將 Program.cs 變更為下列內容:
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); } } } }
再次執行應用程式。
這次,您應該會看到記錄追蹤時所執行之所有程序的清單命令行。
後續步驟
在本快速入門中,您已建立控制台應用程式、已安裝 TraceProcessor,並用它來從 ETW 追蹤存取處理程式命令行。 現在您有可存取追蹤資料的應用程式。
程序資訊只是應用程式可存取之 ETW 追蹤中儲存的許多資料類型之一。
下一個步驟是進一步查看 TraceProcessor 及其可存取的其他資料來源。