Débogage du code plus rapide en examinant son historique avec IntelliTrace

Consacrez moins de temps au débogage de votre application dans Visual Studio Ultimate lorsque vous enregistrez et effectuez le suivi de l'historique d'exécution de votre avec IntelliTrace. Vous pouvez ainsi détecter les bogues plus facilement sans avoir à définir un grand nombre de points d'arrêt, car IntelliTrace permet les actions suivantes :

  • Enregistrer les événements spécifiques qui se sont produits dans votre application.

    Vous pouvez examiner le code connexe, les données de la fenêtre Variables locales pendant les événements de débogueur et les informations d'appel de fonction, si vous choisissez d'en effectuer la collecte.

  • Réduire le nombre de redémarrages de votre application pour recréer des bogues ou des événements.

  • Déboguer les erreurs qu'il est difficile de reproduire ou qui interviennent lors du déploiement.

Voici comment l'enregistrement des événements peut vous aider à trouver un bogue dans votre code :

Événements IntelliTrace uniquement - flux de niveau supérieur

Que voulez-vous faire ?

Déboguer mon application à l'aide d'IntelliTrace dans Visual Studio :

  • Me montrer les événements passés.

  • Me montrer les informations sur les appels avec les événements passés.

  • Enregistrer ma session IntelliTrace.

  • Vérifier les données collectées par IntelliTrace.

Collecter les données IntelliTrace pendant une session de test dans le Gestionnaire de tests

Collecter des données IntelliTrace des applications dans le déploiement

Démarrer le débogage à partir d'un fichier journal IntelliTrace (fichier .iTrace).

FAQ

  • Quelles applications peuvent être déboguées à l'aide d'IntelliTrace ?

  • Pourquoi déboguer à l'aide d'IntelliTrace ?

  • Quelles sont les données collectées par IntelliTrace ?

  • Mon application peut-elle être ralentie par IntelliTrace ?

Quelles applications peuvent être déboguées à l'aide d'IntelliTrace ?

Pris en charge

Prise en charge limitée

  • Applications F# à titre expérimental

  • Applications Windows Store prises en charge pour les événements uniquement

Non pris en charge

  • C++, autres langages et script

  • Services Windows, Silverlight, Xbox ou applications Windows Mobile

Notes

Si vous souhaitez déboguer un processus qui est déjà en cours d'exécution, vous ne pouvez pas utiliser IntelliTrace.Vous devez démarrer IntelliTrace lorsque le processus commence.

Pourquoi déboguer à l'aide d'IntelliTrace ?

Qu'il soit traditionnel ou en direct, le débogage 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 selon l'état actuel de l'application ou recréer ces événements en exécutant à nouveau votre application.

IntelliTrace développe cette expérience de débogage traditionnel en enregistrant les événements et les données spécifiques à ces instants donnés dans le temps. Cela vous permet de voir ce qui s'est produit dans votre application sans la redémarrer, surtout si vous avez dépassé l'emplacement où se trouve le bogue. IntelliTrace est activé par défaut pendant un débogage traditionnel et collecte les données automatiquement et de façon invisible. Cela vous permet de basculer facilement entre le débogage traditionnel et le débogage IntelliTrace pour consulter les informations enregistrées. Consultez Obtenir la mise en route du débogage avec IntelliTrace et Quelles sont les données collectées par IntelliTrace ?

IntelliTrace peut également vous aider à déboguer des erreurs difficiles à reproduire ou celles qui se produisent lors du déploiement. Vous pouvez collecter les données IntelliTrace et les enregistrer dans un fichier journal IntelliTrace (fichier .iTrace). Un fichier .iTrace contient des informations détaillées sur les exceptions, les événements de performance, les requêtes web, les données de test, les threads, les modules et autres informations système. Ouvrez ce fichier dans Visual Studio Ultimate, sélectionnez un élément et démarrez le débogage avec IntelliTrace. Cela vous permet d'accéder à n'importe quel événement dans le fichier et de consulter les détails spécifiques relatifs à votre application à ce moment-là.

Vous pouvez enregistrer les données IntelliTrace à partir des sources suivantes :

Voici quelques exemples pour vous aider à effectuer un débogage avec IntelliTrace :

  • Votre application a endommagé un fichier de données, mais vous ignorez à quel emplacement cet événement s'est produit.

    Sans IntelliTrace, vous devez parcourir le code pour rechercher tous les accès possibles au fichier, placer des points d'arrêt sur ces accès, puis réexécuter votre application afin d'identifier l'emplacement où le problème se produit. Grâce à IntelliTrace, consultez tous les événements d'accès au fichier et les détails spécifiques collectés relatifs à votre application lorsque chaque événement se produit.

  • Une exception se produit.

    Sans IntelliTrace, vous recevez un message concernant une exception, mais vous avez peu d'informations relatives aux événements qui ont abouti à l'exception. Vous pouvez examiner la pile des appels pour consulter la chaîne des appels qui ont conduit à l'exception, mais ne pouvez pas consulter la séquence des événements qui s'est produite pendant ces appels. Grâce à IntelliTrace, vous pouvez examiner les événements antérieurs à l'exception.

  • Votre application tombe en panne sur un ordinateur de test, mais s'exécute correctement sur un ordinateur de développement.

    Vous pouvez collecter les données IntelliTrace avec Microsoft Test Manager, enregistrer les données dans un fichier .iTrace et attacher ce fichier à un élément de travail Team Foundation Server pour un examen approfondi. Consultez Collecter plus de données de diagnostic dans des tests manuels et Comment : lire et déboguer des enregistrements IntelliTrace.

  • Un bogue ou un incident se produit dans une application pendant le déploiement.

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

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

    Cela est utile lorsque vous souhaitez diagnostiquer les problèmes liés aux applications du déploiement. Consultez Collecter des données IntelliTrace pour les applications en production avec le collecteur autonome.

Quelles sont les données collectées par IntelliTrace ?

Collecte d'informations sur les événements

Par défaut, IntelliTrace n'enregistre que les événements IntelliTrace. Ce sont les événements du débogueur, les exceptions, les événements.NET Framework et autres événements système qui peuvent vous aider au débogage. Déterminez le type d'événements qu'IntelliTrace doit collecter, à l'exception des événements et des exceptions du débogueur, qui sont collectés systématiquement. Consultez Configurer la collecte des données IntelliTrace pour le débogage dans Visual Studio.

  • Événements du débogueur

    IntelliTrace enregistre systématiquement les événements intervenus dans le débogueur Visual Studio. Par exemple, le démarrage de votre application est un événement du débogueur. Les autres événements du débogueur sont les événements d'arrêt, qui interrompent l'exécution de votre application. Par exemple, votre programme atteint un point d'arrêt ou un point de trace, ou exécute une commande Étape.

    Pour améliorer les performances, IntelliTrace n'enregistre pas toutes les valeurs possibles pour un événement du débogueur. En revanche, il enregistre les valeurs suivantes :

    • Valeurs de la fenêtre Variables locales. Gardez la fenêtre Variables locales ouverte pour afficher ces valeurs.

    • Valeurs de la fenêtre Automatique uniquement si elle est ouverte

    • Valeurs situées dans DataTips qui apparaissent lorsque vous déplacez le pointeur de la souris au-dessus d'une variable dans la fenêtre source pour afficher sa valeur. IntelliTrace ne collecte pas de valeurs dans les DataTips épinglés.

  • Exceptions

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

    • Exceptions traitées où l'exception est levée et interceptée

    • Exceptions non traitées

  • Événements .NET Framework

    Par défaut, IntelliTrace enregistre les événements .NET Framework les plus courants. Par exemple :

    • Pour un événement d'accès au fichier, IntelliTrace collecte le nom de fichier.

    • Pour un événement de case à cocher, 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 qui s'exécutent en dehors de Visual Studio. Vous pouvez enregistrer ces événements dans un fichier .iTrace. Requiert Visual Studio Ultimate 2013 ou Microsoft Monitoring Agent s’exécutant en mode Trace.

    Lorsque vous ouvrez le fichier .iTrace, vous pouvez entrer un ID de corrélation SharePoint pour rechercher sa requête web correspondante, afficher les événements inscrits, puis démarrer 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 commencer à déboguer une exception.

    Reportez-vous à :

Collecte des informations sur les appels de fonction

Configurez IntelliTrace pour collecter les informations sur les appels de fonctions. Ces informations vous permettent de consulter un historique de la pile des appels et d'exécuter en mode pas à pas des appels dans le code vers l'avant et vers l'arrière. Pour chaque appel de fonction, IntelliTrace enregistre les données suivantes :

  • Nom de la fonction

  • Valeurs des types de données primitifs passées comme 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 désignant des objets enfants de premier niveau, mais non leurs valeurs sauf si elles sont nulles ou pas

Notes

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

Consultez Configurer la collecte des données IntelliTrace pour le débogage dans Visual Studio.

Collecte des informations relatives aux modules

Pour contrôler la quantité d'informations sur les appels qu'IntelliTrace collecte, spécifiez uniquement les modules qui vous intéressent. Cela peut améliorer les performances de votre application pendant la collection. Consultez Configurer la collecte des données IntelliTrace pour le débogage dans Visual Studio.

Mon application peut-elle être ralentie par IntelliTrace ?

Par défaut, IntelliTrace collecte uniquement les données des événements IntelliTrace sélectionnés. Votre application peut être ralentie ou non, en fonction de la structure et l'organisation de votre code. Par exemple, si IntelliTrace enregistre souvent un événement, cela peut ralentir votre application. Il faut éventuellement envisager de refactoriser votre application.

La collecte des informations sur les appels peut ralentir votre application de manière significative. Cela peut également augmenter la taille des fichiers journaux IntelliTrace (.iTrace) que vous enregistrez sur le disque. Pour minimiser ces effets, collectez des informations sur les appels uniquement pour les modules qui vous intéressent. Pour modifier la taille maximale de vos fichiers .iTrace, accédez à Outils, Options, IntelliTrace, Avancé. Consultez Configurer la collecte des données IntelliTrace pour le débogage dans Visual Studio.

Où peut-on obtenir plus d'informations ?

Obtenir la mise en route du débogage avec IntelliTrace

Configurer la collecte des données IntelliTrace pour le débogage dans Visual Studio

Inclusion de données de trace de diagnostic dans des bogues difficiles à reproduire

Diagnostiquer des problèmes de déploiement à l'aide de Visual Studio et de l'agent de surveillance Microsoft

Comment : lire et déboguer des enregistrements IntelliTrace

Blogs

Visual Studio ALM + Team Foundation Server

Forums

Diagnostics Visual Studio

Guide

Test de la livraison continue avec Visual Studio 2012 - Chapitre 6 : Boîte à outils de test