Partage via


Afficher la pile des appels et utiliser la fenêtre Pile des appels dans le débogueur

La fenêtre Pile des appels permet d’afficher les appels de fonctions ou de procédures actuellement dans la pile. La fenêtre pile des appels affiche l’ordre dans lequel les méthodes et les fonctions sont appelées. La pile des appels est un bon moyen d’examiner et de comprendre le flux d’exécution d’une application.

Lorsque les symboles de débogage ne sont pas disponibles pour une partie d’une pile des appels, la fenêtre Pile des appels peut ne pas être capable d’afficher des informations correctes pour cette partie de la pile des appels et afficher à la place :

[Frames below may be incorrect and/or missing, no symbols loaded for name.dll]

Remarque

Les boîtes de dialogue et les commandes de menu que vous voyez peuvent différer de celles décrites ici, selon vos paramètres actifs ou édition. Pour modifier vos paramètres, sélectionnez Importation et exportation des paramètres dans le menu Outils. Voir Réinitialiser tous les paramètres. La fenêtre Pile des appels est similaire à la perspective Débogage dans certains IDE, comme Eclipse.

Afficher la pile des appels dans le débogueur

Pendant le débogage, dans le menu Déboguer, sélectionnez Windows > Pile des appels ou appuyez sur ctrl+alt+C.

Capture d’écran montrant la fenêtre Pile des appels. Une flèche identifie le frame de pile où se trouve actuellement le pointeur d’exécution. Par défaut, les informations de ce frame de pile s’affichent dans les fenêtres sources, Locaux, Autos, Espion et Désassemblage. Pour remplacer le contexte du débogueur par un autre frame de la pile, basculez vers un autre frame de pile.

Capture d’écran montrant la fenêtre Pile des appels.

Une flèche jaune identifie le frame de pile où le pointeur d'exécution se trouve actuellement. Par défaut, les informations de ce frame de pile s’affichent dans les fenêtres sources, Locaux, Autos, Espion et Désassemblage. Pour remplacer le contexte du débogueur par un autre frame de la pile, basculez vers un autre frame de pile.

Vous pouvez également afficher les trames de pile d’exceptions dans la pile des appels lors du débogage. Pour plus d’informations, consultez Afficher la pile des appels dans l’assistance d’exception.

Afficher le code non-utilisateur dans la fenêtre de la pile d'appels

Pour voir le code externe ou non-utilisateur, faites basculer le bouton Montrer le code externe, ou bien cliquez avec le bouton droit sur la fenêtre Pile des appels, puis sélectionnez Montrer le code externe.

Pour afficher du code externe ou code non utilisateur, activez le bouton Afficher le code externe à partir de la barre d’outils de la pile des appels ou cliquez avec le bouton droit sur la fenêtre pile d’appels, puis sélectionnez Afficher le code externe.

Le code non utilisateur est un code qui n’est pas affiché lorsque 'Just My Code'est activé. Dans le code managé, les trames de code non utilisateur sont masquées par défaut. La notation suivante apparaît à la place des trames de code non-utilisateur :

[<External Code>]

Basculer vers un autre frame de pile (modifier le contexte du débogueur)

  1. Dans la fenêtre Pile des appels, cliquez avec le bouton droit sur le frame dont vous voulez afficher le code et les données.

    Vous pouvez également double-cliquer sur un cadre dans la fenêtre Pile des appels pour basculer vers ce frame.

  2. Sélectionnez pour passer à Frame.

    Une flèche verte avec extrémité recourbée apparaît à côté du frame de pile sélectionné. Le pointeur d’exécution reste dans le cadre d’origine, qui est toujours marqué avec la flèche jaune. Si vous sélectionnez étape ou Continuer dans le menu Déboguer, l’exécution se poursuivra dans le cadre d’origine, et non dans le cadre que vous avez sélectionné.

Faites basculer le bouton Voir tous les threads pour voir tous les threads associés dans la fenêtre Pile parallèle.

Vous pouvez rechercher des cadres de pile d’appels pertinents en tapant des termes de recherche pertinents dans la zone de recherche située dans le coin supérieur gauche de la fenêtre de pile des appels. Les frames de pile d’appels pertinents sont mises en surbrillance.

Afficher le code source d’une fonction sur la pile des appels

Dans la fenêtre pile des appels, cliquez avec le bouton droit sur la fonction dont vous souhaitez afficher le code source et sélectionnez Accéder au code source.

Exécuter jusqu’à une fonction spécifique de la fenêtre Pile des appels

Dans la fenêtre Pile des appels, cliquez avec le bouton droit sur le nom de la fonction puis choisissez Exécuter jusqu’au curseur.

Définir un point d’arrêt sur le point de sortie d’un appel de fonction

Consultez Définir un point d’arrêt sur une fonction de pile d’appels.

Afficher les appels vers ou à partir d’un autre thread

Cliquez avec le bouton droit sur la fenêtre Pile des appels, puis sélectionnez Inclure les appels échangés avec d’autres threads.

Trace visuellement la pile des appels

Dans Visual Studio Enterprise (uniquement), vous pouvez afficher des cartes de code pour la pile d'appels lors du débogage.

Dans la fenêtre Pile des appels, ouvrez le menu contextuel. Sélectionnez Afficher la pile d’appels sur la carte de code (Ctrl + Shift + `).

Pour plus d’informations, consultez Mapper les méthodes sur la pile des appels lors du débogage.

Voir la pile d’appels sur la carte de code

Afficher le code désassembleur d’une fonction sur la pile des appels (C#, C++, Visual Basic, F#)

Dans la fenêtre Pile des appels, cliquez avec le bouton droit sur la fonction dont vous voulez afficher le code machine, puis sélectionnez Atteindre le code machine.

Modifier les informations facultatives affichées

Cliquez avec le bouton droit dans la fenêtre Pile des appels et définissez ou désactivez Afficher <les informations souhaitées>.

Autodécompiler le code externe .NET

À compter de Visual Studio 2022 version 17.7, vous pouvez décompiler automatiquement le code .NET en double-cliquant sur le code externe dans la fenêtre Pile des appels. Pour plus d’informations, consultez Générer du code source à partir d’assemblys .NET pendant le débogage.

Charger des symboles pour un module (C#, C++, Visual Basic, F#)

Dans la fenêtre Pile des appels, vous pouvez charger des symboles de débogage pour du code qui ne possède actuellement aucun symbole chargé. Ces symboles peuvent être des symboles .NET ou système téléchargés à partir des serveurs de symboles publics de Microsoft ou des symboles situés dans un chemin d’accès aux symboles sur l’ordinateur que vous déboguez.

Consultez Spécifier les fichiers de symbole (.pdb) et les fichiers sources.

Pour charger des symboles

  1. Dans la fenêtre Pile des appels, cliquez avec le bouton droit sur le frame de pile pour lequel des symboles ne sont pas chargés. La frame est alors grisée.

  2. Déplacez la souris sur Charger les symboles, puis sélectionnez Serveurs de symboles Microsoft (le cas échéant) ou allez jusqu’au chemin d’accès aux symboles.

Pour définir le chemin d’accès au symbole

  1. Dans la fenêtre Pile des appels, choisissez Paramètres des symboles dans le menu contextuel.

    La boîte de dialogue Options s’ouvre et la page Symboles s’affiche.

  2. Sélectionnez Paramètres des symboles.

  3. Dans la boîte de dialogue Options, cliquez sur l’icône de dossier.

    Un curseur apparaît dans la zone Emplacements du fichier de symboles (.pdb).

  4. Entrez un chemin d'accès au répertoire où se trouvent les symboles sur l'ordinateur que vous déboguez. Pour le débogage local et distant, il s’agit d’un chemin d’accès sur votre ordinateur local.

  5. Sélectionnez OK pour fermer la boîte de dialogue Options.