J'utilise le module pdb pour déboguer un programme. J'aimerais comprendre comment je peux quitter pdb et permettre au programme de continuer jusqu'à son terme. Le programme est coûteux à exécuter, donc je ne veux pas quitter sans que le script tente de se terminer. continue
ne semble pas fonctionner. Comment puis-je quitter pdb et continuer mon programme?
111
continue
quitte les boucles,return
quitte les méthodes / fonctionscontinue
la commande pdb. Pas la déclaration Python.continue
devrait "Continuer l'exécution, s'arrêter uniquement lorsqu'un point d'arrêt est rencontré", selon la documentation. Avez-vous un ensemble de points d'arrêt qui est touché?pdb.set_trace()
dans votre code source?Réponses:
continue
devrait "Continuer l'exécution, s'arrêter uniquement lorsqu'un point d'arrêt est rencontré", donc vous avez un point d'arrêt défini quelque part. Pour supprimer le point d'arrêt (si vous l'avez inséré manuellement):Ou, si vous utilisez
pdb.set_trace()
, vous pouvez essayer ceci (bien que si vous utilisez pdb de manière plus sophistiquée, cela peut casser les choses ...)la source
set_trace = lambda: None
:)set_trace = lambda: None
. L'organisation Python devrait ajouter une commande qui vous permet simplement de sortir de pdb.Un simple Ctrl- Dva sortir de pdb. Si vous voulez continuer plutôt que de rompre, appuyez simplement sur cplutôt que sur toute la
continue
commandela source
exit
La réponse de @voithos est correcte, je vais donc ajouter une alternative dans le cas où vous utilisez
set_trace
. Oui, lepdb.set_trace = lambda: None
hack fonctionne bien, mais pas si vous avez défini d'autres points d'arrêt et que vous souhaitez le réactiver plus tard. Pour moi, cela souligne le fait qu'ilpdb
manque malheureusement un tas de fonctionnalités (même des éléments de base comme les listes d'affichage), et c'est un autre cas.La bonne nouvelle est que
pdb++
c'est un excellent remplacement pourpdb
, et l'une des choses qu'il résout est exactement le problème de la désactivationset_trace
. Vous pouvez donc simplement faire:puis à l'
(Pdb++)
invite, tapez:Si vous souhaitez le réactiver plus tard, cela fonctionne sans surprise:
Facile! Et vous obtiendrez en plus de nombreux autres goodies utiles.
la source
Si vous souhaitez vraiment quitter le débogueur, vous devez exécuter quelque chose comme WinPdb qui vous permet de vous détacher du processus, puis de quitter le débogueur, (NB: il est multi-plateforme).
Si vous souhaitez continuer le débogage mais ne plus vous arrêter à un point d'arrêt donné, vous devez:
cl bp_number
soitclear file:line
pour supprimer définitivement le point d'arrêt, soitdisable pb_number
pour le désactiver, mais pouvoir le réactiver.continue
, votre programme s'exécute jusqu'à ce que le prochain point d'arrêt différent soit atteint.Pour plus de détails sur ce qui précède, consultez le manuel .
la source
trouver une nouvelle façon de quitter le pdb sans rien installer: - lorsque le programme commence à s'exécuter, appuyez sur ctrl + c, puis passez la fenêtre à une autre (n'importe quelle fenêtre), puis le shell d'origine avec pdb en cours d'exécution devrait afficher quelque chose comme: (pdb) ..... - revenez à pdb, puis appuyez sur Entrée, maintenant vous êtes prêt, le shell de commande pdb réapparaît
la source