Environment.StackTrace プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のスタック トレース情報を取得します。
public:
static property System::String ^ StackTrace { System::String ^ get(); };
public static string StackTrace { get; }
static member StackTrace : string
Public Shared ReadOnly Property StackTrace As String
プロパティ値
スタック トレース情報を含む文字列。 この値は、Empty の場合もあります。
例
次の例では、 StackTrace プロパティを示します。
// Sample for the Environment.StackTrace property
using System;
class Sample
{
public static void Main()
{
Console.WriteLine();
Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace);
}
}
/*
This example produces the following results:
StackTrace: ' at System.Environment.GetStackTrace(Exception e)
at System.Environment.GetStackTrace(Exception e)
at System.Environment.get_StackTrace()
at Sample.Main()'
*/
// Sample for the Environment.StackTrace property
open System
printfn $"\nStackTrace: '{Environment.StackTrace}'"
// This example produces the following results:
// StackTrace: ' at System.Environment.GetStackTrace(Exception e)
// at System.Environment.GetStackTrace(Exception e)
// at System.Environment.get_StackTrace()
// at <StartupCode$fs>.$Stacktrace.main@()'
' Sample for the Environment.StackTrace property
Class Sample
Public Shared Sub Main()
Console.WriteLine()
Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace)
End Sub
End Class
'
'This example produces the following results:
'
'StackTrace: ' at System.Environment.GetStackTrace(Exception e)
' at System.Environment.GetStackTrace(Exception e)
' at System.Environment.get_StackTrace()
' at Sample.Main()'
'
注釈
StackTrace プロパティは、メソッド呼び出しを時系列順に逆順に一覧表示します。つまり、最新のメソッド呼び出しが最初に記述され、スタック上のメソッド呼び出しごとに 1 行のスタック トレース情報が一覧表示されます。 ただし、 StackTrace プロパティは、最適化中に発生するコード変換のために、予想される数のメソッド呼び出しを報告しない場合があります。
Note
クラス別のスタック トレース情報の階層ビューには、 StackTrace クラスを使用します。
StackTrace プロパティは、各メソッド呼び出しのスタック トレース情報を次のように書式設定します。
"at FullClassName.MethodName(MethodParams) in FileName :line LineNumber "
リテラル "at" の前に 3 つのスペースがあり、デバッグ シンボルが使用できない場合は、"in" で始まる部分文字列全体が省略されます。 プレースホルダー、 FullClassName、 MethodName、 MethodParams、 FileName、および LineNumberは実際の値に置き換えられ、次のように定義されます。
FullClassName 名前空間を含む、クラスの完全な名前。
MethodName メソッドの名前。
MethodParams パラメーターの型と名前のペアの一覧。 各ペアはコンマ (",") で区切られます。
MethodNameがパラメーターを受け取っていない場合、この情報は省略されます。
FileName
MethodName メソッドが宣言されているソース ファイルの名前。 デバッグ シンボルを使用できない場合、この情報は省略されます。
LineNumber呼び出し履歴上にある命令のFileNameからのソース コードを含むMethodName内の行の番号。 デバッグ シンボルを使用できない場合、この情報は省略されます。
Environment.NewLine文字列は、スタック トレースの各行を終了します。