Passer au contenu du pied de page
Iron Academy Logo
Outils et productivité C#

Points d'arrêt et points de contrôle avancés en C#

Tim Corey
22m 36s

Le débogage fait partie intégrante du flux de travail de tout développeur. Dans un projet C# complexe, il ne s'agit pas seulement d'écrire du code, mais aussi de trouver et de résoudre efficacement les bogues. C'est là que les techniques avancées de points d'arrêt entrent en jeu.

Dans sa vidéo "Advanced Breakpoints and Tracepoints in C#", Tim Corey explique comment tirer pleinement parti du débogueur Visual Studio. La plupart des développeurs connaissent les points d'arrêt de base, mais cette session va plus loin en montrant comment des fonctionnalités telles que les points d'arrêt conditionnels, les tracepoints et les actions peuvent vous aider à diagnostiquer les problèmes plus rapidement et plus efficacement. Tim explique tout clairement, rendant ces outils avancés accessibles et pratiques pour le développement quotidien. Commençons !

Le rôle du débogage dans le développement

Tim commence par souligner qu'une grande partie du travail d'un développeur consiste à résoudre des problèmes - des bogues qui se glissent dans nos applications. Un débogage efficace permet de progresser plus rapidement, et l'ensemble d'outils Visual Studio propose des techniques avancées pour rationaliser ce processus.

Qu'est-ce qu'un point d'arrêt ?

Le point d'arrêt C# le plus simple est inséré en cliquant sur la marge extrême gauche de votre fichier de code. Lorsque l'exécution atteint cette ligne, elle se met en pause. Cela vous permet d'inspecter le contexte d'exécution actuel, de visualiser les variables, de parcourir le code et de comprendre exactement ce qui se passe dans les coulisses. Tim fait remarquer que si de nombreux développeurs sont familiarisés avec cette fonctionnalité de base, il existe un monde riche au-delà de celle-ci qui reste souvent inutilisé.

Tracepoints et enregistrement dans la fenêtre de sortie

Tim explique comment insérer un Tracepoint en cliquant avec le bouton droit de la souris sur la gouttière et en choisissant dans le menu déroulant. Un Tracepoint n'interrompt pas l'exécution, mais enregistre un message dans la fenêtre de sortie, tel que :

La valeur de i est {i}

En entourant une variable d'accolades, sa valeur est imprimée. C'est extrêmement pratique lorsque vous voulez avoir une visibilité dans une boucle sans avoir à appuyer sur continue à plusieurs reprises. Il est similaire à l'utilisation d'une déclaration de journal, mais il est géré par l'interface du débogueur au lieu d'être codé en dur dans votre méthode. Tim montre également comment configurer cette action pour qu'elle puisse être mise en pause ou poursuivie.

Points d'arrêt temporaires : Débogage en une seule fois

Ensuite, Tim montre comment créer un point d'arrêt temporaire, facilement reconnaissable à une petite icône d'horloge. Une fois qu'il est touché pendant l'exécution, il se désactive automatiquement. Cette traduction est utile lorsque vous ne devez vérifier qu'une seule fois qu'une déclaration a été atteinte, ce qui permet de réduire le bruit lors de la session de débogage. Tim montre comment activer et désactiver ces points d'arrêt sans les supprimer, ce qui vous donne un contrôle flexible sur la vue de débogage.

Points d'arrêt conditionnels avec des expressions

Cette section aborde l'une des fonctionnalités les plus puissantes : les points d'arrêt conditionnels. Tim en définit un en utilisant la condition i > 10, ce qui signifie que le point d'arrêt ne se déclenchera que lorsque l'expression sera évaluée comme vraie. Dans la boîte de propriétés du point d'arrêt, vous pouvez sélectionner des conditions telles que :

  • Nombre d'occurrences

  • Expression

  • Filtre

Ceux-ci vous permettent d'appliquer une logique granulaire aux points d'arrêt, en veillant à ce que vous ne fassiez une pause que lorsque des critères significatifs sont remplis. Ceci est particulièrement utile dans les longues boucles ou lors de l'inspection d'anomalies dans le comportement de votre code.

Points d'arrêt dépendants : Lier la logique de débogage

Lorsque vous avez besoin qu'un point d'arrêt se déclenche uniquement après qu'un autre ait été atteint, Tim suggère d'utiliser des points d'arrêt dépendants. C'est idéal pour les applications multithread ou les interactions complexes entre modules, où les instances d'une méthode ne peuvent se dérégler qu'une fois qu'une condition préalable est remplie.

Dans les paramètres du point d'arrêt, Tim montre comment sélectionner un nom de fonction et configurer un autre point d'arrêt pour qu'il ne s'active que si cette fonction a été atteinte. Cela permet de s'assurer que la logique de suivi d'un projet n'est pas inspectée à moins qu'un comportement antérieur ne le justifie, ce qui permet à votre débogueur de rester concentré et efficace.

La fenêtre des points d'arrêt et la gestion de plusieurs points d'arrêt

Tim ouvre la fenêtre des points d'arrêt via Debug > Windows > Breakpoints ou Ctrl + Alt + B. Cette fenêtre répertorie tous les points d'arrêt actifs dans le projet et propose des outils tels que :

  • Exportation/Importation : Enregistrez les points d'arrêt sous forme de fichier XML et créez des configurations de débogage réutilisables.

  • Étiquetage : Ajoutez des étiquettes telles que "test" ou "démo" pour classer les outils par catégorie.

  • Regroupement : Attribuez des points d'arrêt à des groupes tels que "erreurs critiques" ou "flux normal" Vous pouvez ensuite activer ou désactiver des groupes entiers, ce qui est utile lorsque vous devez jongler avec différents scénarios d'évaluation.

Tim montre également comment définir un groupe par défaut, de sorte que tout nouveau point d'arrêt rejoint automatiquement ce contexte.

Points d'arrêt de fonction par nom

Que faire si l'on veut casser un appel à une méthode, quel que soit l'endroit où elle est définie ? C'est là que les points d'arrêt fonctionnels entrent en jeu. Tim saisit le nom de la fonction PrintInfo et montre comment le débogueur se déclenche dès qu'une version de cette méthode est appelée, quel que soit l'endroit où elle se trouve - même dans différents fichiers ou DLL.

Cette traduction est idéale pour le débogage de méthodes fortement surchargées ou de projets Visual Studio Code avec des noms de méthodes partagées utilisées dans des contextes multiples.

Rupture en cas de changement de valeur : Points de surveillance avancés

Vers la fin de la vidéo, Tim aborde une fonctionnalité de niche mais puissante : l'interruption en cas de changement de valeur. Vous pouvez cliquer avec le bouton droit de la souris sur une variable dans la fenêtre Locals et sélectionner cette option. Cependant, elle ne fonctionne que dans des circonstances limitées - typiquement pour les propriétés suivies sur le tas géré dans les instances de classe.

Des limitations de système s'appliquent :

  • architecture x64 : Jusqu'à quatre variables suivies.

  • ARM64 : Deux.

  • ARM32 : Un seul.

Ce suivi au niveau du matériel permet de savoir quand l'état d'une variable change, mais il est rarement utilisé en raison de ces contraintes.

Conclusion

Pour conclure, Tim rappelle un point essentiel : la maîtrise des outils de débogage avancés de Visual Studio fait de vous un développeur plus rapide et plus efficace. Des tracepoints aux points d'arrêt conditionnels, du survol des variables à l'utilisation de la vue de débogage, tous ces outils vous aident à vous attaquer aux bogues en toute confiance.

Conclusion

En parcourant la vidéo complète de Tim Corey sur les points d'arrêt dans Visual Studio, vous avez maintenant une compréhension détaillée de la façon d'utiliser ces outils pour affiner votre flux de travail de débogage. Tous les bogues peuvent être résolus, il suffit d'adopter la bonne stratégie de débogage.

Hero Worlddot related to Points d'arrêt et points de contrôle avancés en C#
Hero Affiliate related to Points d'arrêt et points de contrôle avancés en C#

Gagnez plus en partageant ce que vous aimez

Vous créez du contenu pour les développeurs travaillant avec .NET, C#, Java, Python ou Node.js ? Transformez votre expertise en revenu supplémentaire !

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi