다음을 통해 공유


_EFN_StackTrace 함수

비관리 코드와 관리 코드 사이를 전환할 때마다 관리되는 스택 추적과 CONTEXT 레코드 배열의 텍스트 표현을 하나씩 제공합니다.

HRESULT CALLBACK _EFN_StackTrace(
    [in]  PDEBUG_CLIENT  Client,
    [out] WCHAR          wszTextOut[],
    [out] size_t         *puiTextLength,
    [out] LPVOID         pTransitionContexts,
    [out] size_t         *puiTransitionContextCount,
    [in]  size_t         uiSizeOfContext,
    [in]  DWORD          Flags
);

매개 변수

  • Client
    [in] 디버깅되는 클라이언트입니다.

  • wszTextOut
    [out] 스택 추적의 텍스트 표현입니다.

  • puiTextLength
    [out] wszTextOut의 문자 수에 대한 포인터입니다.

  • pTransitionContexts
    [out] 전환 컨텍스트 배열입니다.

  • puiTransitionContextCount
    [out] 배열의 전환 컨텍스트 수에 대한 포인터입니다.

  • uiSizeOfContext
    [in] 컨텍스트 구조체의 크기입니다.

  • Flags
    [in] 각 module!functionname 줄 앞에 EBP 레지스터와 ESP(Enter Stack Pointer)를 표시하려면 0이나 SOS_STACKTRACE_SHOWADDRESSES(0x01)로 설정합니다.

설명

_EFN_StackTrace 구조체는 WinDbg라는 프로그래밍 방식 인터페이스에서 호출될 수 있습니다. 매개 변수는 다음과 같이 사용됩니다.

  • wszTextOut이 null이고 puiTextLength가 null이 아니면 함수는 puiTextLength의 문자열 길이를 반환합니다.

  • wszTextOut이 null이 아니면 함수는 puiTextLength가 나타내는 위치까지 wszTextOut에 텍스트를 저장합니다. 버퍼에 여유 공간이 있으면 결과를 성공적으로 반환하고 버퍼에 여유 공간이 없으면 E_OUTOFMEMORY를 반환합니다.

  • pTransitionContexts 및 puiTransitionContextCount가 모두 null이면 함수의 전환 부분이 무시됩니다. 이 경우 함수는 호출자에게 함수 이름으로만 구성된 텍스트 출력을 제공합니다.

  • pTransitionContexts가 null이고 puiTransitionContextCount가 null이 아니면 함수는 puiTransitionContextCount에 있는 필요한 컨텍스트 항목 수를 반환합니다.

  • pTransitionContexts가 null이 아니면 함수는 해당 배열을 길이가 puiTransitionContextCount인 구조체의 배열로 처리합니다. 구조체 크기는 uiSizeOfContext로 제공되고 아키텍처에 대한 SimpleContext 또는 CONTEXT의 크기여야 합니다.

  • wszTextOut은 다음 형식으로 작성됩니다.

    "<ModuleName>!<Function Name>[+<offset in hex>]
    ...
    (TRANSITION)
    ..."
    
  • 16진 오프셋이 0x0이면 오프셋이 작성되지 않습니다.

  • 현재 컨텍스트에 있는 스레드에 관리 코드가 없으면 함수는 SOS_E_NOMANAGEDCODE를 반환합니다.

  • Flags 매개 변수는 각 module!functionname 줄 앞에 EBP 및 ESP를 표시하도록 SOS_STACKTRACE_SHOWADDRESSES이거나 0입니다. 기본적으로 이 값은 0입니다.

    #define SOS_STACKTRACE_SHOWADDRESSES   0x00000001
    

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: SOS_Stacktrace.h

.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

참고 항목

기타 리소스

디버깅 전역 정적 함수