2015-07-03 14 views
8

Gibt es einen Befehl, während des Debuggens auf ipdb aus Zyklen herauszutreten (sagen wir, für oder während), ohne die Breakpoints aus ihnen zu verwenden?ipdb Debugger, Schritt außerhalb des Zyklus

Ich benutze den Befehl until, um aus der Liste zu entfernen, aber ich weiß nicht, wie ich eine ähnliche Sache machen könnte, wenn möglich, ganze Schleifenblöcke.

Antwort

3

Diese Linie offensichtlich klingen könnte: Sprung macht Sie springen. Das bedeutet, dass Sie die Zeilen nicht ausführen, die Sie springen: Sie sollten dies verwenden, um Code zu überspringen, den Sie nicht ausführen möchten.

Sie brauchen wahrscheinlich tbreak (Temporärer Haltepunkt, der automatisch beim ersten Treffer entfernt wird. Die Argumente sind die gleichen wie Pause), als ich diese Seite gefunden habe.

1

Wenn Sie bereit sind, einen anderen Debugger zu verwenden, trepan, hat mehr Möglichkeiten, wie Sie treten können. Es ist mehr gdb-ähnlich. So können Sie zählen, wie oft Sie treten möchten. Oder Sie geben eine Zeilennummer in einem Debugger-Befehl continue, die im Wesentlichen einen temporären Haltepunkt in der Zeile festlegt und dann "Fortfahren" ausgibt. Andere Dinge, die sich ändern, sind "set different". Siehe auch die geraden Suffixe, die Sie auf step setzen können.

Beachten Sie, dass es wie ipdb eine Syntaxhervorhebung des Quelltexts gibt.

7

Ich glaube, das ist die Absicht des Befehls until. Es ist wie ein next, außer dass, wenn ein Sprung zu einer vorherigen Zeilennummer für die Schleife auftritt, es bis zum Beenden der Schleife fortgesetzt wird.

unt(il) 
Continue execution until the line with a number greater than the current 
one is reached or until the current frame returns 

Im allgemeinen auf "step out" der aktuellen Funktion, verwenden return.

r(eturn) 
Continue execution until the current function returns. 
+0

nein, bis die Liste zum Beispiel aus der Liste kommt. Es setzt die Ausführung fort, bis eine andere Zeilennummer als die aktuelle Zeile gespeichert wird. Wenn innerhalb eines Codeblocks (für, während, alles andere), gibt es keine Möglichkeit, aber mit Breakpoints, soweit ich –

15

Sie können j <line number> (jump) verwenden, um zu einer anderen Zeile zu wechseln. zum Beispiel j 28 gehen 28

+0

gut recherchiert habe, denke ich, das ist das nächste, was ich brauche, vielen Dank! :) –

Verwandte Themen