Tokens de flujo de control
Puede usar tokens de flujo de control para crear bucles de ejecución condicional y ejecución dentro de los programas de comandos del depurador.
Los tokens de flujo de control se comportan como sus homólogos en C y C++, con las siguientes excepciones generales:
Debe incluir cada bloque de comandos que se ejecuta condicionalmente o repetidamente entre llaves, incluso si solo hay un comando de este tipo. Por ejemplo, no puede omitir las llaves en el comando siguiente.
0:000> .if (ebx>0) { r ebx }
Cada condición debe ser una expresión. No se permiten comandos. Por ejemplo, en el ejemplo siguiente se produce un error de sintaxis.
0:000> .while (r ebx) { .... }
El comando final antes de una llave de cierre no tiene que ir seguido de un punto y coma.
Los siguientes tokens de flujo de control se admiten en un programa de comandos del depurador. Para obtener más información sobre la sintaxis de cada token, consulte los temas de referencia individuales.
El token .if se comporta como la palabra clave if en C.
El token .else se comporta como la palabra clave else en C.
El token .elsif se comporta como la combinación de palabras clave if en C.
El token .foreach analiza la salida de los comandos del depurador, una cadena o un archivo de texto. A continuación, este token toma cada elemento que encuentra y los usa como entrada para una lista especificada de comandos del depurador.
El .for token se comporta como la palabra clave for en C, excepto que debe separar varios comandos de incremento por punto y coma, no por comas.
El token .while se comporta como la palabra clave while en C.
El token .do se comporta como la palabra clave do en C, salvo que no se puede usar la palabra "while" antes de la condición.
El token .break se comporta como la palabra clave break en C. Puede usar este token dentro de cualquier bucle .for, .while o .do .
El token .continue se comporta como la palabra clave continue en C. Puede usar este token dentro de cualquier bucle .for, .while o .do.
El token .catch impide que un programa finalice si se produce un error. El token .catch va seguido de llaves que incluyen uno o varios comandos. Si uno de estos comandos genera un error, se muestra el mensaje de error, se omiten todos los comandos restantes dentro de las llaves y la ejecución se reanuda con el primer comando después de la llave de cierre.
El token .leave se usa para salir de un bloque .catch .
El token .printf se comporta como la instrucción printf en C.
El token .block no realiza ninguna acción. Debe usar este token solo para introducir un bloque, ya que no se puede crear un bloque solo mediante un par de llaves. Debe agregar un token de flujo de control antes de la llave de apertura.
Las extensiones !for_each_module, !for_each_frame y !for_each_local también son útiles con un programa de comandos del depurador.