Je vous rappelle que nous sommes dans la méthode CreateTask du modèle qui est appelée avec la valeur "sleep" dans le test VerifyAddTasks de T_TodoModels.cs.
Une fois arrêté sur une instruction, deux choix sont possibles :
On peut soit descendre dans le code de la méthode appelée via Step Into (F11) en suspendant l'exécution ;
Soit laisser le débogueur l'exécuter, y compris les appels de sous-fonctions, avec Step Over (F10) et mettre en pause une fois l'exécution terminée.
Ces deux actions sont accessibles depuis la barre d’outils Debug de Visual Studio :
Vous pouvez également y accéder directement avec les raccourcis clavier F11 et F10.
Il est aussi possible de laisser le code s'exécuter jusqu'à une instruction particulière. Pour cela, il suffit de laisser la souris immobile devant pendant quelques secondes pour faire apparaître un sigle vert :
Cliquer dessus fait exactement ce que l'on souhaite : cela exécute le code et suspend l'exécution juste avant le return.
Et si nous voulons "sauter" l'exécution de InternalAddTask ?
Il suffit encore de laisser la souris quelques secondes devant le return et d'appuyer sur la touche Ctrlpour voir apparaître un sigle jaune cette fois-ci. Il faut simplement cliquer dessus :
Ces deux fonctionnalités Run to Cursor (Ctrl+F10) et Set Next Statement (Ctrl+Shift+F10) sont aussi disponibles sur clic-droit :
Résumé
Vous avez maintenant tous les moyens de naviguer pas à pas dans l’exécution du code pour :
Descendre dans une méthode ;
Exécuter une méthode ;
Tout exécuter jusqu’à une instruction ;
Ou carrément sauter l’exécution d’une partie du code.
Avec tout l'arsenal à votre disposition, vous devriez être maintenant capable de trouver l'origine du bug et comment le fixer. Ce sera le sujet du dernier chapitre de cette partie du cours sur le débogage d'applications C#. ;)