Token del flusso di controllo
È possibile usare i token del flusso di controllo per creare cicli di esecuzione ed esecuzione condizionali all'interno dei programmi di comando del debugger.
I token del flusso di controllo si comportano come le controparti in C e C++, con le eccezioni generali seguenti:
È necessario racchiudere ogni blocco di comandi che viene eseguito in modo condizionale o ripetutamente tra parentesi graffe, anche se è presente un solo comando di questo tipo. Ad esempio, non è possibile omettere le parentesi graffe nel comando seguente.
0:000> .if (ebx>0) { r ebx }
Ogni condizione deve essere un'espressione. I comandi non sono consentiti. Ad esempio, l'esempio seguente genera un errore di sintassi.
0:000> .while (r ebx) { .... }
Il comando finale prima di una parentesi graffa di chiusura non deve essere seguito da un punto e virgola.
I token del flusso di controllo seguenti sono supportati all'interno di un programma di comando del debugger. Per altre informazioni sulla sintassi di ogni token, vedere i singoli argomenti di riferimento.
Il token .if si comporta come la parola chiave if in C.
Il token .else si comporta come la parola chiave else in C.
Il token elsif si comporta come la combinazione di parole chiave else if in C.
Il token foreach analizza l'output dei comandi del debugger, una stringa o un file di testo. Questo token accetta quindi ogni elemento trovato e li usa come input per un elenco specificato di comandi del debugger.
Il .for token si comporta come la parola chiave for in C, ad eccezione del fatto che è necessario separare più comandi di incremento per punto e virgola, non per virgole.
Il token .while si comporta come la parola chiave while in C.
Il token .do si comporta come la parola chiave do in C, ad eccezione del fatto che non è possibile usare la parola "while" prima della condizione.
Il token di interruzione si comporta come la parola chiave break in C. È possibile usare questo token all'interno di qualsiasi ciclo .for, .while o .do .
Il token .continue si comporta come la parola chiave continue in C. È possibile usare questo token all'interno di qualsiasi ciclo .for, .while o .do .
Il token .catch impedisce a un programma di terminare se si verifica un errore. Il token .catch è seguito da parentesi graffe che racchiudono uno o più comandi. Se uno di questi comandi genera un errore, viene visualizzato il messaggio di errore, tutti i comandi rimanenti all'interno delle parentesi graffe vengono ignorati e l'esecuzione riprende con il primo comando dopo la parentesi graffa di chiusura.
Il token .leave viene usato per uscire da un blocco .catch .
Il token .printf si comporta come l'istruzione printf in C.
Il token .block non esegue alcuna azione. È consigliabile usare questo token solo per introdurre un blocco, perché non è possibile creare un blocco solo usando una coppia di parentesi graffe. È necessario aggiungere un token del flusso di controllo prima della parentesi graffa di apertura.
Le estensioni !for_each_module, !for_each_frame e !for_each_local sono utili anche con un programma di comando del debugger.