C-SHARP - 7.5 Fenêtre de pile d'appels

La fenêtre de pile d'appels, ou Call Stack, est l'une des fenêtres les plus précieuses du débogueur Visual Studio. Quand votre programme s'arrête sur un point d'arrêt ou sur une exception, elle affiche la chaîne complète des méthodes qui ont conduit à ce point : la méthode courante en haut, puis celle qui l'a appelée, puis celle qui a appelé cette dernière, jusqu'au point d'entrée du programme.

Cette vue est indispensable pour comprendre le contexte d'exécution. Un bug n'apparaît pas toujours dans la méthode où vous l'observez : souvent, c'est l'appelant (ou l'appelant de l'appelant) qui a fourni des données invalides ou déclenché un état incohérent. En cliquant sur une ligne de la pile d'appels, Visual Studio vous transporte directement dans la méthode correspondante et vous montre les variables qui y étaient présentes à ce moment.

Cas d'usage typiques

  • Diagnostiquer la cause d'une NullReferenceException en remontant la chaîne pour identifier l'appelant qui passe la valeur nulle
  • Comprendre comment une méthode récursive s'enfonce dans ses propres appels avant un StackOverflowException
  • Vérifier qu'une méthode est bien appelée depuis le chemin attendu (et non depuis un code parallèle non identifié)
  • Servir de carte mentale dans un projet inconnu pour reconstituer le parcours d'exécution

La pile d'appels se combine avec les autres outils du débogueur : pendant que vous remontez, vous pouvez observer les locales correspondantes, ajouter des espions, voire utiliser la fenêtre immédiate pour évaluer des expressions dans le contexte d'une frame particulière. C'est cette interaction qui fait de la Call Stack bien plus qu'un simple historique : un véritable outil d'investigation.