Débogage avec pdb en Python

Débogage du code Python avec pdb

Vous pouvez utiliser ʻimport pdb`, mais ici nous allons vous montrer comment déboguer sans apporter de modifications au code source. Seules les commandes fréquemment utilisées seront couvertes.

Comment commencer

$ python -m pdb XXXXX.py

Ou

$ python3 -m pdb XXXXX.py

Exemple d'exécution

Exemple de programme à exécuter

hello.py


msg = "Hello world"

def hello(txt):
	print(txt)

hello(msg)
print("Done.")
$ python3 -m pdb hello.py
> /path/to/current/directory/hello.py(1)<module>()
-> msg = "Hello world"
(Pdb)

Comment utiliser pdb

Vous pouvez poursuivre le travail de débogage en entrant une commande après (Pdb).

--Commandes fréquemment utilisées

commander une fonction
b(reak) [Nombre de lignes ou nom de fonction] Mettre un point d'arrêt sur une ligne ou une fonction
c(ont(inue)) Exécuter jusqu'à ce que le prochain point d'arrêt soit atteint
s(tep) Exécuter la ligne actuelle(Arrêter à un appel de fonction)
n(ext) Exécuter la ligne actuelle(S'il s'agit d'un appel de fonction, exécutez la fonction)
q(uit) Quittez le débogueur

Vous pouvez omettre les caractères entre parenthèses dans la commande.

Exemple d'exécution

$ python3 -m pdb hello.py
> /path/to/current/directory/hello.py(1)<module>()
-> msg = "Hello world"
(Pdb) b 6
Breakpoint 1 at /path/to/current/directory/hello.py:6
(Pdb) c
> /path/to/current/directory/hello.py(6)<module>()
-> hello(msg)
(Pdb) s
--Call--
> /path/to/current/directory/hello.py(3)hello()
-> def hello(txt):
(Pdb) s
> /path/to/current/directory/hello.py(4)hello()
-> print(txt)
(Pdb) n
Hello world
--Return--
> /path/to/current/directory/hello.py(4)hello()->None
-> print(txt)
(Pdb) c
Done.
The program finished and will be restarted
> /path/to/current/directory/hello.py(1)<module>()
-> msg = "Hello world"
(Pdb) q
$ 

référence

http://docs.python.jp/3/library/pdb.html

Recommended Posts

Débogage avec pdb en Python
Exploitez LibreOffice avec Python
Grattage avec chromedriver en python
Gérer les sons en Python
Grattage avec du sélénium en Python
Grattage avec Tor en Python
Tweet avec image en Python
Combiné avec ordinal en Python
Tester avec des nombres aléatoires en Python
GOTO en Python avec Sublime Text 3
Travailler avec LibreOffice en Python: import
Scraping avec Selenium en Python (Basic)
Analyse CSS avec cssutils en Python
Numer0n avec des objets fabriqués avec Python
Ouvrez UTF-8 avec BOM en Python
Utiliser rospy avec virtualenv dans Python3
Utiliser Python mis en pyenv avec NeoVim
Heatmap avec dendrogramme en Python + matplotlib
Lire des fichiers en parallèle avec Python
Générer un mot de passe pour le manuel avec python
Utiliser OpenCV avec Python 3 dans Window
Jusqu'à traiter de python dans Atom
Démarrez avec Python avec Blender
Travailler avec des images DICOM en Python
Écrire de la documentation dans Sphinx avec Python Livereload
Obtenez des données supplémentaires vers LDAP avec python
Quadtree en Python --2
Python en optimisation
CURL en Python
FizzBuzz en Python3
Métaprogrammation avec Python
Livre en spirale en Python! Python avec un livre en spirale! (Chapitre 14 ~)
débogage python DS
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Grattage avec Python
Essayez de vous connecter à qiita avec Python
Python3> dans le mot clé> Vrai avec une correspondance partielle?
Contrôle exclusif avec fichier de verrouillage en Python
Statistiques avec python
Surveillance des appareils effectuée par Python On-box de IOS-XE
Méta-analyse en Python
Unittest en Python
Grattage avec Python
Python avec Go
Essayez de travailler avec des données binaires en Python
Conseils de débogage Python
Dessinez Nozomi Sasaki dans Excel avec python
Conseils pour gérer les binaires en Python
Afficher Python 3 dans le navigateur avec MAMP
Twilio avec Python
Époque en Python
Discord en Python
Intégrer avec Python
Comment utiliser BigQuery en Python
Classe Trump en Python (avec comparaison)
Allemand en Python
DCI en Python