Environment.StackTrace 属性

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

**命名空间:**System
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Shared ReadOnly Property StackTrace As String
用法
Dim value As String

value = Environment.StackTrace
public static string StackTrace { get; }
public:
static property String^ StackTrace {
    String^ get ();
}
/** @property */
public static String get_StackTrace ()
public static function get StackTrace () : String

属性值

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

异常

异常类型 条件

ArgumentOutOfRangeException

请求的堆栈跟踪信息超出范围。

备注

StackTrace 属性以逆向时间顺序列出了方法调用,即首先描述最近的方法调用,然后为堆栈上的每个方法调用都列出一行堆栈跟踪信息。但是,由于优化期间发生的代码转换,StackTrace 属性报告的方法调用可能没有预期的多。

每个方法调用的堆栈跟踪信息的格式如下:

“at FullClassName .MethodName ( MethodParams ) in FileName :line LineNumber”

其中“at”前面有 3 个空格,如果没有调试符号,则省略“in”和“:line”。占位符 FullClassName、MethodName、MethodParms、FileName 和 LineNumber 均由实际的值替换,这些值定义如下:

FullClassName

类的全名,包括命名空间。

MethodName

方法名。

MethodParms

参数类型/名称对的列表。每对用逗号(“,”)分隔。如果 MethodName 具有零参数,则省略此信息。

FileName

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

LineNumber

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

示例

下面的代码示例演示了 StackTrace 属性。

' Sample for the Environment.StackTrace property
Imports System

Class Sample
   Public Shared Sub Main()
      Console.WriteLine()
      Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace)
   End Sub 'Main
End Class 'Sample
'
'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
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

import System.*;

class Sample
{
    public static void main(String[] args)
    {
        Console.WriteLine();
        Console.WriteLine("StackTrace: '{0}'", Environment.get_StackTrace());
    } //main
} //Sample

/*
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(String args[])'
*/

.NET Framework 安全性

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

Environment 类
Environment 成员
System 命名空间