Partager via


.frame (Définir le contexte local)

La commande .frame spécifie le contexte local (étendue) utilisé pour interpréter les variables locales ou afficher le contexte local actuel.

.frame [/c] [/r] [FrameNumber] 
.frame [/c] [/r] = BasePtr [FrameIncrement] 
.frame [/c] [/r] = BasePtr StackPtr InstructionPtr 

Paramètres

/c
Définit le cadre spécifié comme contexte de remplacement local actuel. Cette action permet à un utilisateur d’accéder aux registres nonvolatiles pour n’importe quelle fonction dans la pile des appels.

/r
Affiche les registres et d’autres informations sur le contexte local spécifié.

FrameNumber
Spécifie le nombre de trames dont vous souhaitez le contexte local. Si ce paramètre est égal à zéro, la commande spécifie le frame actuel. Si vous omettez ce paramètre, cette commande affiche le contexte local actuel.

BasePtr
Spécifie le pointeur de base pour la trace de pile utilisée pour déterminer le frame, si vous ajoutez un signe égal (=) après le nom de la commande (.frame). Sur un processeur x86, vous ajoutez un autre argument après BasePtr (qui est interprété comme FrameIncrement) ou deux autres arguments après BasePtr (qui sont interprétés comme InstructionPtr et StackPtr).

FrameIncrement
(processeur x86 uniquement)

Spécifie une quantité supplémentaire d’images au-delà du pointeur de base. Par exemple, si le pointeur de base 0x0012FF00 est l’adresse du frame 3, la commande .frame 12ff00 équivaut à .frame 3 et .frame 12ff00 2 équivaut à .frame 5.

StackPtr
(processeur x86 uniquement) Spécifie le pointeur de pile pour la trace de pile utilisée pour déterminer le cadre. Si vous omettez StackPtr et InstructionPtr, le débogueur utilise le pointeur de pile spécifié par le registre esp et le pointeur d’instruction spécifié par le registre eip.

InstructionPtr
(processeur x86 uniquement) Spécifie le pointeur d’instruction pour la trace de pile utilisée pour déterminer le cadre. Si vous omettez StackPtr et InstructionPtr, le débogueur utilise le pointeur de pile spécifié par le registre esp et le pointeur d’instruction spécifié par le registre eip.

Environnement

Élément Description
Modes Mode utilisateur, mode noyau
Targets Live, vidage de la mémoire
Platforms Tous

Informations supplémentaires

Pour plus d’informations sur le contexte local et d’autres paramètres de contexte, consultez Modification des contextes. Pour plus d’informations sur l’affichage des variables locales et d’autres commandes liées à la mémoire, consultez Lecture et écriture de la mémoire.

Notes

Lorsqu’une application est en cours d’exécution, 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. Si vous n’utilisez pas la commande .frame , le débogueur utilise l’étendue de la fonction actuelle (image actuelle sur la pile) comme contexte local.

Pour modifier le contexte local, utilisez la commande .frame et spécifiez le numéro d’image souhaité.

Le numéro d’image correspond à la position du cadre de pile dans la trace de pile. Vous pouvez afficher cette trace de pile avec la commande k (Afficher le backtrace) ou la fenêtre Appels. La première ligne (le cadre actuel) est le numéro d’image 0. Les lignes suivantes représentent les numéros d’image 1, 2, 3, et ainsi de suite.

Si vous utilisez le paramètre n avec la commande k, la commande k affiche les numéros d’images avec la trace de pile. Ces nombres d’images sont toujours affichés sous forme hexadécimale. En revanche, la commande .frame interprète son argument dans le radix par défaut, sauf si vous remplacez ce paramètre par un préfixe tel que 0x. Pour modifier le radix par défaut, utilisez la commande n (Définir la base de nombres).

Vous pouvez définir le contexte local sur une trame de pile différente pour vous permettre d’afficher de nouvelles informations de variable locale. Toutefois, les variables réelles disponibles dépendent du code en cours d’exécution.

Le contexte local est réinitialisé à l’étendue du compteur de programme si une exécution d’application se produit. Le contexte local est réinitialisé au cadre de la pile supérieure si le contexte de registre est modifié.