Brechen Sie an eine member-Funktion in der Python-debugger
Sollte dies eine triviale Frage, aber meine Suche war bisher fruchtlos:
Ich bin mit dem Python-debugger (pdb) zum ersten mal, und war sehr erfreut zu finden, die meisten Befehle, bekannt aus der Verwendung von gdb.
Allerdings, wenn ich ging, um einen Haltepunkt in der analysieren () - member der Klasse JamParser mit der Aussage:
(Pdb) b JamParser.parse
*** The specified object 'JamParser.parse' is not a function
or was not found along sys.path.
Ich versuchte mehrere verschiedene Varianten, einschließlich:
(Pdb) b jam2dot.py:JamParser.parse
Ich gehe davon aus, dass da rief ich den debugger aus der Befehlszeile, er kennt die Personen in der Datei. Ist das eine falsche Annahme?
Den Dokumentation sagt, dass die Pause nehmen kann, eine Funktion als argument, aber bietet keine syntax-Hilfe. Also wie setze ich einen Haltepunkt für eine member-Funktion von Namen?
- WENN Sie Zugang zu der Quelle, die ich in der Regel fallen eine
import pdb; pdb.set_trace()
wo ich will, anstatt durch den Schritt mit dem debugger. - Jetzt bin ich ein bisschen mehr erlebt, ich habe erkannt, dass der Wert von deinem Vorschlag, danke.
- Du bist herzlich willkommen. Ich lernte diesen trick von einem Haufen von Python-Profis auf PyCon vor zwei Jahren. 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie importieren Sie Namen, bevor Sie können, finden Sie in den debugger.
b
Befehl nimmt entweder einen Dateinamen einJamParser.py
- und mis-typed Erweiterung). Aber ich Stimme zu, dass könnte es tun, eine Menge besser als diese. Ich schlage vor, Sie einen Fehlerbericht Einreichen!