Déboguer votre application en enregistrant l'exécution du code avec IntelliTrace
Pour que le débogage de votre application soit moins long, enregistrez et effectuez le suivi de son historique d'exécution avec IntelliTrace dans Visual Studio Ultimate.Cela vous aide à détecter les bogues plus facilement sans avoir à définir un grand nombre de points d'arrêt car IntelliTrace permet de :
Enregistrer les événements spécifiques qui se sont produits dans votre application.
Cela vous permet d'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 des erreurs difficiles à reproduire ou se produisant en dehors de Visual Studio, par exemple, dans la production ou dans d'autres environnements.
Cet exemple montre comment l'enregistrement d'événements peut vous aider à trouver un bogue dans votre code :
Observez IntelliTrace en action : Collecte et analyse des données pour le débogage (vidéo Channel 9).
Que voulez-vous faire ?
Déboguer mon application à l'aide d'IntelliTrace dans Visual Studio :
|
|
Collecter des données IntelliTrace pendant une session de test dans le Gestionnaire de tests |
|
Collecter des données IntelliTrace d'applications qui s'exécutent en dehors de Visual Studio |
|
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 |
|
Non pris en charge |
|
[!REMARQUE]
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 des événements passés.Vous devez déduire ces événements selon l'état actuel de l'application, ou vous devez recréer ces événements en exécutant à nouveau votre application.
IntelliTrace développe cette expérience de débogage traditionnel en enregistrant des événements et des données spécifiques à des moments donnés.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 Enregistrer l'exécution du code avec IntelliTrace pour le débogage dans Visual Studio 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 en dehors de Visual Studio.Collectez des données IntelliTrace et enregistrez-les dans un fichier journal IntelliTrace (fichier .iTrace).Un fichier .iTrace contient des informations détaillées sur les exceptions, les threads, les requêtes Web, les données de test, 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 à l'aide d'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à.
Enregistrez des données IntelliTrace à partir des sources suivantes :
Session IntelliTrace dans Visual Studio Ultimate
Session de test dans Microsoft Test Manager
Applications qui s'exécutent en dehors de Visual Studio, par exemple, dans des environnements de production ou d'autres environnements
Visual Studio 2012.1 : applications contrôlées par System Center 2012 Service Pack 1 (SP1) - Operations Manager avec le Pack de gestion du profilage IntelliTrace.Consultez Comment configurer l'intégration avec IntelliTrace dans System Center 2012.
Consultez Déboguer votre application avec les fichiers journaux IntelliTrace (.iTrace).
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 s'est 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.
Collectez des données IntelliTrace avec Microsoft Test Manager, enregistrez les données dans un fichier .iTrace, et attachez ce fichier à un élément de travail de Team Foundation Server pour un examen approfondi.Consultez Inclusion de données de trace de diagnostic dans des bogues difficiles à reproduire et Déboguer votre application avec les fichiers journaux IntelliTrace (.iTrace).
Un bogue ou une panne se produisent dans votre application alors que son exécution s'effectue en dehors de Visual Studio.
Pour les applications basées sur Windows Azure, configurez 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 Nuage publié avec IntelliTrace et Visual Studio.
Pour les applications de bureau managées (.exe), les applications Web ASP.NET hébergées sur IIS 7.0, 7.5, et 8.0 et les applications SharePoint 2010, utilisez le collecteur autonome pour enregistrer des données IntelliTrace dans un fichier .iTrace.
Cela est utile lorsque vous souhaitez diagnostiquer les problèmes liés aux applications qui s'exécutent lorsque vous ne souhaitez pas modifier la configuration système, par exemple un environnement de production.Installez le collecteur sans modifier la configuration système.Lorsque la collecte des données est terminée, supprimez simplement le collecteur pour sa désinstallation.Consultez Collecter des données IntelliTrace à l'extérieur de Visual Studio 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 des événements de débogueur, des exceptions, des événements.NET Framework, et autres événements système qui peuvent vous aider avec le débogage.Déterminez le type d'événements qu'IntelliTrace doit collecter, à l'exception des événements et des exceptions de débogueur, qui sont collectés systématiquement.Consultez Configurer la collecte IntelliTrace pour le débogage dans Visual Studio.
Événements de débogueur
IntelliTrace enregistre systématiquement les événements produits dans le débogueur Visual Studio.Par exemple, le démarrage de votre application est un événement de débogueur.D'autres événements de débogueur causent l'arrêt d'événements et interrompent l'exécution de votre application.Par exemple, votre programme atteint un point d'arrêt, 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 de débogueur.En revanche, il enregistre les valeurs suivantes :
Valeurs situées dans la fenêtre de Variables locales.Gardez la fenêtre de Variables locales ouverte pour afficher ces valeurs.
Valeurs situées dans 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 managées où l'exception est levée et interceptée
Exceptions non géré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.
Visual Studio 2012.1 : événements d'application SharePoint 2010
Pour les applications SharePoint 2010 qui s'exécutent en dehors de Visual Studio, vous pouvez enregistrer des événements SharePoint spécifiques vers un fichier .iTrace à l'aide du collecteur autonome dans Visual Studio 2012.1.
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 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.Vous pouvez enregistrer des événements de profil utilisateur et un sous-ensemble d'événements ULS (Unified Logging System).
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.
[!REMARQUE]
IntelliTrace collecte uniquement les 256 premiers objets des tableaux et les 256 premiers caractères des chaînes.
Consultez Configurer la collecte 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 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 IntelliTrace pour le débogage dans Visual Studio.
Où peut-on obtenir plus d'informations ?
Enregistrer l'exécution du code avec IntelliTrace pour le débogage dans Visual Studio
Configurer la collecte IntelliTrace pour le débogage dans Visual Studio
Inclusion de données de trace de diagnostic dans des bogues difficiles à reproduire
Collecter des données IntelliTrace à l'extérieur de Visual Studio avec le collecteur autonome
Déboguer votre application avec les fichiers journaux IntelliTrace (.iTrace)
Blogs
Visual Studio ALM et Team Foundation Server.
Forums
Débogueur Visual Studio (page en anglais)
Aide
Test de livraison continue avec Visual Studio 2012 – Chapitre 6 : Une boîte à outils de test