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