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 스택 추적의 각 줄을 종료합니다.
적용 대상
.NET