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ébogueur d’instantanés capture un instantané de vos applications en production lorsque le code qui vous intéresse est exécuté. Pour indiquer au débogueur de prendre un instantané, vous définissez des points d’ancrage et des points de journal dans votre code. Le débogueur vous permet de voir exactement ce qui s’est passé, sans avoir d’impact sur le trafic de votre application de production. Snapshot Debugger peut vous aider à résoudre beaucoup plus vite les problèmes rencontrés dans les environnements de production.
Les snappoints et les logpoints sont similaires aux points d’arrêt, mais contrairement à ceux-ci, les snappoints n’arrêtent pas l’application lorsqu’ils sont atteints. En règle générale, la capture d’un instantané sur un point d’ancrage prend 10 à 20 millisecondes.
Dans ce tutoriel, vous allez :
- Démarrer le débogueur d’instantané
- Définir un point d'accrochage et afficher une capture instantanée
- Définir un point de consignation
Conditions préalables
Le Snapshot Debugger pour Azure Kubernetes Services est disponible uniquement pour Visual Studio 2019 Entreprise ou version ultérieure avec la charge de travail de développement Azure. (Sous l’onglet Composants individuels , vous le trouvez sous Débogage et test>Débogueur d’instantané.)
S’il n’est pas déjà installé, installez Visual Studio 2019 Enterprise.
La collection d’instantanés est disponible pour les applications Web Azure Kubernetes Services suivantes :
ASP.NET Applications Core s’exécutant sur .NET Core 2.2 ou version ultérieure sur Debian 9.
ASP.NET applications Core s’exécutant sur .NET Core 2.2 ou version ultérieure sur Alpine 3.8.
ASP.NET applications Core s’exécutant sur .NET Core 2.2 ou version ultérieure sur Ubuntu 18.04.
Remarque
Pour vous aider à activer la prise en charge du débogueur d’instantanés dans AKS, nous avons fourni un dépôt contenant un ensemble de Dockerfiles démontrant leur configuration sur les images Docker.
Ouvrez votre projet et démarrez le débogueur d’instantané
Ouvrez le projet que vous souhaitez déboguer.
Important
Pour déboguer des instantanés, vous devez ouvrir la même version du code source publiée sur votre service Azure Kubernetes.
Choisissez >. Sélectionnez la ressource AKS sur laquelle votre application web est déployée et un compte de stockage Azure, puis cliquez sur Attacher. Le débogueur de capture instantanée prend également en charge Azure App Service et les machines virtuelles Azure (VM) et les ensembles de machines virtuelles.
Remarque
(Visual Studio 2019 version 16.2 et plus récente) La prise en charge du nuage Azure est désormais activée dans le débogueur d’instantanés. Assurez-vous que la ressource Azure et le compte stockage Azure que vous sélectionnez proviennent du même cloud. Contactez votre administrateur Azure si vous avez des questions sur les configurations de conformité Azure de votre entreprise.
Visual Studio est désormais en mode de débogage instantané.
La fenêtre Modules vous montre quand tous les modules ont été chargés pour Azure App Service (choisissez Déboguer > les modules Windows > pour ouvrir cette fenêtre).
Définir un point d’ancrage
Dans l’éditeur de code, cliquez sur la coupe gauche en regard d’une ligne de code qui vous intéresse pour définir un point d’ancrage. Assurez-vous qu’il s’agit du code que vous savez exécuter.
Cliquez sur Démarrer la collection pour activer le point d’ancrage.
Conseil / Astuce
Vous ne pouvez pas effectuer d’étape lors de l’affichage d’un instantané, mais vous pouvez placer plusieurs points d’ancrage dans votre code pour suivre l’exécution à différentes lignes de code. Si vous avez plusieurs points de capture dans votre code, le débogueur d’instantanés garantit que les instantanés correspondants proviennent de la même session utilisateur finale. Le débogueur d'instantané effectue cette opération même s'il y a de nombreux utilisateurs accédant à votre application.
Prendre un instantané
Une fois qu’un point d’ancrage est défini, vous pouvez générer manuellement un instantané en accédant à l’affichage du navigateur de votre site web et en exécutant la ligne de code marquée ou en attendant que vos utilisateurs génèrent un instantané à partir de leur utilisation du site.
Examiner les données de capture instantanée
Lorsque le point d’ancrage est atteint, un instantané s’affiche dans la fenêtre Outils de diagnostic. Pour ouvrir cette fenêtre, choisissez Déboguer > windows > Afficher les outils de diagnostic.
Double-cliquez sur le point d’ancrage pour ouvrir l’instantané dans l’éditeur de code.
À partir de cette vue, vous pouvez survoler des variables pour afficher les info-bulles de données, utiliser les fenêtres Locals, Watches et Pile d'appels, et également évaluer des expressions.
Le site web lui-même est toujours en direct et les utilisateurs finaux ne sont pas affectés. Un seul instantané est capturé par point d’ancrage par défaut : une fois qu’un instantané est capturé, le point d’ancrage 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 cliquant sur Mettre à jour la collection.
Vous pouvez également ajouter d’autres points d’ancrage à votre application et les activer avec le bouton Mettre à jour la collection .
Vous avez besoin d’aide ? Consultez les pages de Dépannage et problèmes connus et la FAQ pour le débogage des instantanés.
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 snappoint conditionnel. Les points d’ancrage conditionnels vous aident à contrôler quand prendre un instantané, par exemple lorsqu’une variable contient une valeur particulière que vous souhaitez inspecter. Vous pouvez définir des conditions à l’aide d’expressions, de filtres ou de nombres d’accès.
Pour créer un point d’ancrage conditionnel
Cliquez avec le bouton droit sur une icône de point d’ancrage (la sphère creuse) et choisissez Paramètres.
Dans la fenêtre paramètres du point d’ancrage, tapez une expression.
Dans l’illustration précédente, l’instantané est pris uniquement pour le point d’ancrage quand
visitor.FirstName == "Dan".
Définir un point de consignation
En plus de prendre un instantané lorsqu’un point d’alignement est atteint, vous pouvez également configurer un point d’alignement pour journaliser un message (autrement dit, créer un point de journal). Vous pouvez définir des points de journal sans avoir à redéployer votre application. Les points de journalisation sont exécutés de manière virtuelle et n’entraînent aucun impact ni effet secondaire sur votre application en cours d’exécution.
Pour créer un logpoint
Cliquez avec le bouton droit sur une icône de point d’ancrage (l’hexagone bleu) et choisissez Paramètres.
Dans la fenêtre paramètres du point d’ancrage, sélectionnez Actions.
Dans le champ Message , vous pouvez entrer le nouveau message de journal que vous souhaitez enregistrer. Vous pouvez également évaluer des variables dans votre message de journal en les plaçant à l’intérieur d’accolades.
Si vous choisissez Envoyer à la fenêtre Sortie, lorsque le point de journal est atteint, le message s’affiche dans la fenêtre Outils de diagnostic.
Si vous choisissez Envoyer au journal des applications, lorsque le point de journalisation est atteint, le message s’affiche partout où vous pouvez voir des messages provenant de
System.Diagnostics.Trace(ouILoggerdans .NET Core), tels que App Insights.
Contenu connexe
Dans ce tutoriel, vous avez appris à utiliser le débogueur d’instantané d'Azure Kubernetes. Vous souhaiterez peut-être en savoir plus sur cette fonctionnalité.