Environment.StackTrace プロパティ

定義

現在のスタック トレース情報を取得します。

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" で始まる部分文字列全体が省略されます。 プレースホルダー、 FullClassNameMethodNameMethodParamsFileName、および LineNumberは実際の値に置き換えられ、次のように定義されます。

FullClassName 名前空間を含む、クラスの完全な名前。

MethodName メソッドの名前。

MethodParams パラメーターの型と名前のペアの一覧。 各ペアはコンマ (",") で区切られます。 MethodNameがパラメーターを受け取っていない場合、この情報は省略されます。

FileName MethodName メソッドが宣言されているソース ファイルの名前。 デバッグ シンボルを使用できない場合、この情報は省略されます。

LineNumber呼び出し履歴上にある命令のFileNameからのソース コードを含むMethodName内の行の番号。 デバッグ シンボルを使用できない場合、この情報は省略されます。

Environment.NewLine文字列は、スタック トレースの各行を終了します。

適用対象