Main menu:

Site search

Categories

juillet 2011
L M M J V S D
 123
45678910
11121314151617
18192021222324
25262728293031

Archive

Débugger un script python

Si comme moi, vous utilisez un simple éditeur de texte du genre geany pour écrire vos scripts et programmes en python, il y a des chances que vous fassiez comme moi et que vous utilisiez l’instruction print pour débugger vos programmes. Ca fonctionne très bien pour autant que le programme ne soit pas trop long et surtout que le bug ne soit pas trop vicieux. Il existe toujours la possibilité d’utiliser un IDE du genre Eric, pyCharm ou encore WingIDE mais les meilleurs ne sont pas gratuits et je ne ressens pas l’utilité d’utiliser de tels programmes.

Pourtant il y a moyen de débugger simplement son programme en utilisant pdb, le Python Debugger. Ceux qui ont déjà programmé en C ou en C++ verront une ressemblance avec gdb.
De façon basique, le débugger peut s’appeler de deux manières.
La première consiste à lancer le débugger puis à tester le programme dans celui-ci:

$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pdb
>>> import mon_programme
>>> mon_programme.main()

On importe le débugger ainsi que le programme que vous voulez tester sous forme de module. Ensuite on appelle la fonction que l’on veut tester. Dans l’exemple ici, je veux tester la fonction main() de mon programme.

La seconde méthode qui est celle que j’utilise parce que je la trouve plus simple à mettre en oeuvre, est d’insérer la ligne suivante dans mon code là où je veux qu’il s’arrête (insertion d’un breakpoint). à ce moment, le prompt pdb s’affiche et je n’ai plus qu’à entrer les commandes du débugger que je veux utiliser.

import pdb; pdb.set_trace();

Les commandes du débugger permettent d’exécuter les lignes de code une à une, d’exécuter un ensemble de lignes, de mettre des breakpoints conditionnels ou non, d’afficher le contenu d’une variable et plein d’autres choses. Je vous renvoie à la documentation sur pdb pour les détails sur les commandes disponibles dans le débugger et plus généralement sur le débugger lui-même.

Comments

Comment from Delgan
Time: 24 novembre 2012, 10 h 50 min

Comme toi j’écris mes codes dans un simple éditeur de texte, comme toi je débuguais mes scripts à la puissance du print, et comme toi j’utilise le module pdb désormais.

Merci ! 😀