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 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 为每个方法调用设置堆栈跟踪信息的格式,如下所示:
“在 FullClassName
。MethodName
在 :MethodParams
line LineNumber
中FileName
() ”
文本“at”前面有三个空格,如果调试符号不可用,则省略以“in”开头的整个子字符串。 占位符FullClassName
、、MethodName
MethodParams
、FileName
、 和 LineNumber
替换为实际值,定义如下:
FullClassName
类的全名,包括 命名空间。
MethodName
方法的名称。
MethodParams
参数类型/名称对的列表。 每对用逗号 (“,”) 分隔。 如果未 MethodName
采用任何参数,则省略此信息。
FileName
声明方法的源文件 MethodName
的名称。 如果调试符号不可用,则省略此信息。
LineNumber
中 FileName
包含调用 MethodName
堆栈上指令的源代码的行号。 如果调试符号不可用,则省略此信息。
字符串 Environment.NewLine 终止堆栈跟踪的每一行。