Pour illustrer la manière dont IntelliTrace peut vous faire gagner du temps, examinons le diagnostic de problèmes Entity Framework DataReader dans une solution de site Web Microsoft Silverlight, Entity Framework 4.0 et RIA Services. La figure 1 présente une vue de la fenêtre d’événements IntelliTrace.
Optimiser le déboguage avec IntelliTrace

Celle-ci englobe tous les événements IntelliTrace collectés, les événements d’arrêt et les exceptions déclenchées pendant l’exécution du programme. Par défaut, elle apparaît lorsque le débogage avec IntelliTrace est activé. Un clic sur n’importe quel événement dans la fenêtre développe l’entrée afin d’afficher plus de données et le contexte de débogage se synchronise avec le moment où l’événement a été collecté. S’il est disponible, le fichier source approprié sera ouvert pour cet emplacement d’événement et une flèche orange sera placée dans la marge de point d’arrêt afin d’indiquer la position historique courante.
En appuyant sur F5 ou en sélectionnant l’événement dynamique au bas de la fenêtre d’événements IntelliTrace, vous serez replacé dans le contexte dynamique et serez en mesure de poursuivre le débogage de manière normale. Dans notre exemple, la procédure stockée a été importée dans l’Entity Framework avec une spécification incorrecte pour le type complexe retourné. Dans la fenêtre de la figure 1, vous pouvez voir plusieurs appels ASP.NET GET au service RIA, ainsi que plusieurs appels ADO.NET Execute Reader réussis avant l’appel en échec. Ensuite, lors de l’appel à up_GetResultsByRunIdsNew, une exception déclenchée et capturée IndexOutOfRangeException sur la propriété HardEnvironmentID1 est visible et est suivie d’une série d’exceptions DataReader incompatibles.
Dans notre exemple, la première exception IndexOutOfRangeException a été sélectionnée. Le fichier de code source pour cet emplacement s’est ouvert et le contexte du débogueur a été placé à l’endroit du déclenchement de cette exception. Lorsqu’IntelliTrace s’exécute, il est inutile de passer par les étapes habituelles d’arrêt, de débogage, d’activation des exceptions au petit bonheur la chance, et de défilement de l’application en s’arrêtant sur chaque exception déclenchée afin de voir si elle est à l’origine du problème. Avec IntelliTrace, toutes ces informations sont à portée de clic dès que le débogueur s’interrompt. A cela s’ajoute le fait que vous avez accès aux données contenues dans les événements IntelliTrace capturés.
En règle générale, lorsque vous utilisez des infrastructures de haut niveau comme Entity Framework 4.0 et RIA Services, les détails de l’exécution sont masqués aux yeux du développeur. Mais avec IntelliTrace, vous pouvez pénétrer sous le capot du Microsoft .NET Framework afin de voir les détails des événements ADO.NET Execute Reader exécutés réellement par l’Entity Framework à partir de la procédure stockée. Lorsque vous rencontrez un comportement non expliqué pendant une session de débogueur, examinez la fenêtre d’événements IntelliTrace et les événements qu’elle contient. Même si la réponse n’apparaît pas d’emblée dans la liste, vous aurez fréquemment une meilleure compréhension de ce qu’il se passe dans le Microsoft .NET Framework pendant l’exécution de l’application.
Téléchargez cette ressource

Gagner en cyber-résilience avec Insight & Bitdefender
Dans un environnement en constante mutation, où les cyberattaques deviennent plus nombreuses et plus sophistiquées, et où les SI se complexifient par la multiplication des offres SaaS et le multi cloud, les entreprises doivent repenser leur approche de la cybersécurité et faire évoluer leurs bonnes pratiques. Comment gagner en Cyber résilience ?