Environment.StackTrace 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 스택 추적 정보를 가져옵니다.
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 다음과 같이 각 메서드 호출에 대한 스택 추적 정보의 형식을 지정합니다.
"에 있습니다 FullClassName.MethodName(MethodParams) in FileName :line LineNumber "
리터럴 "at"의 앞에는 세 개의 공백이 있고 디버그 기호를 사용할 수 없는 경우 "in"으로 시작하는 전체 부분 문자열이 생략됩니다. 자리 표시자, FullClassName, MethodName, MethodParams, FileName및 LineNumber는 실제 값으로 대체되며 다음과 같이 정의됩니다.
FullClassName 네임스페이스를 포함한 클래스의 전체 이름입니다.
MethodName 메서드의 이름입니다.
MethodParams 매개 변수 형식/이름 쌍의 목록입니다. 각 쌍은 쉼표(",")로 구분됩니다. 매개 변수를 사용하지 않으면 MethodName 이 정보가 생략됩니다.
FileName 메서드가 선언된 원본 파일의 MethodName 이름입니다. 디버그 기호를 사용할 수 없는 경우이 정보가 생략 됩니다.
LineNumber 호출 스택에 FileName 있는 명령의 소스 코드를 MethodName 포함하는 의 줄 수입니다. 디버그 기호를 사용할 수 없는 경우이 정보가 생략 됩니다.
문자열은 Environment.NewLine 스택 추적의 각 줄을 종료합니다.