Jetons de flux de contrôle
Vous pouvez utiliser des jetons de flux de contrôle pour créer des boucles d’exécution et d’exécution conditionnelles dans les programmes de commandes du débogueur.
Les jetons de flux de contrôle se comportent comme leurs équivalents en C et C++, avec les exceptions générales suivantes :
Vous devez placer chaque bloc de commandes exécuté de manière conditionnelle ou répétée dans des accolades, même s’il n’y a qu’une seule commande de ce type. Par exemple, vous ne pouvez pas omettre les accolades dans la commande suivante.
0:000> .if (ebx>0) { r ebx }
Chaque condition doit être une expression. Les commandes ne sont pas autorisées. Par exemple, l’exemple suivant génère une erreur de syntaxe.
0:000> .while (r ebx) { .... }
La commande finale avant une accolade fermante n’a pas besoin d’être suivie d’un point-virgule.
Les jetons de flux de contrôle suivants sont pris en charge dans un programme de commande de débogueur. Pour plus d’informations sur la syntaxe de chaque jeton, consultez les rubriques de référence individuelles.
Le jeton .if se comporte comme le si mot clé en C.
Le jeton .else se comporte comme l’autre mot clé en C.
Le jeton .elsif se comporte comme l’autre si mot clé combinaison en C.
Le jeton .foreach analyse la sortie des commandes du débogueur, une chaîne ou un fichier texte. Ce jeton prend ensuite chaque élément qu’il trouve et les utilise comme entrée dans une liste spécifiée de commandes du débogueur.
Le jeton .for se comporte comme le pour mot clé en C, sauf que vous devez séparer plusieurs commandes d’incrément par des points-virgules, et non par des virgules.
Le jeton .while se comporte comme le mot clé while en C.
Le jeton .do se comporte comme le mot clé en C, sauf que vous ne pouvez pas utiliser le mot « while » avant la condition.
Le jeton .break se comporte comme le mot clé d’arrêt en C. Vous pouvez utiliser ce jeton dans n’importe quelle boucle .for, .while ou .do.
Le jeton .continue se comporte comme la mot clé continue en C. Vous pouvez utiliser ce jeton dans n’importe quelle boucle .for, .while ou .do.
Le jeton .catch empêche la fin d’un programme si une erreur se produit. Le jeton .catch est suivi d’accolades qui entourent une ou plusieurs commandes. Si l’une de ces commandes génère une erreur, le message d’erreur s’affiche, toutes les commandes restantes dans les accolades sont ignorées et l’exécution reprend avec la première commande après l’accolade fermante.
Le jeton .leave est utilisé pour quitter un bloc .catch .
Le jeton .printf se comporte comme l’instruction printf en C.
Le jeton .block n’effectue aucune action. Vous devez utiliser ce jeton uniquement pour introduire un bloc, car vous ne pouvez pas créer un bloc uniquement à l’aide d’une paire d’accolades. Vous devez ajouter un jeton de flux de contrôle avant l’accolade ouvrante.
Les extensions !for_each_module, !for_each_frame et !for_each_local sont également utiles avec un programme de commande de débogueur.