Прочитать на английском

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


Environment.StackTrace Свойство

Определение

Возвращает текущие сведения о трассировке стека.

public static string StackTrace { get; }

Значение свойства

Строка, содержащая сведения о трассировке стека. Это значение может быть равно 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()'
*/

Комментарии

Свойство 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 завершает каждую строку трассировки стека.

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

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0