.NET TIPS

Visual Studio以外の環境でトレース・メッセージを表示するには?[C#、VB]

デジタルアドバンテージ 岸本 真二郎
2008/06/19

Traceクラスを利用してトレース・メッセージを表示

 Visual StudioでWindowsアプリケーションのデバッグを行う場合、統合環境内の[出力]ウィンドウに対して、デバッグに必要な情報を表示できる。

 例えばTraceクラス(System.Diagnostics名前空間)を使って、次のようにデバッグ情報を[出力]ウィンドウに表示する。

using System.Diagnostics;

namespace DebugTrace
{
  class Program
  {
    static void Main(string[] args)
    {
      Trace.WriteLine("enter main");
      myMethod();
      Trace.WriteLine("exit main");
    }

    static void myMethod()
    {
      int i = 10;
      Trace.WriteLineIf((i > 0), "myMethod()"); // 条件付きの出力
    }
  }
}
Imports System.Diagnostics

Module Module1

  Sub Main()
    Trace.WriteLine("enter Main")
    myMethod()
    Trace.WriteLine("exit Main")
  End Sub

  Sub myMethod()
    Dim i As Integer
    i = 10
    Trace.WriteLineIf(i > 0, "myMethod") '条件付きの出力
  End Sub

End Module
Traceクラスを用いたデバッグ情報の出力(上:C#、下:VB)

 このサンプル・プログラムを実際にVisual Studio内でデバッグ実行すると[出力]ウィンドウには次の画面のようにトレース・メッセージが表示される。


Visual Studioの[出力]ウィンドウに表示されたトレース・メッセージ

 そして、これらのTraceクラスのメソッド呼び出しは、その記述をソース・コードに残したまま、リリース版をビルドし配布することができる(そのようにしても特に問題はない)。

サードパーティのツールを使ってメッセージを表示

 このようなTraceクラスを用いたトレース・メッセージ(デバッグ情報)の出力は、Visual Studio以外のツールを使っても表示できる。

 これには、Microsoft TechNet内のWindows SysInternalsで提供されている「DebugView for Windows」(Dbgview.exe)を利用する。上記のソース・コードをビルドした後、単独で実行する場合でも、事前にこのツールを実行しておけばトレース・メッセージを見ることができる。


DebugView for Windowsの実行画面
Traceクラスにより出力したトレース・メッセージが表示されている。

別のマシンで実行中のアプリケーションのトレース

 DebugView For Windowsは別のPC上で実行されたアプリケーションのトレース・メッセージを表示することも可能だ。この場合には、表示側のPCとネットワーク上のアプリケーションを実行する側のPCの両方でDebugView For Windowsを実行しておく必要がある。

 まずアプリケーション実行側のPCで事前にDebugView For Windowsを「/C」オプションを付けて起動しておく。

 一方、表示側のPCでもDebugView For Windowsを起動し、メニューから[Computer]−[Connect]を選択する。そしてアプリケーション実行側のPCのコンピュータ名もしくはIPアドレスを指定する。


コンピュータ名もしくはIPアドレスを指定するダイアログ

 以上の設定後、アプリケーションを実行するとトレース・メッセージが表示側のDebugView For Windowsの画面に表示されるようになる。あまり大量にメッセージを出力してしまうと実行効率的に問題となるかもしれないが、適宜Traceクラスによるメッセージ出力を行うことで、トラブルが発生した場合に簡単にアプリケーションのトレース・メッセージ出力を回収できる。End of Article

カテゴリ:開発環境&ツール 処理対象:デバッガ
使用ライブラリ:Traceクラス(System.Diagnostics名前空間)

この記事と関連性の高い別の.NET TIPS
コンソール・アプリケーションの出力を取り込むには?
VS.NETでデバッグ・メッセージを出力するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間