Accès aux variables locales
Les variables locales, comme les variables globales, sont stockées dans les fichiers de symboles. Et comme avec les variables globales, le débogueur interprète leurs noms comme des adresses. Ils peuvent être lus et écrits de la même manière que les variables globales. Toutefois, si vous devez indiquer à une commande qu’un symbole est local, précèdez le symbole par un signe dollar ( $ ) et un point d’exclamation ( ! ), comme dans $!var
.
Visual Studio et WinDbg fournissent des éléments d’interface utilisateur que vous pouvez utiliser (en plus des commandes) pour afficher et modifier des variables locales. Pour plus d’informations, consultez Affichage et modification des variables locales dans WinDbg (classique).
Vous pouvez également utiliser les méthodes suivantes pour afficher, modifier et utiliser des variables locales :
La commande dv (Afficher les variables locales) affiche les noms et les valeurs de toutes les variables locales.
L’extension !for_each_local vous permet d’exécuter une seule commande à plusieurs reprises, une fois pour chaque variable locale.
Toutefois, il existe une principale différence entre les variables locales et globales. Lorsqu’une application s’exécute, la signification des variables locales dépend de l’emplacement du compteur de programme, car l’étendue de ces variables s’étend uniquement à la fonction dans laquelle elles sont définies.
Le débogueur interprète les variables locales en fonction du contexte local. Par défaut, ce contexte correspond à l’emplacement du compteur du programme. Mais le débogueur peut modifier le contexte. Pour plus d’informations sur le contexte local, consultez Contexte local.
Lorsque le contexte local est modifié, la fenêtre Locals est immédiatement mise à jour pour refléter la nouvelle collection de variables locales. La commande dv affiche également les nouvelles variables. Tous ces noms de variables sont ensuite interprétés correctement par les commandes de mémoire décrites précédemment. Vous pouvez ensuite lire ou écrire dans ces variables.