> Tech > Optimiser le déboguage avec IntelliTrace

Optimiser le déboguage avec IntelliTrace

Tech - Par Renaud ROSSET - Publié le 18 janvier 2012
email

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

Comment sécuriser une PME avec l’approche par les risques ?

Comment sécuriser une PME avec l’approche par les risques ?

Disposant de moyens financiers et humains contraints, les PME éprouvent des difficultés à mettre en place une véritable stratégie de cybersécurité. Opérateur de services et d’infrastructures, Naitways leur propose une approche pragmatique de sécurité « by design » en priorisant les risques auxquelles elles sont confrontées.

Tech - Par Renaud ROSSET - Publié le 18 janvier 2012