Environment.StackTrace 属性

定义

获取当前的堆栈跟踪信息。

public:
 static property System::String ^ StackTrace { System::String ^ get(); };
public static string StackTrace { get; }
member this.StackTrace : string
Public Shared ReadOnly Property StackTrace As String

属性值

String

包含堆栈跟踪信息的字符串。 此值可为 Empty

示例

以下示例演示了该 StackTrace 属性。

// Sample for the Environment::StackTrace property
using namespace System;
int 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
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 属性按反向时间顺序列出方法调用,即首先描述最新的方法调用,并列出堆栈上每个方法调用的一行堆栈跟踪信息。 但是,由于优化期间发生的代码转换,该 StackTrace 属性可能不会报告尽可能多的方法调用。

备注

对于按类划分的堆栈跟踪信息的分层视图,请使用该 StackTrace 类。

StackTrace 属性设置每个方法调用的堆栈跟踪信息的格式,如下所示:

“atFullClassName.MethodName在 :line LineNumberMethodParams FileName () ”

文本“at”前面有三个空格,如果调试符号不可用,则忽略以“in”开头的整个子字符串。 占位符、 FullClassNameMethodNameMethodParamsFileNameLineNumber占位符替换为实际值,并定义如下:

FullClassName 类的完整名称,包括命名空间。

MethodName 方法的名称。

MethodParams 参数类型/名称对的列表。 每个配对用逗号 (“,”) 分隔。 如果未 MethodName 采用任何参数,则省略此信息。

FileName 声明方法的源文件 MethodName 的名称。 如果调试符号不可用,则省略此信息。

LineNumber包含来自调用堆栈上的指令的源代码MethodName的行FileName数。 如果调试符号不可用,则省略此信息。

字符串 Environment.NewLine 将终止堆栈跟踪的每一行。

适用于