Ich bin mit Python 2.6.6 und PDB mit meinem Python-Programm zu debuggen, aber ich bin nicht klar, was ist der Unterschied zwischen „next“ und " bis "in pdb, es scheint, dass beide die Ausführung bis zur nächsten Zeile in der aktuellen Funktion fortsetzen werden., was den Unterschied zwischen „next“ und „bis“ in pdb
Antwort
Die PDB-Hilfe doc beschreibt es so:
(Pdb) help next
n(ext)
Continue execution until the next line in the current function
is reached or it returns.
(Pdb) help until
unt(il)
Continue execution until the line with a number greater than the current
one is reached or until the current frame returns
Mehr helfend, Doug Hellman gives an example in his Python Module Tutorial of the Week, die den Unterschied zeigt:
Der bis Befehl ist wie als nächstes, außer es weiterhin ausdrücklich, bis die Ausführung erreicht eine Zeile in derselben Funktion mit einer Zeilennummer höher als der aktuelle Wert . Das bedeutet beispielsweise, dass bis zum Ende von eine Schleife durchlaufen werden kann.
pdb_next.py
import pdb
def calc(i, n):
j = i * n
return j
def f(n):
for i in range(n):
j = calc(i, n)
print i, j
return
if __name__ == '__main__':
pdb.set_trace()
f(5)
$ python pdb_next.py
> .../pdb_next.py(21)<module>()
-> f(5)
(Pdb) step
--Call--
> .../pdb_next.py(13)f()
-> def f(n):
(Pdb) step
> .../pdb_next.py(14)f()
-> for i in range(n):
(Pdb) step
> .../pdb_next.py(15)f()
-> j = calc(i, n)
(Pdb) next
> .../pdb_next.py(16)f()
-> print i, j
(Pdb) until
0 0
1 5
2 10
3 15
4 20
> .../pdb_next.py(17)f()
-> return
(Pdb)
vor bis laufen gelassen wurde, war die Stromleitung 16, die letzte Zeile der Schleife. Nach dem Ausführen wurde in Zeile 17 ausgeführt, und die Schleife war erschöpft.
Der Zweck until
wird mit den eponymous gdb command geteilt:
bis
weiter, bis eine Source-Leitung über die Stromleitung, in dem aktuellen Stapelrahmens ausgeführt wird, erreicht ist. Dieser Befehl wird verwendet, um einzelne Mehrfachdurchläufe zu vermeiden. Es ist wie der nächste Befehl, außer dass, wenn ein Sprung, bis Begegnungen, es Ausführung automatisch fortgesetzt, bis der Programmzähler größer ist als die Adresse des Sprungs. Dies bedeutet, dass wenn Sie das Ende einer Schleife erreichen, nachdem Sie schrittweise durchlaufen haben, bis Ihr Programm die Ausführung fortsetzt, bis es die Schleife beendet. Im Gegensatz dazu tritt ein nächster Befehl am Ende einer Schleife einfach zurück an den Anfang der Schleife, die Sie Schritt durch die nächste Iteration zwingt.
- 1. Was ist der Unterschied zwischen next (err) und next (new Error (err)) in nodejs?
- 2. Was ist der Unterschied zwischen next() und next ('route') in einer expressjs App.VERB Anruf?
- 3. In redux beim Schreiben Thunks für den Versand, was ist der Unterschied zwischen "next" und "store.dispatch"?
- 4. LabVIEW: Was ist der Unterschied zwischen den mechanischen Aktionen "Latch bis Release" und "Switch bis Release"?
- 5. Gibt es einen Unterschied zwischen dem Knoten * next und dem Knoten * next?
- 6. , was den Unterschied zwischen Code und FNC in SetTimeout
- 7. Was ist der Unterschied zwischen ist - (void) und + (void) Methoden
- 8. Was ist der Unterschied zwischen den Methoden Html.Partial und Html.Action?
- 9. Was ist der Unterschied zwischen den Abschnitten ApplicationSettings und AppSettings?
- 10. Was ist der Unterschied zwischen Monad.Reader und den (->) Monaden?
- 11. Was ist der Unterschied zwischen den isPresent und isDisplayed Methoden
- 12. Was ist der Unterschied zwischen den Parametern Default und [Optional]?
- 13. Was ist der Unterschied zwischen den Funktionen VarIsEmpty und VarIsEmptyParam?
- 14. Was ist der Unterschied zwischen den Keywords `fun` und` function`?
- 15. Was ist der Unterschied zwischen den Überlaufeigenschaften `overlay` und` scroll`?
- 16. Was ist der Unterschied zwischen den Ereignissen Control.Enter und Control.GotFocus?
- 17. Was ist der Unterschied zwischen den Funktionsaufrufen "mail()" und "@mail()"?
- 18. Was ist der Unterschied zwischen den NSMage und UIImage?
- 19. Was ist der Unterschied zwischen den Pseudoelementen :: after und :: backdrop?
- 20. Ruby: Was ist der Unterschied zwischen den Vergleichen: "||" und "oder"
- 21. Was ist der Unterschied zwischen den Begriffen "Quelldatei" und "Übersetzungseinheit"?
- 22. Was ist der Unterschied zwischen den Keywords "data" und "type"?
- 23. Was ist der Unterschied zwischen den Klick- und Tippereignissen?
- 24. , was den Unterschied zwischen classof ist [T] und Klasse [T]
- 25. Was ist der Unterschied zwischen den Umgebungsvariablen `USER` und` USERNAME`?
- 26. Was den Unterschied zwischen HTTP-Modul ist und Express modle
- 27. Unterschied zwischen den Funktionstypen
- 28. Was ist der Unterschied zwischen:.! und: r !?
- 29. Was ist der Unterschied zwischen Environment.SpecialFolder.CommonStartMenu und Environment.SpecialFolder.StartMenu in C#?
- 30. Was Unterschied zwischen JavaBean und ManagedBean ist