Lors du Bootcamp d’Octobre, Mick nous avait préparé un atelier de programmation, histoire de revoir nos bases (ce qui fait du bien de temps en temps). Cette fois-ci, nous avons du réécrire un Quick Sort. En soit, ce n’était pas difficile, mais on se trompe assez rapidement si on n’est pas vigilant. C’est alors qu’une séance de débug est indispensable.

Dans son implémentation naïve, le quick sort est un algorithme récursif. Nous appelons plusieurs fois la même méthode pour réorganiser les données. Durant le débug, la pile d’appels ressemble à cela:

image

Pas très pratique : l’algorithme est réparti entre chaque appel: le quick sort est basé sur le calcul d’une valeur pivot qui permet de trier les données. Forcément, chaque appel de méthode donne une valeur différente, et la fenêtre “Watch” classique ne montre que les données de la méthode courante.

image

Alors comment suivre la valeur de ces variables à chaque appel pour identifier les bugs ? La première méthode demande un bloc note et il faut cliquer à chaque niveau de la pile d’appels : pas très performant ! La bonne méthode est d’utiliser la fenêtre “Parallel Watch” (que je ne connaissais pas au moment du Bootcamp, d’où mon expérience négative de la première méthode).

image

Cette fenêtre de debug combine donc la pile d’appels et la fenêtre “Watch” classique. Et comme pour une fenêtre “Watch” classique, on peut ajouter autant de variables que l’on veut. Pour une analyse ultérieure, il est même possible d’exporter les données dans le format CSV ou directement dans Excel

image

Pour d’autres astuces sur le debug dans Visual Studio, je vous conseille de regarder cette video sur Channel 9.

 

@+