Manchmal werfen Sie mehrere browser
s in eine Debugfunktion. Ich weiß, dass du den ganzen Shebang mit Q
beenden kannst. Was aber, wenn du den zweiten Browser verlassen willst (siehe Code unten) und zur ersten Browserebene zurückkehrst? Ich habe den Typ c
gehört, aber das beendet nicht die zweite Ebene browser
.
Ich stimme Josh zu und möchte diese zwei Alternativen zu Ihrem aktuellen Code vorschlagen:
1) debugonce
: Wenn wir foo
Ihre innere Funktion aufrufen, startet debugonce(foo)
den Debugger nur beim ersten Aufruf von foo
, wenn x==1
.
2) debug
und undebug
. Nachdem Sie debug(foo)
ausgeführt haben, wird der Debugger jedes Mal gestartet, wenn foo
aufgerufen wird, und bis Sie undebug(foo)
:
Wenn Sie das Debuggen von foo
beenden möchten, geben Sie undebug(foo)
ein, bevor Sie c
drücken, und Sie gelangen zurück zum Browser der ersten Ebene.
Durch Eingabe von c
wird der aktuelle Browserkontext beendet.
Ihr Code führt jedoch während der Ausführung einen "First Level" - und zehn verschiedene "Second-Level" -Browser-Aufrufe aus. Wenn Sie einen zweiten Browser beenden, werden Sie fast sofort in den nächsten -Browser geworfen, sodass die Eingabe von c
möglicherweise nicht erfolgt arbeiten.
Geben Sie c <RETURN>
11 mal ein, um zu bestätigen, dass dies der Fall ist.
Ich füge qwer
(oder ein anderes Objekt, das nicht existiert) direkt nach dem zweiten Browser hinzu. Ich blättere dann manuell Code durch und wenn ich den zweiten Browser beenden möchte, drücke ich einfach c
. Es wird ein Fehler ausgegeben, dass das Objekt nicht existiert. Sie werden zum ersten Browser-Aufruf zurückgeworfen.
renne undebug (yourFunction) Dies wird das Debuggen beenden, aber immer noch an der Browser-Eingabeaufforderung bleiben Geben Sie dann c und (vielleicht ein paar Mal) ein, um zur regulären Eingabeaufforderung zurückzukehren.
Tags und Links r