IDebugControl4::OutputContextStackTrace 메서드(dbgeng.h)
OutputContextStackTrace 메서드는 스택 프레임 및 해당 레지스터 컨텍스트의 배열로 지정된 호출 스택을 인쇄합니다.
구문
HRESULT OutputContextStackTrace(
[in] ULONG OutputControl,
[in] PDEBUG_STACK_FRAME Frames,
[in] ULONG FramesSize,
[in] PVOID FrameContexts,
[in] ULONG FrameContextsSize,
[in] ULONG FrameContextsEntrySize,
[in] ULONG Flags
);
매개 변수
[in] OutputControl
출력을 보낼 위치를 지정합니다. 가능한 값은 DEBUG_OUTCTL_XXX 참조하세요.
[in] Frames
출력할 스택 프레임의 배열을 지정합니다. 이 배열의 요소 수는 FramesSize입니다. Frames가NULL이면 현재 스택 프레임이 사용됩니다.
[in] FramesSize
출력할 프레임 수를 지정합니다.
[in] FrameContexts
스택의 각 프레임에 대한 레지스터 컨텍스트를 지정합니다. 이 배열의 항목은 Frames 배열의 항목에 해당합니다. 스레드 컨텍스트의 형식은 대상의 유효 프로세서에 대한 CONTEXT 구조입니다.
[in] FrameContextsSize
FrameContexts가 가리키는 메모리의 크기(바이트)를 지정합니다. 스택 프레임 수는 컨텍스트 수와 같아야 하며 FrameContextsSize는 FramesSize에 FrameContextsEntrySize를 곱한 값과 같아야 합니다.
[in] FrameContextsEntrySize
FrameContexts에서 각 프레임 컨텍스트의 크기(바이트)를 지정합니다.
[in] Flags
각 프레임에 대해 출력할 정보를 결정하는 비트 플래그를 지정합니다. 플래그 는 다음 표의 값 조합일 수 있습니다.
플래그 | 설명 |
---|---|
DEBUG_STACK_ARGUMENTS | 각 호출의 프레임에 처음 세 개의 스택 메모리를 표시합니다. 인수가 스택에 전달되고 프레임의 코드가 스택 인수를 사용하는 플랫폼에서 이러한 값은 함수에 대한 인수가 됩니다. |
DEBUG_STACK_FUNCTION_INFO | 프레임에 해당하는 함수에 대한 정보를 표시합니다. 여기에는 호출 규칙 및 FPO(프레임 포인터 누락) 정보가 포함됩니다. |
DEBUG_STACK_SOURCE_LINE | 스택 추적의 각 프레임에 대한 소스 줄 정보를 표시합니다. |
DEBUG_STACK_FRAME_ADDRESSES | 각 프레임의 반환 주소, 이전 프레임 주소 및 기타 관련 주소를 표시합니다. |
DEBUG_STACK_COLUMN_NAMES | 열 이름을 표시합니다. |
DEBUG_STACK_NONVOLATILE_REGISTERS | 각 프레임에 대한 비휘발성 레지스터 컨텍스트를 표시합니다. 이는 일부 플랫폼에만 의미가 있습니다. |
DEBUG_STACK_FRAME_NUMBERS | 프레임 번호를 표시합니다. |
DEBUG_STACK_PARAMETERS | 기호 정보에 지정된 대로 매개 변수 이름과 값을 표시합니다. |
DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY | 스택 프레임 주소에 반환 주소만 표시합니다. |
DEBUG_STACK_FRAME_MEMORY_USAGE | 프레임을 구분하는 바이트 수를 표시합니다. |
DEBUG_STACK_PARAMETERS_NEWLINE | 각 매개 변수와 해당 형식 및 값을 새 줄에 표시합니다. |
반환 값
이 메서드는 오류 값을 반환할 수도 있습니다. 자세한 내용은 반환 값을 참조하세요.
반환 코드 | Description |
---|---|
|
메서드를 성공적으로 수행했습니다. |
설명
스택 프레임의 배열은 GetContextStackTrace를 사용하여 가져올 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | dbgeng.h(Dbgeng.h, Ntddk.h 포함) |