다음을 통해 공유


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입니다. Frames가NULL이면 이 정보가 반환되지 않습니다.

[in] FramesSize

배열 프레임의 항목 수를 지정 합니다.

[out, optional] FrameContexts

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

[in] FrameContextsSize

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

[in] FrameContextsEntrySize

FrameContexts에서 각 프레임 컨텍스트의 크기(바이트)를 지정합니다.

[out, optional] FramesFilled

FrameContexts의 배열 프레임 및 컨텍스트에 배치된 프레임 수를 받습니다. FramesFilledNULL이면 이 정보가 반환되지 않습니다.

반환 값

반환 코드 Description
S_OK
메서드를 성공적으로 수행했습니다.
 

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

설명

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

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

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 dbgeng.h(Dbgeng.h, Ntddk.h 포함)

추가 정보

GetStackTraceEx

IDebugControl5

OutputContextStackTraceEx

k, kb, kc, kd, kp, kP, kv(디스플레이 스택 백트레이스)