제어 흐름 토큰

제어 흐름 토큰을 사용하여 디버거 명령 프로그램 내에서 조건부 실행 및 실행 루프를 만들 수 있습니다.

제어 흐름 토큰은 다음과 같은 일반적인 예외를 제외하고 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 확장은 디버거 명령 프로그램에서도 유용합니다.