.NET 8.0 AOT DebugView

.NET 8.0 AOT DebugView

Debugview 是一個應用程式,支援你監視本機系統上或可透過 TCP/IP 存取的網路上任何電腦的偵錯輸出。

最後更新 2023/8/29 下午1:44
JusterZhu
預計閱讀 2 分鐘
分類
.NET
專題
C# AOT
標籤
.NET C# AOT

1. 概觀

開發過程中難免需要偵錯與日誌輸出,使用 Trace 物件無論在 Debug 模式下或 Release 模式下執行的程式,都能進行即時追蹤(VS 執行程式時 DebugView 無法監控到,直接雙擊 exe 執行監控即可)。順便測試在 .NET8 中,基於 AOT 發佈與一般模式發佈的應用程式,使用 DebugView 工具檢視 Trace.Write 輸出的偵錯資訊。

2. DebugView

DebugView 是一個應用程式,可讓您監視本機系統上或透過 TCP/IP 存取的網路上任何電腦的偵錯輸出。它能同時顯示核心模式與 Win32 偵錯輸出,因此無需偵錯器即可擷取應用程式或裝置驅動程式產生的偵錯輸出,也無需修改應用程式或驅動程式來使用非標準的偵錯輸出 API。

使用方式非常簡單,以系統管理員身分啟動後,勾選 Options 中的以下幾項即可(當我們編寫的 .NET 程式執行後,會自動擷取輸出的訊息內容)。

3. 測試程式碼

using System.Diagnostics;

namespace TraceAOT
{
   internal class Program
  {
       static void Main(string[] args)
      {
           //指定Trace輸出的日誌檔名
           Trace.Listeners.Add(new TextWriterTraceListener("MyTraceListeners"));
           for (int i = 0; i < 10; i++)
          {
               Thread.Sleep(1000);
               //在滿足前面的條件時輸出Trace資訊(同時也向Listeners新增資訊)
               Trace.WriteLineIf(i==5, "Trace message.");
          }
           //Flush完成本次輸出
           Trace.Flush();
           Console.WriteLine("OK");
           Console.Read();
      }
  }
}

4. 測試結果

5. 結論

DebugView 工具在基於 .NET 8 無論是 AOT 或一般發佈的應用程式中,都能正常使用。Trace 物件無論在 Debug 模式下或 Release 模式下執行的程式,都能進行即時追蹤,大幅簡化了我們追蹤偵錯的流程。

繼續探索

延伸閱讀

更多文章
同分類 / 同專題 2026/2/7

AOT使用經驗總結

從專案建立伊始,就應養成良好的習慣,即只要添加了新功能或使用了較新的語法,就及時進行 AOT 發布測試。

繼續閱讀