93 votes

python pdb - ignorer la boucle

Comment sauter une boucle en utilisant pdb.set_trace() ?

Par example,

 pdb.set_trace()
for i in range(5):
     print(i)

print('Done!')

pdb invites avant la boucle. Je saisis une commande. Toutes les valeurs 1 à 5 sont renvoyées, puis j'aimerais être à nouveau invité avec pdb avant que le print('Done!') s'exécute.

152voto

shreddd Points 3237

Essayez l'instruction until

Allez à la dernière ligne de la boucle (avec next ou n ) puis utilisez until ou unt . Cela vous amènera à la ligne suivante, juste après la boucle.

http://www.doughellmann.com/PyMOTW/pdb/ a une bonne explication

4voto

mike Points 317

Vous devez définir un point d'arrêt après la boucle ("break main.py:4" en supposant que les lignes ci-dessus se trouvent dans un fichier appelé main.py), puis continuer ("c").

1voto

Qaswed Points 956

Vous pouvez définir un autre point d'arrêt après la boucle et y accéder (lors du débogage) avec c :

 pdb.set_trace()
for i in range(5):
    print(i)

pdb.set_trace()
print('Done!')

-18voto

j_juggernaut Points 4

Si j'ai bien compris.

Une façon possible de le faire serait :

Une fois que vous obtenez l'invite pdb Appuyez simplement sur n (suivant) 10 fois pour quitter la boucle.

Cependant, je ne connais pas de moyen de quitter une boucle dans pdb .

Vous pouvez cependant utiliser r pour quitter une fonction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X