Ich führe einen Python-Code durch PDB (Python-Debugger). Wenn ich einen Haltepunkt setze und anschließend triff, kann ich die lokalen Variablen mit Hilfe von:
überprüfen %Vor%Dies gibt ein nettes dict des Namens aus, Wertepaare der lokalen Variablen in dem aktuellen Bereich, in dem ich pausiert habe. Perfekt!
Ich kann auch einen Stack-Trace mit dem Befehl PDB where
sehen, der in etwa so aussieht:
In dieser Beispielausgabe wurde ich in der Funktion quicksort()
angehalten, die von der Funktion run()
aufgerufen wurde.
So weit, so gut.
Wenn ich die lokalen Variablen quicksort()
mit einem Aufruf von locals()
untersuchen kann, wie kann ich dann die lokalen Variablen der Funktion run()
inspizieren?
Mit anderen Worten, wie kann ich die lokalen Variablen einer Funktion untersuchen, die in der Aufrufliste verschachtelt ist?
Wichtige Klarstellung : Ich NICHT möchte continue
oder step
in run()
, um seine lokalen Variablen zu überprüfen. Ich möchte (aus meiner aktuellen, pausierten Perspektive) die lokalen Variablen im aktuell im Aufruf-Stack verschachtelten run()
Stack-Frame untersuchen.
(i)pdb
bieten die Befehle up
und down
, so dass Sie über den Call-Stack reisen können. Auf diese Weise können Sie höhere Ebenen Ihres Aufrufs aufrufen und lokale Variablen dort prüfen.
Besuchen Sie noch einmal ein Debugging-Tutorial, das wird wahrscheinlich beim zweiten Versuch klar werden.