Поделиться через


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 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 форматирует сведения трассировки стека для каждого вызова метода следующим образом:

"at FullClassName.MethodName(MethodParams) в FileName :line LineNumber "

Литералу "at" предшествуют три пробела, а вся подстрока, начинающаяся с "in", опущена, если отладочные символы недоступны. Заполнители, FullClassName, MethodName, MethodParams, FileNameи LineNumberзаменяются фактическими значениями и определяются следующим образом:

FullClassName Полное имя класса, включая пространство имен.

MethodName Имя метода.

MethodParams Список пар "тип-имя параметра". Каждая пара отделяется запятой (","). Эти сведения опущены, если MethodName не принимает никаких параметров.

FileName Имя исходного файла, в котором MethodName объявлен метод. Эти сведения опущены, если отладочные символы недоступны.

LineNumber Номер строки в FileName , содержащей исходный код для MethodName инструкции, которая находится в стеке вызовов. Эти сведения опущены, если отладочные символы недоступны.

Строка Environment.NewLine завершает каждую строку трассировки стека.

Применяется к