.NET 8.0 AOT DebugView

.NET 8.0 AOT DebugView

DebugView は、ローカルシステムまたはTCP/IP経由でアクセス可能なネットワーク上の任意のコンピュータのデバッグ出力を監視できるアプリケーションです。

最終更新 2023/08/29 13:44
JusterZhu
読了目安 1 分
カテゴリ
.NET
テーマ
C# AOT
タグ
.NET C# AOT

1. 概要

開発過程でデバッグやログ出力は避けられませんが、Trace オブジェクトを使用すると、デバッグモードとリリースモードの両方で実行中のプログラムをリアルタイムで追跡できます(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 オブジェクトはデバッグモードとリリースモードの両方で実行中のプログラムをリアルタイムで追跡できるため、トレースとデバッグのプロセスを大幅に簡素化します。

さらに探索

関連読書

その他の記事
同じカテゴリ / 同じテーマ 2026/02/07

AOTの使用経験のまとめ

プロジェクト作成当初から、新機能を追加したり新しい構文を使用したりした場合には、すぐにAOT公開テストを実施するという良い習慣を身につけるべきです。

続きを読む