Partager via


IntelliTrace pour Visual Studio Enterprise (C#, Visual Basic, C++)

Vous pouvez passer moins de temps à déboguer votre application lorsque vous utilisez IntelliTrace pour enregistrer et suivre l’historique d’exécution de votre code. Vous pouvez facilement trouver des bogues, car IntelliTrace vous permet de :

  • Enregistrer des événements spécifiques

  • Examiner le code associé, les données qui s’affichent dans la fenêtre Locals pendant les événements du débogueur et les informations d’appel de fonction

  • Déboguer des erreurs difficiles à reproduire ou qui se produisent dans le déploiement

Vous pouvez utiliser IntelliTrace dans Visual Studio Enterprise Edition (mais pas les éditions Professional ou Community).

Que voulez-vous faire ?

Scénario Titre
Déboguer mon application avec IntelliTrace :

- Montre-moi les événements passés.
- Afficher les informations d’appel avec les événements passés.
- Enregistrer ma session IntelliTrace.
- Contrôler les données collectées par IntelliTrace.
- Inspecter les états d’application précédents à l’aide d’IntelliTrace
- Procédure pas à pas : utilisation d’IntelliTrace
- Fonctionnalités IntelliTrace
- Débogage historique
Collecter des données IntelliTrace à partir d’applications déployées - Utilisation du collecteur autonome IntelliTrace
Démarrez le débogage à partir d’un fichier journal IntelliTrace (fichier .iTrace). - Utilisation des données IntelliTrace enregistrées

Quelles applications puis-je déboguer avec IntelliTrace ?

Niveau du support Types d’applications
Prise en charge complète - Applications Visual Basic et Visual C# qui utilisent .NET Framework 2.0 ou versions ultérieures.
Vous pouvez déboguer la plupart des applications, notamment ASP.NET, Microsoft Azure, Windows Forms, WCF, WPF, Windows Workflow, SharePoint 2010, SharePoint 2013 et les applications 64 bits.
Pour déboguer des applications SharePoint avec IntelliTrace, consultez procédure pas à pas : débogage d’une application SharePoint à l’aide d’IntelliTrace.
Pour déboguer des applications Microsoft Azure avec IntelliTrace, consultez Débogage d’un service cloud publié avec IntelliTrace et Visual Studio.
Prise en charge limitée - Les applications C++ ciblant Windows prennent en charge l’affichage des instantanés en utilisant la fonction de retour en arrière d’IntelliTrace. Seuls les événements de débogueur et d’exception sont pris en charge.
- Les applications .NET Core et ASP.NET Core prises en charge pour certains événements uniquement (contrôleur MVC, ADO.NET et événements HTTPClient) dans le débogage local. Le collecteur autonome n’est pas pris en charge pour les applications .NET Core ou ASP.NET Core.
- Applications F# sur une base expérimentale
- Applications UWP prises en charge uniquement pour les événements
Non pris en charge - Autres langages et scripts
- Services Windows, Silverlight, Xbox ou applications Windows Mobile

Remarque

Si vous souhaitez déboguer un processus déjà en cours d’exécution, vous pouvez collecter des événements IntelliTrace uniquement (aucune information d’appel). Vous pouvez vous connecter à un processus 32 bits ou 64 bits uniquement sur la machine locale. Les événements qui se produisent avant l’attachement au processus ne sont pas collectés.

Pourquoi déboguer avec IntelliTrace ?

Le débogage traditionnel ou en direct affiche uniquement l’état actuel de votre application, avec des données limitées sur les événements passés. Vous devez déduire ces événements en fonction de l’état actuel de l’application, ou vous devez recréer ces événements en réexécutant votre application.

IntelliTrace développe cette expérience de débogage traditionnelle en enregistrant des événements et des données spécifiques à ces moments dans le temps. Cela vous permet de voir ce qui s’est passé dans votre application sans le redémarrer, en particulier si vous passez au-delà de l’endroit où se trouve le bogue. IntelliTrace est activé par défaut pendant le débogage traditionnel et collecte automatiquement et de manière invisible les données. Cela vous permet de basculer facilement entre le débogage traditionnel et le débogage IntelliTrace pour afficher les informations enregistrées. Consultez fonctionnalités IntelliTrace et quelles données IntelliTrace collectent-elles ?

IntelliTrace peut également vous aider à déboguer des erreurs difficiles à reproduire ou qui se produisent dans le déploiement. Vous pouvez collecter des données IntelliTrace et les enregistrer dans un fichier journal IntelliTrace (fichier .iTrace). Un fichier .iTrace contient des détails sur les exceptions, les événements de performances, les requêtes web, les données de test, les threads, les modules et d’autres informations système. Vous pouvez ouvrir ce fichier dans Visual Studio Enterprise, sélectionner un élément et commencer le débogage avec IntelliTrace. Cela vous permet d’accéder à n’importe quel événement dans le fichier et d’afficher des détails spécifiques sur votre application à ce stade dans le temps.

Vous pouvez enregistrer des données IntelliTrace à partir de ces sources :

Voici quelques exemples de la façon dont IntelliTrace peut vous aider à déboguer :

  • Votre application a endommagé un fichier de données, mais vous ne savez pas où cet événement s’est produit.

    Sans IntelliTrace, vous devez examiner le code pour rechercher tous les accès possibles aux fichiers, placer des points d’arrêt sur ces accès et réexécuter votre application pour trouver où le problème s’est produit. Avec IntelliTrace, vous pouvez voir tous les événements d’accès aux fichiers collectés et des détails spécifiques sur votre application lorsque chaque événement s’est produit.

  • Une exception se produit.

    Sans IntelliTrace, vous recevez un message sur une exception, mais vous n’avez pas beaucoup d’informations sur les événements qui ont conduit à l’exception. Vous pouvez examiner la pile des appels pour voir la chaîne d’appels qui a conduit à l’exception, mais vous ne pouvez pas voir la séquence d’événements qui se sont produits pendant ces appels. Avec IntelliTrace, vous pouvez examiner les événements qui se sont produits avant l’exception.

  • Un bogue ou un incident se produit dans une application déployée.

    Pour les applications basées sur Microsoft Azure, vous pouvez configurer la collecte de données IntelliTrace avant de publier l’application. Pendant l’exécution de votre application, IntelliTrace enregistre les données dans un fichier .iTrace. Consultez Déboguer un service cloud publié avec IntelliTrace et Visual Studio.

    Pour ASP.NET applications web hébergées sur IIS 7.0, 7.5 et 8.0 et SharePoint 2010 ou SharePoint 2013, utilisez Microsoft Monitoring Agent, seul ou avec System Center 2012, pour enregistrer des données IntelliTrace dans un fichier .iTrace.

    Cela est utile lorsque vous souhaitez diagnostiquer les problèmes liés aux applications dans le déploiement. Consultez Utiliser le collecteur autonome IntelliTrace.

Quelles données IntelliTrace collecte-t-il ?

Collecter des informations sur les événements

Par défaut, IntelliTrace enregistre uniquement les événements IntelliTrace : les événements du débogueur, les exceptions, les événements .NET Framework et d’autres événements système qui peuvent vous aider à déboguer. Vous pouvez choisir les types d’événements IntelliTrace que vous souhaitez collecter, à l’exception des événements et exceptions du débogueur, qui sont toujours collectés. Consultez les fonctionnalités IntelliTrace.

  • Événements du débogueur

    IntelliTrace enregistre toujours les événements qui se produisent dans le débogueur Visual Studio. Par exemple, le lancement de votre application constitue un événement pour le débogueur. D’autres événements de débogueur arrêtent les événements, ce qui entraîne l’arrêt de l’exécution de votre application. Par exemple, votre programme atteint un point d’arrêt, atteint un point de trace ou exécute une commande d’étape .

    Par défaut, pour faciliter les performances, IntelliTrace n’enregistre pas toutes les valeurs possibles pour un événement de débogueur. Au lieu de cela, il enregistre ces valeurs :

    • Valeurs dans la fenêtre Locals . Laissez la fenêtre Locals ouverte pour afficher ces valeurs.

    • Valeurs dans la fenêtre Autos uniquement si la fenêtre Autos est ouverte

    • Valeurs dans les Info-bulles qui s’affichent lorsque vous déplacez le pointeur de la souris en haut d’une variable dans la fenêtre source pour afficher sa valeur. IntelliTrace ne collecte pas de valeurs dans les info-bulles de données épinglées.

      Lorsque le mode Événements et instantanés IntelliTrace est activé, IntelliTrace prend un instantané du processus de l’application au niveau de chaque point d’arrêt etétape du débogueur. Cela enregistre les valeurs dans les fenêtres Locals, Autos et Watch, que les fenêtres soient ouvertes ou non. Les valeurs dans les info-bulles de données épinglées seront également collectées.

  • Exceptions

    IntelliTrace enregistre le type d’exception et le message pour ces types d’exceptions :

    • Exceptions gérées où l’exception est levée et interceptée

    • Exceptions non prises en charge

  • Événements .NET Framework

    Par défaut, IntelliTrace enregistre les événements .NET Framework les plus courants. Par exemple, pour un CheckBox.CheckedChanged événement, IntelliTrace collecte l’état et le texte de la case à cocher.

  • Événements d’application SharePoint 2010 et SharePoint 2013

    Vous pouvez enregistrer des événements de profil utilisateur et un sous-ensemble d’événements ULS (Unified Logging System) pour les applications SharePoint 2010 et 2013 s’exécutant en dehors de Visual Studio. Vous pouvez enregistrer ces événements dans un fichier .iTrace. Nécessite Visual Studio Enterprise 2015 ou versions ultérieures, une version précédente de Visual Studio Ultimate ou Microsoft Monitoring Agent s’exécutant en mode Trace .

    Lorsque vous ouvrez le fichier .iTrace, entrez un ID de corrélation SharePoint pour rechercher sa requête web correspondante, afficher les événements enregistrés et commencer le débogage à partir d’un événement spécifique. Si le fichier contient des exceptions non gérées, vous pouvez choisir un ID de corrélation pour démarrer le débogage d’une exception.

    Voir:

Capturer des instantanés

Vous pouvez configurer IntelliTrace pour capturer des instantanés à chaque point d'arrêt et à chaque étape pendant le débogage. IntelliTrace enregistre l’état complet de l’application à chaque instantané, ce qui vous permet d’afficher des variables complexes et d’évaluer des expressions.

Remarque

Le collecteur autonome IntelliTrace ne prend pas en charge la capture d’instantanés.

Consultez Inspecter les états d’application précédents à l’aide d’IntelliTrace.

Collecter les informations d’appel de fonction

Vous pouvez configurer IntelliTrace pour collecter des informations d’appel pour les fonctions. Ces informations vous permettent de voir un historique de la pile d'appels et de naviguer en arrière et en avant dans les appels du code. Pour chaque appel de fonction, IntelliTrace enregistre ces données :

  • Nom de la fonction
  • Valeurs des types de données primitifs passés en tant que paramètres aux points d’entrée de fonction et retournées aux points de sortie de fonction
  • Valeurs des propriétés automatiques lorsqu’elles sont lues ou modifiées
  • Pointeurs vers des objets enfants de premier niveau, mais sans leurs valeurs à part si elles étaient nulles ou non.

Remarque

IntelliTrace collecte uniquement les 256 premiers objets dans les tableaux et les 256 premiers caractères pour les chaînes.

Voir Inspecter votre application avec le débogage historique.

Collecter des informations sur le module

Pour contrôler la quantité d’informations d’appel collectées par IntelliTrace, spécifiez uniquement les modules qui vous intéressent. Cela peut aider à améliorer les performances de votre application pendant la collecte. Consultez la section Contrôler la quantité d’informations collectées par IntelliTrace dans les fonctionnalités IntelliTrace.

IntelliTrace ralentira-t-il mon application ?

Par défaut, IntelliTrace collecte uniquement les données des événements IntelliTrace sélectionnés. Cela peut ou non ralentir votre application, en fonction de la structure et de l’organisation de votre code. Par exemple, si IntelliTrace enregistre souvent un événement, cela peut ralentir votre application. Il peut également vous permettre de refactoriser votre application.

La collecte des informations d’appel peut ralentir considérablement votre application. Il peut également augmenter la taille des fichiers journaux IntelliTrace (fichiers .iTrace) que vous enregistrez sur le disque. Pour réduire ces effets, collectez les informations d’appel uniquement pour les modules dont vous vous souciez. Pour modifier la taille maximale de vos fichiers .iTrace, accédez à Outils, Options, IntelliTrace, Avancé.

Blogues

Microsoft DevOps

Forums de discussion

Visual Studio Diagnostics