.frame(로컬 컨텍스트 설정)

.frame 명령은 지역 변수를 해석하거나 현재 로컬 컨텍스트를 표시하는 데 사용되는 로컬 컨텍스트(scope)를 지정합니다.

.frame [/c] [/r] [FrameNumber] 
.frame [/c] [/r] = BasePtr [FrameIncrement] 
.frame [/c] [/r] = BasePtr StackPtr InstructionPtr 

매개 변수

/C
지정된 프레임을 현재 로컬 재정의 컨텍스트로 설정합니다. 이 작업을 통해 사용자는 호출 스택의 모든 함수에 대해 비휘발성 레지스터에 액세스할 수 있습니다.

/r
레지스터 및 지정된 로컬 컨텍스트에 대한 기타 정보를 표시합니다.

FrameNumber
로컬 컨텍스트를 원하는 프레임의 수를 지정합니다. 이 매개 변수가 0이면 명령은 현재 프레임을 지정합니다. 이 매개 변수를 생략하면 이 명령은 현재 로컬 컨텍스트를 표시합니다.

BasePtr
명령 이름(.frame) 다음에 등호(=)를 추가하는 경우 프레임을 결정하는 데 사용되는 스택 추적의 기본 포인터 지정합니다. x86 기반 프로세서에서는 BasePtr(FrameIncrement로 해석됨) 다음에 다른 인수를 추가하거나 BasePtr(InstructionPtrStackPtr로 해석됨) 다음에 두 개의 인수를 더 추가합니다.

FrameIncrement
(x86 기반 프로세서만 해당)

기본 포인터를 지나는 프레임의 추가 수량을 지정합니다. 예를 들어 기본 포인터 0x0012FF00 프레임 3의 주소인 경우 .frame 12ff00 명령은 .frame 3과 동일하고 .frame 12ff00 2.frame 5와 동일합니다.

StackPtr
(x86 기반 프로세서만 해당) 프레임을 결정하는 데 사용되는 스택 추적에 대한 스택 포인터를 지정합니다. StackPtrInstructionPtr을 생략하면 디버거는 esp 레지스터가 지정하는 스택 포인터와 eip 레지스터가 지정하는 명령 포인터를 사용합니다.

InstructionPtr
(x86 기반 프로세서만 해당) 프레임을 결정하는 데 사용되는 스택 추적에 대한 명령 포인터를 지정합니다. StackPtrInstructionPtr을 생략하면 디버거는 esp 레지스터가 지정하는 스택 포인터와 eip 레지스터가 지정하는 명령 포인터를 사용합니다.

Environment

항목 Description
모드 사용자 모드, 커널 모드
대상 라이브, 크래시 덤프
플랫폼 모두

추가 정보

로컬 컨텍스트 및 기타 컨텍스트 설정에 대한 자세한 내용은 컨텍스트 변경을 참조하세요. 지역 변수 및 기타 메모리 관련 명령을 표시하는 방법에 대한 자세한 내용은 메모리 읽기 및 쓰기를 참조하세요.

설명

애플리케이션이 실행 중일 때 지역 변수의 의미는 프로그램 카운터의 위치에 따라 달라집니다. 이러한 변수의 scope 정의된 함수로만 확장되기 때문입니다. .frame 명령을 사용하지 않는 경우 디버거는 현재 함수(스택의 현재 프레임)의 scope 로컬 컨텍스트로 사용합니다.

로컬 컨텍스트를 변경하려면 .frame 명령을 사용하고 원하는 프레임 번호를 지정합니다.

프레임 번호는 스택 추적 내의 스택 프레임 위치입니다. k(Display Stack Backtrace) 명령 또는 호출 창을 사용하여 이 스택 추적을 볼 수 있습니다. 첫 번째 줄(현재 프레임)은 프레임 번호 0입니다. 후속 줄은 프레임 번호 1, 2, 3 등을 나타냅니다.

k 명령과 함께 n 매개 변수를 사용하는 경우 k 명령은 스택 추적과 함께 프레임 번호를 표시합니다. 이러한 프레임 번호는 항상 16진수 형식으로 표시됩니다. 반면에 .frame 명령은 0x와 같은 접두사로 이 설정을 재정의하지 않는 한 해당 인수를 기본 radix로 해석합니다. 기본 radix를 변경하려면 n(숫자 기준 설정) 명령을 사용합니다.

로컬 컨텍스트를 다른 스택 프레임으로 설정하여 새 지역 변수 정보를 볼 수 있습니다. 그러나 사용할 수 있는 실제 변수는 실행 중인 코드에 따라 달라집니다.

로컬 컨텍스트는 애플리케이션 실행이 발생하는 경우 프로그램 카운터의 scope 다시 설정됩니다. 레지스터 컨텍스트가 변경되면 로컬 컨텍스트가 최상위 스택 프레임으로 다시 설정됩니다.