다음을 통해 공유


!for_each_frame

!for_each_frame 확장은 현재 스레드 스택의 각 프레임에 대해 디버거 명령을 한 번 실행합니다.

!for_each_frame ["CommandString"] 
!for_each_frame -?

매개 변수

CommandString
각 프레임에 대해 한 번 실행할 디버거 명령을 지정합니다. CommandString에 여러 명령이 포함된 경우 세미콜론으로 구분하고 CommandString을 따옴표로 묶어야 합니다. 여러 명령을 포함하는 경우 CommandString의 개별 명령에 따옴표를 포함할 수 없습니다. CommandString 내에서 현재 프레임의 인덱스를 참조하려면 @$frame pseudoregister를 사용합니다.

-?
디버거 명령 창이 확장에 대한 도움말 텍스트를 표시합니다.

DLL

Ext.dll

추가 정보

로컬 컨텍스트에 대한 자세한 내용은 컨텍스트 변경을 참조 하세요.

설명

인수 를 지정하지 않으면 !for_each_frame 확장에는 모든 프레임 및 해당 프레임 인덱스의 목록이 표시됩니다. 모든 프레임의 자세한 목록을 보려면 k(Stack Backtrace 표시) 명령을 사용합니다.

k 명령은 최대 256프레임까지 걸어갑니다. 열거된 각 프레임에 대해 해당 프레임은 일시적으로 현재 로컬 컨텍스트(.frame(로컬 컨텍스트 설정) 명령과 유사)가 됩니다. 컨텍스트가 설정 되면 CommandString 이 실행됩니다. 모든 프레임을 사용한 후 로컬 컨텍스트는 !for_each_frame 확장을 사용하기 전의 값으로 다시 설정됩니다.

CommandString을 포함하는 경우 디버거는 해당 프레임에 대해 명령을 실행하기 전에 프레임과 해당 인덱스를 표시합니다.

다음 명령은 현재 스택에 대한 모든 지역 변수를 표시합니다.

!for_each_frame !for_each_local dt @#Local