Se faciliter le débogage avec la classe Debugger
Située dans l'espace de noms System.Diagnostics, cette classe va vous faciliter la vie dans quelques situations de débogage.
Pour commencer, on trouve la méthode Launch qui va attacher un débogueur au processus si il n'y en avait pas déja un. A quoi celà peut-il bien servir, il suffit de lancer le code à déboguer directement avec Visual Studio me direz vous ? Ce n'est pas toujours aussi simple, notamment lorsqu'il s'agit de déboguer un serveur COM+ ou plus généralement du code qui tourne dans un processus différent de celui que l'on débogue dans Visual Studio.
Bien entendu, on peut toujours lancer le premier processus normalement avec VS.NET, puis attendre que le deuxième soit chargé et passer par la commande "Tools/Attach to process..." pour attacher le débugger manuellement au deuxième processus. Mais au bout de 15 sessions de débogage, ça devient un peu répétitif... En ajoutant quelquechose comme :
#if DEBUG
if(!Debugger.IsAttached)
{
Debugger.Launch();
}
#endif
Bien placé, ce code va automatiquement attacher le debugger au processus, sans opération manuelle ! (autre qu'éventuellement choisir le déboggeur à utiliser)
Ensuite, on a la méthode Break(). Celle-ci va également attacher un debugger au processus courant si il n'y en a pas déja un mais en plus, elle va produire un effet équivalent à celui d'un point d'arrêt. L'exécution va s'arréter et on aura accès aux fonctionnalités habituelles du débogueur pour inspecter l'état de l'application. Bien pratique pour mettre des "points d'arrêts" dans des processus que l'on a pas forcément envie de déboguer tout le temps mais dans lesquels on voudrait quand même s'arrêter dans certains cas.
Et pour terminer, la méthode Log envoie un message au debogueur qui le présentera au développeur. Dans le cas de Visual Studio.NET par exemple, le message sera affiché dans la fenètre "Sortie". Pratique quand Debug/Trace ne sont pas accessibles.
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 :