제어 흐름 토큰
제어 흐름 토큰을 사용하여 디버거 명령 프로그램 내에서 조건부 실행 및 실행 루프를 만들 수 있습니다.
제어 흐름 토큰은 다음과 같은 일반적인 예외를 제외하고 C 및 C++의 해당 토큰처럼 작동합니다.
이러한 명령이 하나만 있더라도 조건부 또는 중괄호로 반복적으로 실행되는 명령의 각 블록을 묶어야 합니다. 예를 들어 다음 명령에서 중괄호를 생략할 수 없습니다.
0:000> .if (ebx>0) { r ebx }
각 조건은 식이어야 합니다. 명령은 허용되지 않습니다. 예를 들어 다음 예제에서는 구문 오류를 생성합니다.
0:000> .while (r ebx) { .... }
닫는 중괄호 앞의 마지막 명령 뒤에 세미콜론이 있을 필요는 없습니다.
다음 제어 흐름 토큰은 디버거 명령 프로그램 내에서 지원됩니다. 각 토큰의 구문에 대한 자세한 내용은 개별 참조 항목을 참조하세요.
.if 토큰은 C에서 if 키워드(keyword) 동작합니다.
.else 토큰은 C의 다른 키워드(keyword) 같이 동작합니다.
.elsif 토큰은 C에서 키워드(keyword) 조합인 경우 다른 토큰과 같이 동작합니다.
.foreach 토큰은 디버거 명령, 문자열 또는 텍스트 파일의 출력을 구문 분석합니다. 그런 다음 이 토큰은 찾은 각 항목을 가져와서 지정된 디버거 명령 목록에 대한 입력으로 사용합니다.
.for 토큰은 여러 증분 명령을 쉼표가 아닌 세미콜론으로 구분해야 한다는 점을 제외하고 C의 for 키워드(keyword) 같이 동작합니다.
.while 토큰은 C에서 키워드(keyword) 동안처럼 동작합니다.
.do 토큰은 조건 앞에 "while"라는 단어를 사용할 수 없다는 점을 제외하고 C에서 do 키워드(keyword) 동작합니다.
.break 토큰은 C에서 중단 키워드(keyword) 동작합니다. .for, .while 또는 .do 루프 내에서 이 토큰을 사용할 수 있습니다.
.continue 토큰은 C에서 계속 키워드(keyword) 동작합니다. .for, .while 또는 .do 루프 내에서 이 토큰을 사용할 수 있습니다.
.catch 토큰은 오류가 발생할 경우 프로그램이 종료되지 않도록 합니다. .catch 토큰 뒤에는 하나 이상의 명령을 묶는 중괄호가 잇습니다. 이러한 명령 중 하나가 오류를 생성하면 오류 메시지가 표시되고, 중괄호 내의 모든 재기본 명령이 무시되고, 닫는 중괄호 이후 첫 번째 명령으로 실행이 다시 시작됩니다.
.leave 토큰은 .catch 블록에서 종료하는 데 사용됩니다.
.printf 토큰은 C의 printf 문처럼 동작합니다.
.block 토큰은 아무 작업도 수행하지 않습니다. 중괄호 쌍만 사용하여 블록을 만들 수 없으므로 이 토큰은 블록을 도입하는 데만 사용해야 합니다. 여는 중괄호 앞에 제어 흐름 토큰을 추가해야 합니다.
!for_each_module, !for_each_frame 및 !for_each_local 확장은 디버거 명령 프로그램에서도 유용합니다.