le debugger Python : pdb¶
breakpoint()¶
pour mettre un point d’arrêt dans un programme on peut utiliser breakpoint()
def fact(n):
if n<=1:
breakpoint()
return 1
else:
return n * fact(n-1)raccourcis
| clavier | quoi |
|---|---|
| l (lowercase L) | list source |
| w | show stack |
| n | next statement (stay in same function) |
| s | step into (dive into function call) |
| c | continue |
| p |
# si on exécute, le programme s'arrête
# et on peut ensuite exécuter pas à pas,
# inspecter la pile et les variables, ...
# fact(3)pdb.run()¶
le module pdb permet de debugger facilement un programme Python
import pdb
import mymodule
pdb.run('mymodule.test()') lance le debugger depuis la console sur la fonction
test()
pdb.pm() - post-mortem¶
import pdb
import mymodule
mymodule.test()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "./mymodule.py", line 4, in test
test2()
…
pdb.pm()lance le debugger en post-mortem
sous IPython¶
dans ipython (ou dans un notebook), vous pouvez utiliser la magic %%debug
def fact(n):
print(f"in fact with {n=}")
if n <= 1:
return 1
else:
return n * fact(n-1)pour essayer, enlever les commentaires dans cette cellule
# %%debug
# fact(3)