|   | 
 
|  
 .NET TIPS 
現在のスタック・トレース情報を取得するには?[C#、VB]
デジタルアドバンテージ 一色 政彦 
2010/06/24 | 
  | 
 
 
  | 
 .NETで現在実行中のコード上の場所におけるスタック・トレース情報(=その場所までのプログラム実行の経緯として、メソッドやプロパティがどういう順番で呼ばれたのかを記録した文字列情報)を取得する場合には、Environmentクラス(System名前空間)の静的プロパティであるStackTraceプロパティを呼び出せばよい。下記のコードは、その呼び出し例。
using System; 
 
class Program 
{ 
  static void Main() 
  { 
    string trace = Environment.StackTrace; 
    Console.WriteLine(trace); 
 
    // 出力例: 
    // 場所 System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 
    // 場所 System.Environment.get_StackTrace() 
    // 場所 Program.Main() 
    // 場所 c:\users\masa-i\documents\visual studio 2010\Projects\ConsoleApplication6\ConsoleApplication6\Program.cs:行 7 
  } 
}
  | 
 
 
Module Module1 
 
  Sub Main() 
    Dim trace As String = Environment.StackTrace 
    Console.WriteLine(trace) 
 
    ' 出力: 
    ' 場所 System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 
    ' 場所 System.Environment.get_StackTrace() 
    ' 場所 ConsoleApplication5.Module1.Main() 
    ' 場所 c:\users\masa-i\documents\visual studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Module1.vb:行 4 
  End Sub 
 
End Module
  | 
 
  | 
| 現在のスタック・トレース情報を取得するサンプル・コード(上:C#、下:VB) | 
 上記のサンプル・コードでは、「Environment.StackTrace」の行の実行時には、Mainメソッドの中からEnvironmentクラスのget_StackTraceメソッド(=StackTraceプロパティの実体)が呼び出され、さらにその中からEnvironmentクラスのGetStackTraceメソッドが呼び出されているということが分かる。
 スタック・トレース情報の活用場面としては、例えばデバッグやサポートなどの目的でログ出力に含めるといった使い方が考えられる。
 
カテゴリ:クラス・ライブラリ 処理対象:デバッグ&トレース 
使用ライブラリ:Environmentクラス(System名前空間) | 
 
|  
 | 
 
generated by  
 | 
 
 
 | 
 
 
	
		Insider.NET 記事ランキング
		
		
			本日
			月間