Partager via


Mapper les méthodes sur la pile des appels tout en déboguant dans Visual Studio

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.

Debugging with call stacks on code maps

Vous devez disposer des éléments suivants :

Mapper la pile des appels

  1. Démarrez le débogage. (Clavier : F5)

  2. Dès que votre application passe en mode arrêt ou que vous exécutez pas à pas une fonction, choisissez Carte du code. (Clavier : Ctrl + Maj + `)

    Choose Code Map to start mapping call stack

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

    See call stack on code map

    La carte se mettra à jour automatiquement pendant que vous continuez le débogage. Consultez Mettre à jour la carte avec la pile d'appels suivante.

Rédiger des notes sur le code

Ajoutez des commentaires pour effectuer le suivi de ce qui se passe dans le code. Pour ajouter une nouvelle ligne dans des commentaires, appuyez sur Maj + Entrée.

Add comment to call stack on code map

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

Exécutez votre application jusqu'au point d'arrêt suivant ou exécutez pas à pas une fonction. La carte ajoute une nouvelle pile d'appels.

Update code map with next call stack

Ajouter du code associé à la carte

Maintenant que vous avez une carte, quelle est la prochaine étape ? Si vous travaillez avec C# ou Visual Basic, ajoutez des éléments, tels que des champs, des propriétés et d’autres méthodes, pour suivre ce qui se passe dans le code.

Double-cliquez sur une méthode pour afficher sa définition de code ou utilisez le menu contextuel pour la méthode. (Clavier : sélectionnez la méthode sur la carte et appuyez sur F12)

Go to code definition for a method on code map

Ajoutez les éléments que vous souhaitez suivre sur la carte.

Show fields in 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. Bien que ceci soit utile, vous pouvez conserver la carte simple en désactivant cette fonctionnalité à l’aide du bouton Inclure les parents sur la barre d’outils de la carte, ou en appuyant sur CTRL quand vous ajoutez des éléments.

Fields related to a method on call stack code map

Vous pouvez ici voir aisément quelles méthodes utilisent les mêmes champs. Les derniers éléments ajoutés apparaissent en vert.

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. Par exemple, supposons que vous recherchiez un bogue dans un programme 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.

Après avoir corrigé le bogue et poursuivi l'exécution du programme, la carte ajoute le nouvel appel de undo à Repaint :

Add new method call to call stack on code map

Questions et réponses

  • Tous les appels n'apparaissent pas sur la carte. Pourquoi ?

    Par défaut, seul votre propre code apparaît sur la carte. Pour afficher le code externe, activez-le dans la fenêtre Pile des appels :

    Display external code using the Call Stack window

    ou désactivez Activer Uniquement mon Code dans les options de débogage de Visual Studio :

    Show external code using Options dialog

  • La modification de la carte affecte-t-elle le code ?

    La modification de la carte n'affecte en aucune manière le code. N'hésitez pas à renommer, déplacer ou supprimer tout élément de la carte.

  • Que signifie le message : « Le diagramme peut être basé sur une version antérieure du code » ?

    Il se peut que le code ait 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.

  • Comment puis-je contrôler la disposition de la carte ?

    Ouvrez le menu Disposition dans la barre d'outils de la carte :

    • Modifiez la disposition par défaut.

    • Pour arrêter la réorganisation automatique de la carte, désactivez Disposer automatiquement lors du débogage.

    • Pour réorganiser la carte le moins possible lorsque vous ajoutez des éléments, désactivez Disposition incrémentielle.

  • Puis-je partager la carte avec d'autres ?

    Vous pouvez exporter la carte, l’envoyer à d’autres personnes si vous disposez de Microsoft Outlook ou l’enregistrer dans votre solution afin de pouvoir la vérifier dans le contrôle de la source.

    Share call stack code map with others

  • Comment puis-je arrêter l'ajout automatique de nouvelles piles d'appels par la carte ?

    Choisissez Button - Show call stack on code map automatically dans la barre d’outils de la carte. Pour ajouter manuellement la pile d'appels actuelle à la carte, appuyez sur Ctrl + Maj + `.

    La carte continuera de mettre en évidence les piles d'appels existantes sur la carte pendant le débogage.

  • Que signifient les flèches et les icônes d'élément ?

    Pour obtenir plus d'informations sur un élément, placez le curseur de la souris sur celui-ci et consultez l'info-bulle. Vous pouvez également examiner la Légende pour découvrir la signification de chaque icône.

    What do icons on the call stack code map mean?

    Consultez l'article :

  • Mappez la pile des appels

  • Rédiger des notes sur le code

  • Mettre à jour la carte avec la pile d’appels suivante

  • Ajouter du code associé à la carte

  • Trouver des bogues à l’aide de la carte