Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Le débogage d’instantané est désormais obsolète et ne sera plus disponible dans les récentes versions de Visual Studio 2022 et versions ultérieures. Bien qu’il n’y ait pas de remplacement exact, il existe d’autres outils qui peuvent fournir des diagnostics utiles :
Le débogage de voyage dans le temps dans Visual Studio Enterprise peut enregistrer l'application web qui s'exécute sur une machine virtuelle d'Azure, puis reconstruire et relire avec précision le chemin d'exécution. Le Débogage Temporel (TTD) a été ajouté à Visual Studio 2019 Enterprise en tant que fonctionnalité en préversion et est désormais intégré au Débogueur de capture instantanée de Visual Studio.
Le débogage de voyage dans le temps vous permet de rembobiner et de rejouer chaque ligne de code autant de fois que vous le souhaitez. Cette procédure peut vous aider à isoler et à identifier les problèmes qui peuvent se produire uniquement dans les environnements de production.
La capture d’un enregistrement de débogage de voyage temporel n’interrompt pas votre application, mais elle ajoute une surcharge significative au processus en cours. La quantité de ralentissement dépend de facteurs tels que la taille du processus et le nombre de threads actifs.
Dans ce tutoriel, vous allez :
- Démarrez le débogueur d’instantané en utilisant TTD.
- Définissez un point d’ancrage et collectez un enregistrement de voyage dans le temps.
- Déboguer l’enregistrement de voyage temporel.
Conditions préalables
Visual Studio Enterprise 2019 ou version ultérieure avec la charge de travail de développement Azure installée.
Dans visual Studio Installer, vérifiez que le débogueur d’instantané est sélectionné sous Débogage et test sous l’onglet Composants individuels .
Une application web ASP.NET (AMD64) s’exécutant sur .NET Framework 4.8 ou version ultérieure sur une machine virtuelle Azure.
Connecter le débogueur de clichés
Ouvrez le projet de l’application que vous souhaitez déboguer.
Important
Veillez à ouvrir la même version du code source publié sur votre machine virtuelle Azure.
Choisissez Déboguer > attacher le débogueur d’instantané. Sélectionnez la machine virtuelle Azure sur laquelle votre application web est déployée et un compte de stockage Azure, puis sélectionnez Attacher.
Important
La première fois que vous sélectionnez Attacher le débogueur d’instantané, IIS redémarre automatiquement sur votre machine virtuelle.
Visual Studio est désormais en mode de débogage instantané.
Remarque
L'extension de site d'Application Insights prend également en charge le débogage instantané. Si vous obtenez un message d'erreur d’extension de site obsolète, consultez Mise à niveau de l’extension de site pour plus de détails sur l'upgrade.
Les métadonnées des modules ne sont pas initialement activées. Accédez à l’application web pour charger les modules.
La fenêtre Modules vous montre quand tous les modules sont chargés pour la machine virtuelle Azure. Pour ouvrir la fenêtre Modules, sélectionnez Déboguer>Windows>Modules.
Une fois que tous les modules sont chargés, vous pouvez sélectionner le bouton Démarrer la collection dans la barre d’outils Visual Studio.
Définir un point d’ancrage
Pour définir un point d’ancrage, dans l’éditeur de code, cliquez sur la coupe gauche en regard d’une méthode qui vous intéresse. Assurez-vous de savoir que le code s'exécute.
Cliquez avec le bouton droit sur l’icône de sphère creux du point d’ancrage et choisissez Actions pour afficher la fenêtre Paramètres d’instantané .
Prendre l’instantané
Sélectionnez Démarrer la collection dans la barre d’outils pour activer le point de capture.
Lorsque vous activez le point d’ancrage, il capture un instantané lorsque la ligne de code qu’elle est placée sur s’exécute. L’exécution peut nécessiter une demande sur votre serveur. Pour forcer votre point de capture à se déclencher, accédez à la vue navigateur de votre site web et effectuez les actions nécessaires.
Par défaut, le point d’ancrage capture un seul instantané. Une fois que le point d’ancrage capture un instantané, il est désactivé. Si vous souhaitez capturer un autre instantané au niveau du point d’ancrage, vous pouvez réactiver le point d’ancrage en sélectionnant Update Collection.
Déboguer un enregistrement de voyage dans le temps
Lorsque le point d’ancrage est atteint, un instantané s’affiche dans la fenêtre Outils de diagnostic . Si cette fenêtre n’est pas ouverte, ouvrez-la en sélectionnant Déboguer>Windows>Show Diagnostic Tools.
Sélectionnez Afficher l’instantané pour ouvrir l’enregistrement d'historique dans l’éditeur de code.
Vous pouvez exécuter chaque ligne de code que le débogage temporel a enregistré en utilisant les boutons Continuer et Revenir en arrière.
Vous pouvez également utiliser la barre d’outils Debug pour Afficher l’instruction suivante, Pas à pas détaillé, Sauter par-dessus, Sortir du pas à pas, Retour en pas détaillé, Retour au saut, et Retour à l'extérieur.
Vous pouvez également utiliser les fenêtres Locals, Observateurs et Pile des appels de Visual Studio et évaluer les expressions.
Le site web est toujours en ligne et les utilisateurs finaux ne sont pas affectés par l’activité de débogage temporel.
Pour plus d’informations et d’aide, consultez Résolution des problèmes connus et le débogage des instantanés dans Visual Studio.
Définir un point d'arrêt conditionnel
S’il est difficile de recréer un état particulier dans votre application, envisagez d’utiliser un point d'arrêt conditionnel. Les points d’ancrage conditionnels vous aident à éviter de collecter un enregistrement jusqu’à ce que l’application entre dans un état souhaité, par exemple lorsqu’une variable a une valeur particulière. Pour plus d’informations sur la définition des conditions en fonction des expressions, des filtres ou des comptes d'accès, consultez Conditions de point d'arrêt.
Contenu connexe
Dans ce tutoriel, vous avez appris à utiliser le Snapshot Debugger pour collecter un enregistrement de retours dans le temps pour les machines virtuelles Azure. En savoir plus sur le débogage d’instantané.