Les "Tracepoint" ? C'est sympa ! (et ce n'est pas nouveau)
Ces temps ci je vois certains s'extasier sur une "nouvelle" fonctionnalité de VS2008 : les Tracepoint (points de trace).
Eh bien ce n'est pas nouveau, je vous en avais parler en mai 2006, pour Visual Studio 2005 donc : Les Tracepoint ? C'est sympa !
Ce post ayant relativement mal vécu le changement de skin du blog (les images sont tronquées), je vais le représenter ci dessous :-)
Il s'agit, en gros, de l'équivalent d'un point d'arrêt sur lequel vous allez pouvoir notamment choisir d'envoyer un message vers la sortie du debugger, et, partie la plus intéressante, de continuer ou non l'exécution sans marquer d'arrêt.
Dans ce cas, on peut comparer le fonctionnement à l'insertion d'un appel à System.Diagnostics.Debug.WriteLine/System.Diagnostics.Trace.WriteLine, mis à par :
- vous n'avez pas besoin de modifier le code
- l'exécution ne se fait que si le debugger est attaché
- la suppression des constantes DEBUG/TRACE ne supprime pas l'affichage du message si le debugger est attaché (il ne s'agit pas d'une compilation conditionnelle, mais bien d'une fonction propre à Visual Studio)
- vous avez accès aux possibilités de réglages sur les breakpoint (test de condition, nombre d'accès, etc etc)
Au lieu de modifier votre code comme ceci :
Vous pouvez maintenant ajouter un Tracepoint :
Soit en partant de zéro en passant par "Insérer un point de trace" :
Soit en transformant un point d'arrêt existant via "Lorsqu'il est atteint..." (Aaah, le bon vieux F9 ;-) ) :
Il vous suffit de renseigner les champs comme ceci :

Vous aurez ainsi en sortie :
Prenons maintenant un cas "plus poussé", c'est à dire celui du travail dans une méthode dont le passage en arrière plan, y compris sur un break donc, provoque un nouveau passage, qui provoque un nouveau passage, qui provoque un nouveau passage, qui [...] (Paint, Focus etc).
Soit un code de dessin de ce genre (très poussé, lui aussi) :
Vous voulez afficher sur votre sortie les coordonnées du point de dessin, mais seulement si une CheckBox est cochée.
Avant, vous pouviez écrire ce genre de chose :
Maintenant, il vous suffit de définir votre action comme ceci :

Couplée avec la condition suivante pour le point d'arrêt :

Et le code n'a pas changé :
Sympa, non ?
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :