Il était une fois, j’utilisais beaucoup de code de débogage. Je ciblais presque entièrement Windows, il y avait donc beaucoup de cette fonction de sortie de chaîne de débogage dont je ne me souviens plus comment épeler, pour pouvoir capturer la trace avec un programme particulier.
Certains codes de débogage sont restés en place, notamment des éléments destinés à imbriquer des appels. Cependant, même si la chaîne de débogage ne serait généralement pas visible sur un système de production, elle était toujours réalisée sous une compilation conditionnelle.
La réalité est cependant que tout ce code de débogage demandait beaucoup d'effort pour quelque chose idéalement géré différemment - en utilisant, bien sûr, un débogueur. À l'époque, le débogueur C ++ de Borland ne m'impressionnait pas autant. Les outils étaient là, mais ils donnaient trop souvent des résultats trompeurs et utiliser le débogueur non-IDE (souvent nécessaire) signifiait mémoriser les touches de raccourci, ce qui distrayait le travail à accomplir.
La seule expérience de débogage que j'ai trouvée qui soit pire est celle de GDB en ligne de commande.
Bien sûr, il est important d’être un expert des outils que vous utilisez tous les jours. Cependant, le débogage ne devrait pas être une chose à faire tous les jours. Si vous utilisez le débogueur si souvent que vous êtes prêt à apprendre des dizaines de commandes et / ou de raccourcis clavier, cela me semble un peu rouge.
Au moment où je travaillais dans Visual Studio 7, il était clair que le débogage pouvait être très pratique et efficace. Si vous pouvez effectuer le débogage dans Visual Studio (éditions express incluses), le débogage est un jeu d'enfant. Nul doute que si vous pouvez trouver le bon frontal GUI / IDE, GDB est simple et efficace, même si je n’ai pas encore fait cette recherche.
Il y a aussi quelque chose à dire pour les tests unitaires, avec une analyse de couverture utilisant gcov. Plus vous êtes confiant dans le comportement de vos bibliothèques, moins votre débogage doit être approfondi - et moins vous avez besoin du débogueur en premier lieu. Et écrire des tests unitaires est tout à fait raisonnablement quelque chose que vous devriez faire la plupart des jours.
Outil inopinément important = cmake, un outil de construction qui me permet de basculer facilement entre la construction de GCC et celle de VC ++, entre autres choses. Donc, je peux faire mes tests unitaires et ma couverture basée sur gcov en utilisant GCC, mais basculer facilement vers VC ++ pour utiliser le débogueur.