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.

Débogage avec des piles d'appels sur des cartes de code

Vous aurez besoin de :

Voir : la vidéo : déboguer visuellement à l'aide de l'intégration du débogueur de la carte du code (Canal 9) • Map the call stack • Make notes about the code • Update the map with the next call stack • Add related code to the map • Find bugs using the map • Q & A

Mapper la pile des appels

  1. Démarrez le débogage. (Raccourci 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 + `)

    Choisir Carte du code pour démarrer le mappage de la pile d'appels

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

    Voir pile d'appels sur carte du code

    La carte se mettra à jour automatiquement pendant que vous continuez le débogage. Consultez Update the map with the next call stack.

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.

Ajouter un commentaire à la pile d'appels sur le code de mappage

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.

Mettre à jour le Code de mappage avec la pile d'appels suivante

Ajouter du code associé à la carte

Vous disposez désormais d'une carte, mais comment continuer ? Si vous utilisez Visual C# .NET ou Visual Basic .NET, 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. (Clavier : sélectionnez la méthode sur la carte et appuyez sur F12.)

Aller à la définition du code pour une méthode sur une carte du code

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

Afficher les champs dans une méthode sur la carte du code de la pile d'appels

Champs associés à une méthode sur la carte du code de la pile d'appels

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.

Voir les méthodes qui utilisent un champ : carte du code de la pile d'appels

Méthodes qui utilisent un champ sur la carte du code de la pile d'appels

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.

Par conséquent, vous définissez des points d'arrêt, démarrez le débogage et générez une carte comme celle-ci :

Ajouter une autre pile d'appels au code de mappage

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 :

Ajouter un nouvel appel de méthode à la pile d'appels sur le code de mappage

Q et R

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

    Par défaut, seul votre code apparaît sur la carte. Pour afficher le code externe, activez-le dans la fenêtre Pile des appels ou désactivez Activer Uniquement mon code dans les options de débogage de Visual Studio.

  • 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 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 version Team Foundation.

    Partager la carte du code de la pile d'appels avec les autres

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

    Choisissez Bouton - Afficher la pile des appels sur le code de mappage automatiquement 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 surbrillance 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, examinez son info-bulle. Vous pouvez également examiner la Légende pour découvrir la signification de chaque icône.

    Que signifient les icônes sur la carte du code de la pile d'appels ?

Voir : Map the call stack • Make notes about the code • Update the map with the next call stack • Add related code to the map • Find bugs using the map