Partager via


Utiliser le débogage par voyage temporel pour enregistrer et relire des applications ASP.NET sur des VM Azure

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

  1. 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.

  2. 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.

    Capture d’écran montrant la sélection d’une ressource Azure.

    Important

    La première fois que vous sélectionnez Attacher le débogueur d’instantané, IIS redémarre automatiquement sur votre machine virtuelle.

  3. Visual Studio est désormais en mode de débogage instantané.

    Capture d’écran montrant le mode de débogage par 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.

  4. 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.

    Capture d’écran montrant la fenêtre 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

  1. 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.

    Capture d’écran montrant la définition d’un point d’ancrage dans l’éditeur de code.

  2. 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é .

    Capture d’écran montrant 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.

Capture d’écran montrant la sélection de Démarrer la collection pour activer le point d’ancrage.

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

  1. 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.

    Capture d’écran montrant l’instantané dans la fenêtre Outils de diagnostic.

  2. 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.

      Capture d’écran montrant la barre d’outils Debug.

    • 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.

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é.