Créer une carte visuelle de la pile des appels pendant le débogage (C#, Visual Basic, C++, JavaScript)

Créez une carte de code pour effectuer un suivi visuel de la pile des appels pendant le débogage. Vous pouvez rédiger des notes sur la carte pour effectuer le suivi de ce que fait le code afin de vous concentrer sur la recherche de bogues.

Pour plus de détails sur les commandes et les actions que vous pouvez utiliser avec des cartes de code, consultez Parcourir et réorganiser des cartes de code.

Important

Vous pouvez créer des cartes de code uniquement dans l’édition Visual Studio Enterprise.

Voici un aperçu rapide d’une carte de code :

Debugging with call stacks on code maps

Mapper la pile des appels

  1. Dans un projet Visual Studio Enterprise C#, Visual Basic, C++ ou JavaScript, démarrez le débogage en sélectionnant Déboguer>Démarrer le débogage ou en appuyant sur F5.

  2. Une fois que votre application passe en mode Arrêt ou que vous effectuez un pas à pas détaillé dans une fonction, sélectionnez Déboguer>Carte de code ou appuyez sur Ctrl+Maj+`.

    La pile d'appels actuelle apparaît en orange sur une nouvelle carte de code :

    See call stack on code map

La carte de code de code est mise à jour automatiquement pendant le débogage. La modification des éléments de carte ou de la disposition n’affecte d’aucune manière le code. N'hésitez pas à renommer, déplacer ou supprimer tout élément de la carte.

Pour obtenir plus d’informations sur un élément, placez le curseur sur celui-ci et consultez l’info-bulle. Vous pouvez également sélectionner Légende dans la barre d’outils pour connaître la signification de chaque icône.

Code Map Legend

Note

Le message Le diagramme peut être basé sur une version antérieure du code en haut de la carte de code signifie que le code a peut-être changé après la dernière mise à jour de la carte. Par exemple, un appel sur la carte peut ne plus exister dans le code. Fermez le message et essayez de régénérer la solution avant de remettre à jour la carte.

Mapper le code externe

Par défaut, seul votre propre code apparaît sur la carte. Pour afficher le code externe sur la carte :

  • Cliquez avec le bouton droit sur la fenêtre Pile des appels et sélectionnez Afficher le code externe :

    Display external code using the Call Stack window

  • Vous pouvez également désélectionner Activer Uniquement mon code dans Visual Studio Outils (ou Déboguer) >Options>Débogage :

    Show external code using Options dialog

Contrôler la disposition de la carte

La modification de la disposition de la carte n’affecte d’aucune manière le code.

Pour contrôler la disposition de la carte, sélectionnez le menu Disposition dans la barre d’outils de la carte.

Dans le menu Disposition, vous pouvez :

  • Modifiez la disposition par défaut.
  • Arrêtez de réorganiser automatiquement la carte en désactivant Disposition automatique lors du débogage.
  • Réorganisez le moins possible la carte quand vous ajoutez des éléments en désactivant Disposition incrémentielle.

Rédiger des notes sur le code

Vous pouvez ajouter des commentaires pour effectuer le suivi de ce qui se passe dans le code.

Pour ajouter un commentaire, cliquez avec le bouton droit dans la carte de code, sélectionnez Modifier>Nouveau commentaire, puis tapez le commentaire.

Pour ajouter une nouvelle ligne dans un commentaire, appuyez sur Maj+Entrée.

Add comment to call stack on code map

Mettre à jour la carte avec la pile d'appels suivante

Quand vous exécutez votre application jusqu’au point d’arrêt ou que vous effectuez un pas à pas détaillé dans une fonction, la carte ajoute automatiquement de nouvelles piles d’appels.

Update code map with next call stack

Pour empêcher la carte d’ajouter automatiquement de nouvelles piles d’appels, sélectionnez Show call stack on code map automatically dans la barre d’outils de la carte de code. La carte continue de mettre en évidence les piles d’appels existantes. Pour ajouter manuellement la pile d’appels actuelle à la carte, appuyez sur Ctrl+Maj+`.

Ajouter du code associé à la carte

Vous disposez désormais d’une carte en C# ou Visual Basic et pouvez ajouter des éléments comme des champs, des propriétés et d’autres méthodes pour effectuer le suivi de ce qui se passe dans le code.

Pour accéder à la définition d’une méthode dans le code, double-cliquez sur la méthode dans la carte, ou sélectionnez-la et appuyez sur F12, ou cliquez dessus avec le bouton droit et sélectionnez Atteindre la définition.

Go to code definition for a method on code map

Pour ajouter des éléments dont vous souhaitez effectuer le suivi sur la carte, cliquez avec le bouton droit sur une méthode et sélectionnez les éléments de votre choix. Les derniers éléments ajoutés s’affichent en vert.

Fields related to a method on call stack code map

Note

Par défaut, l'ajout d'éléments à la carte ajoute également les nœuds des groupes parents, comme la classe, l'espace de noms et l'assembly. Vous pouvez désactiver et activer cette fonctionnalité en sélectionnant le bouton Inclure les parents dans la barre d’outils de la carte de code, ou en appuyant sur Ctrl pendant que vous ajoutez des éléments.

Show fields in a method on call stack code map

Poursuivez l'élaboration de la carte pour afficher davantage de code.

See methods that use a field: call stack code map

Methods that use a field on call stack code map

Rechercher des bogues à l'aide de la carte

La visualisation de votre code peut vous aider à rechercher des bogues plus rapidement. Imaginons par exemple que vous recherchez un bogue dans une application de dessin. Lorsque vous tracez une ligne et essayez de l'annuler, rien ne se produit jusqu'à ce que vous traciez une autre ligne.

Vous définissez donc des points d'arrêt dans les méthodes clear, undo et Repaint, vous démarrez le débogage et vous générez une carte comme celle-ci :

Add another call stack to code map

Vous constatez que tous les mouvements de l'utilisateur sur la carte appellent Repaint, à l'exception de undo. Cela peut expliquer pourquoi undo ne fonctionne pas immédiatement.

Une fois que vous avez corrigé le bogue et que vous poursuivez l’exécution du programme, la carte ajoute le nouvel appel de undo à Repaint :

Add new method call to call stack on code map

Partager la carte avec d’autres utilisateurs

Vous pouvez exporter une carte, l’envoyer à d’autres utilisateur via Microsoft Outlook, l’enregistrer dans votre solution et l’intégrez dans le contrôle de version.

Pour partager ou enregistrer la carte, utilisez Partager dans la barre d’outils de la carte de code.

Share call stack code map with others