2018-04-05 Debugger Python#

L’exécution pas à pas d’un programme Python permet souvent de trouver facilement l’erreur caché dans un programme. Cette astuce est néanmoins compliquée à mettre en oeuvre dans deux cas. Le premier lorsque l’erreur se produit dans un module implémentée en C++. C’est assez rare pour les modules standard comme pandas ou numpy mais néanmoins possible. Il n’y a pas d’options pratique depuis Python si ce n’est Visual Studio : Débogage conjoint de Python et de C++. Le second cas difficile avec un débugger survient lorsque l’erreur se produit dans un programme après plusieurs minutes d’exécution ou à la dernière itération d’une boucle à un million de tours. Dans ces cas-là, le seul recours est souvent d’utiliser la fonction print à des endroits bien choisis. Parfois, on souhaite détecter que le même nombre d’objets à été créés puis détruits, parfois, on souhaite tomber sur la donnée qui fait exploser la mémoire. Le module pympler propose quelques outils pour ces deux méthodes de diagnostic. Quoiqu’il en soit, après une telle aventure, vous serez probablement incité à écrire des petites fonctions facilement testables séparéments plutôt que de grandes fonctions terriblement compliquées à tester.