다음을 통해 공유


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 다음과 같이 각 메서드 호출에 대한 스택 추적 정보의 형식을 지정합니다.

"에 있습니다 FullClassName.MethodName(MethodParams) in FileName :line LineNumber "

리터럴 "at"의 앞에는 세 개의 공백이 있고 디버그 기호를 사용할 수 없는 경우 "in"으로 시작하는 전체 부분 문자열이 생략됩니다. 자리 표시자, FullClassName, MethodName, MethodParams, FileNameLineNumber는 실제 값으로 대체되며 다음과 같이 정의됩니다.

FullClassName 네임스페이스를 포함한 클래스의 전체 이름입니다.

MethodName 메서드의 이름입니다.

MethodParams 매개 변수 형식/이름 쌍의 목록입니다. 각 쌍은 쉼표(",")로 구분됩니다. 매개 변수를 사용하지 않으면 MethodName 이 정보가 생략됩니다.

FileName 메서드가 선언된 원본 파일의 MethodName 이름입니다. 디버그 기호를 사용할 수 없는 경우이 정보가 생략 됩니다.

LineNumber 호출 스택에 FileName 있는 명령의 소스 코드를 MethodName 포함하는 의 줄 수입니다. 디버그 기호를 사용할 수 없는 경우이 정보가 생략 됩니다.

문자열은 Environment.NewLine 스택 추적의 각 줄을 종료합니다.

적용 대상