2017-09-12 9 views
0

Je soupçonne que j'ai question dans un de mes boucles, donc je configurer un point de rupture avec pdb.set_trace()comment désactiver pdb.set_trace() sans arrêter le programme python et modifier le code

import pdb 
for i in range(100): 
    print("a") 
    pdb.set_trace() 
    print("b") 

Après avoir vérifié la variable dans cette boucle plusieurs fois, je décide de continuer cette programmation sans autre interruption. Donc, j'essaie d'obtenir le numéro de coupure avec la commande b, pas de pauses listées. Je suppose que cette ligne de code ne configure pas de point de rupture. mais Comment est-ce que je peux monter de ces "points de rupture" sans arrêter le programme et changer le code?

+0

Pourquoi 'r (eturn)' ne fonctionne pas pour vous? – dbliss

+0

r ne fonctionne pas, fonction de commande r si retour d'un appel de fonction. Si cette fonction est appelée à nouveau, le programme est interrompu. –

Répondre

3

à ma connaissance, on ne pouvait pas contourner set_trace, mais vous pouvez le neutraliser, une fois arrêté débogueur, tapez:

pdb.set_trace = lambda: 1 

puis continuer, il l'habitude de rompre à nouveau.

+1

cela va fonctionner. mais cela désactivera tout ce qui suit pdb.set_trace(). Je peux aussi faire ceci "if my_flag: pdb.set_trace()", mais cela semble un peu urgent. –

+0

@scotthuang la variable de débogage est okay pour moi, et, vous pouvez créer un alias pdb pour désactiver/activer rapidement 'set_trace'. – georgexsh

+0

@ scotthuang d'ailleurs, avez-vous essayé de «sauter» commande – georgexsh