Lecture: The Art of Debugging

Déverminer (déboguer) est, je crois, un sujet sur lequel je n’avais jamais lu jusqu’à maintenant. Travaillant maintenant presque à temps plein sur le projet MLDB, en C++, gdb est un de mes outils de travail au quotidien. Comme la productivité d’un programmeur dépend largement de la maîtrise de ses outils, j’ai décidé d’y consacrer du temps.

Le premier chapitre du livre est très général. Il donne des conseils et des méthodes de travail s’appliquant au déverminage en général. Le cœur du livre traite ensuite des différents sujets en utilisant d’abord C++ et gdb puis en démontrant les fonctionnalités similaires avec DDD et Eclipse. Les explications de chacun des outils sont toujours séparées dans le texte ce qui fait qu’il est très facile de sauter les sections qui ne nous intéressent pas.

Le livre se lit bien. les exemples sont clairs, ils sont accompagnés de code qu’on peut suivre et il y a même pas mal d’images reliées à Eclipse et DDD .

Le livre a certains manquements dont certains sont dus à son âge. Par exemple, gdb permet d’enregistrer un processus et de le rejouer. (Donc avancer et reculer dans son exécution.) Cette fonctionnalité a été ajoutée à gdb 7.0, paru vers septembre 2009. (Le livre date de 2008.) Un autre manquement notable: pas d’exploration des structures «modernes» telle que les std::shared_ptr (C++11) et moins modernes telle que les std::vector. Comment accède-t’on à leur contenu? Oui ça dépend de l’implémentation, mais on aurait pu au minimum en faire mention.

Bref, j’ai aimé ce livre, mais il mériterait une mise à jour. Est-ce que le titre est approprié? Oui. J’écrirais cependant DDD et Eclipse en un peu plus petit sur la couverture puisque gdb passe largement en avant en termes de longueur du texte relié.

The Art of Debugging with GDB, DDD, and Eclipse Book Cover The Art of Debugging with GDB, DDD, and Eclipse
Norman S. Matloff, Peter Jay Salzman,
Computers
No Starch Press
2008
264
https://www.nostarch.com/debugging.htm

Leave a Reply