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 перечисляет вызовы методов в обратном хронологическом порядке, то есть самый последний вызов метода описывается первым, а для каждого вызова метода в стеке указана одна строка сведений трассировки стека. StackTrace Однако свойство может не сообщать столько вызовов методов, сколько ожидалось из-за преобразований кода, происходящих во время оптимизации.

Note

Для иерархического представления сведений трассировки стека по классу StackTrace используйте класс.

Свойство StackTrace форматирует сведения трассировки стека для каждого вызова метода следующим образом:

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

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

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

MethodName Имя метода.

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

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

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

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

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