다음을 통해 공유


IDebugControl5::GetContextStackTraceEx 메서드(dbgeng.h)

GetContextStackTraceEx 메서드는 임의의 레지스터 컨텍스트 시작하고 각 스택 프레임에 대해 재구성된 레지스터 컨텍스트를 반환하여 호출 스택의 맨 위에 있는 프레임을 반환합니다. GetContextStackTraceEx 메서드는 인라인 프레임 지원을 제공합니다. 인라인 함수 작업에 대한 자세한 내용은 최적화된 코드 및 인라인 함수 디버깅을 참조하세요.

통사론

HRESULT GetContextStackTraceEx(
  [in, optional]  PVOID                 StartContext,
  [in]            ULONG                 StartContextSize,
  [out, optional] PDEBUG_STACK_FRAME_EX Frames,
  [in]            ULONG                 FramesSize,
  [out, optional] PVOID                 FrameContexts,
  [in]            ULONG                 FrameContextsSize,
  [in]            ULONG                 FrameContextsEntrySize,
  [out, optional] PULONG                FramesFilled
);

매개 변수

[in, optional] StartContext

스택의 맨 위에 대한 레지스터 컨텍스트를 지정합니다.

[in] StartContextSize

StartContext 레지스터 컨텍스트의 크기(바이트)를 지정합니다.

[out, optional] Frames

스택 프레임을 받습니다. 이 배열이 보유하는 요소 수는 FrameSize . 프레임 NULL 경우 이 정보가 반환되지 않습니다.

[in] FramesSize

배열 Frames항목 수를 지정합니다.

[out, optional] FrameContexts

스택의 각 프레임에 대해 재구성된 레지스터 컨텍스트를 받습니다. 이 배열의 항목은 Frames 배열의 항목에 해당합니다. 스레드 컨텍스트의 형식은 대상의 유효 프로세서에 대한 CONTEXT 구조입니다. FrameContexts NULL 경우 이 정보가 반환되지 않습니다.

[in] FrameContextsSize

FrameContexts가리키는 메모리의 크기(바이트)를 지정합니다. 반환되는 스택 프레임의 수는 반환되는 컨텍스트 수와 같으며, FrameContextsSizeFramesSizeFrameContextsEntrySize같아야 합니다.

[in] FrameContextsEntrySize

FrameContexts각 프레임 컨텍스트의 크기를 바이트 단위로 지정합니다.

[out, optional] FramesFilled

배열 FrameFrameContexts컨텍스트에 배치된 프레임 수를 받습니다. FramesFilled NULL 경우 이 정보가 반환되지 않습니다.

반환 값

반환 코드 묘사
S_OK
메서드가 성공했습니다.
 

이 메서드는 오류 값을 반환할 수도 있습니다. 자세한 내용은 반환 값참조하세요.

발언

FramesFrameContexts 반환된 스택 추적은 OutputContextStackTraceEx사용하여 인쇄할 수 있습니다.

스택 해제는 레지스터의 하위 집합만 복원하는 것이 일반적입니다. 예를 들어 일시적 레지스터는 스크래치 레지스터이고 코드는 이를 유지할 필요가 없으므로 스택 해제가 항상 휘발성 레지스터 상태를 복원하지는 않습니다. 해제 시 복원되지 않은 레지스터는 마지막 값이 복원된 상태로 남아 있으므로 해제에 의해 복원되지 않을 수 있는 레지스터 상태를 사용할 때는 주의해야 합니다.

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 dbgeng.h(Dbgeng.h, Ntddk.h 포함)

참고 항목

GetStackTraceEx

IDebugControl5

OutputContextStackTraceEx

k, kb, kc, kd, kp, kP, kv(Stack Backtrace 표시)