Partager via


Affichage de la pile des appels dans WinDbg (Classique)

La pile d’appels est la chaîne d’appels de fonction qui ont conduit à l’emplacement actuel du compteur du programme. La fonction supérieure de la pile d’appels est la fonction actuelle, la fonction suivante est la fonction qui a appelé la fonction actuelle, et ainsi de suite. La pile d’appels affichée est basée sur le compteur de programme actuel, sauf si vous modifiez le contexte d’inscription. Pour plus d’informations sur la modification du contexte d’inscription, consultez Modification des contextes.

Dans WinDbg, vous pouvez afficher la pile des appels en entrant des commandes ou en utilisant la fenêtre Appels.

Fenêtre Commande du débogueur

Vous pouvez afficher la pile des appels en entrant l’une des commandes k (Display Stack Backtrace) dans la fenêtre Commande du débogueur.

Fenêtre Appels

En guise d’alternative à la commande k , vous pouvez afficher la pile des appels dans la fenêtre Appels. Pour ouvrir la fenêtre Appels, choisissez Pile des appels dans le menu Affichage .

La capture d’écran suivante montre un exemple de fenêtre Appels.

Capture d’écran de la fenêtre Appels dans WinDbg.

Les boutons de la fenêtre Appels vous permettent de personnaliser l’affichage de la pile des appels. Pour accéder à l’emplacement d’appel correspondant dans la fenêtre Source ou Désassemblement, double-cliquez sur une ligne de la pile d’appels ou sélectionnez une ligne et appuyez sur ENTRÉE. Cette action modifie également le contexte local en image de pile sélectionnée. Pour plus d’informations sur l’exécution vers ou à partir de ce point, consultez Contrôle de la cible.

En mode utilisateur, la trace de pile est basée sur la pile du thread actif. Pour plus d’informations sur la pile du thread actuel, consultez Contrôle des processus et des threads.

En mode noyau, la trace de pile est basée sur le contexte de registre actuel. Vous pouvez définir le contexte du registre pour qu’il corresponde à un thread, un enregistrement de contexte ou une trame d’interruption spécifique. Pour plus d’informations sur la définition du contexte d’inscription, consultez Contexte d’inscription.

La fenêtre Appels a une barre d’outils qui contient plusieurs boutons et un menu contextuel avec des commandes supplémentaires. Pour accéder à ce menu, sélectionnez longuement (ou cliquez avec le bouton droit) sur la barre de titre ou sélectionnez l’icône située dans le coin supérieur droit de la fenêtre (Capture d’écran du bouton affichant le menu contextuel de la barre d’outils de la fenêtre Appels dans WinDbg.

  • Les arguments bruts affichent les trois premiers paramètres qui sont passés à la fonction. Sur un processeur x86, cet affichage inclut les trois premiers paramètres passés à la fonction (« Args to Child »).

  • Les informations func affichent les données d’omission de pointeur d’image (FPO) et d’autres informations internes sur la fonction. Cette commande est disponible uniquement sur un processeur x86.

  • Source affiche les noms de module source et les numéros de ligne après les noms des fonctions (si le débogueur contient ces informations).

  • Les addrs affichent différentes adresses liées aux images. Sur un processeur x86, cet affichage inclut le pointeur de base pour l’image de pile (« ChildEBP ») et l’adresse de retour (« RetAddr »).

  • Les nombres d’images affichent les nombres d’images. Les images sont toujours numérotées consécutivement, en commençant par zéro.

  • Les types Arg affichent des informations détaillées sur les arguments attendus et reçus par les fonctions de la pile.

  • Le fait de toujours flotter entraîne l’annulation de la fenêtre, même si elle est déplacée vers un emplacement d’ancrage.

  • Le déplacement avec le cadre entraîne le déplacement de la fenêtre lorsque le cadre WinDbg est déplacé, même si la fenêtre n’est pas bloquée.

Informations supplémentaires

Pour plus d’informations sur le contexte d’inscription et le contexte local, consultez Modification des contextes.