2010-09-20 12 views
23

Ich benutze Firebug 1.5.4. Wenn ich auf eine undefinierte Variable oder auf eine solche Variable referenziere, bricht sie genau dort ab, wo das Problem auftritt, und wirft mich in die Debug-Ansicht, wo ich den Stack sehen und Variablen untersuchen kann.Wie man Firebug erhält, um auf Ausnahme zu brechen?

Allerdings, wenn ich meine eigene Exception werfen, es nimmt mich nur an die Konsole und druckt „abgefangene Ausnahme: blah“. Ich möchte, dass es bricht und ich Variablen prüfen lasse. Wie kann ich Firebug dazu sagen?

+0

Also für Sie, dass die Arbeit getan hat, dann? Mehr Probleme? – rfunduk

Antwort

6

Der Proband war hilfreich, aber vernachlässigt etwas sehr Schlüssel mir fehlte; das window.onerror-Ereignis. Hier ist der vollständige Code:

window.onerror = function(msg) { 
    debugger; 
} 
+4

Das scheint mir noch keinen nützlichen Stack-Trace zu geben. Mein Stapel zeigt nur den Aufruf onerror() an, nicht den Code, bei dem die Ausnahme aufgetreten ist. – pioto

+0

Versuchen Sie folgendes: var arg = Argumente [4]; s.stack; Dies ist, während Sie noch in breakpointed in window.onerror sind – TMT020

0

Setzen Sie eine debugger; Anweisung in Ihren Code oder verwenden Sie die Registerkarte Script von firebug, um auf eine Zeilennummer zu klicken (die einen Haltepunkt einfügt).

Wenn Sie nur, es zu tun, wenn Sie eine Ausnahme auslösen, könnten Sie die Debugger-Anweisung in einem catch Block setzen.

+4

Es ist in diesem Fall nicht möglich, einen Haltepunkt zu verwenden, da die Ausnahme möglicherweise erst zum 100. Mal durch den Code auftritt und ich nicht 100 Mal durchgehen möchte. Ich bin nur daran interessiert, ob/wann eine Ausnahme auftritt. Aber erzähl mir mehr über diesen "Debugger"; ding ... –

+2

Ok also wenn du deine Ausnahme im 'catch' Block, aber' debugger; 'drin findest (oder dort einen Breakpoint in Firebug einfügen). Auf diese Weise gelangen Sie nur in den Debugger, wenn die Ausnahme auftritt. – rfunduk

+0

Im Zusammenhang mit Ihrer Frage ist der Code 'debugger;' einfach dasselbe wie das Einfügen eines Breakpoints in Firebug in dieser Zeile. – rfunduk

9

installieren Firebug 1.6b1 http://getfirebug.com/releases/firebug/1.6X, Firebug> Konsole> "die Ausnahme" Klicken Sie auf den Haltepunkt-Selektor in der linken Spalte. Führen Sie Ihren Code aus. Firebug bricht auf dieser Linie.

oder Firebug> Konsole> [||] bricht auf nächsten Fehler

+3

Wenn die Ausnahme nur selten auf einer sehr häufig aufgerufenen Codezeile auftritt, wird das jedoch sehr schnell nervig. – pioto

+2

In Firebug 1.7 heißt es Track Throw/Catch –

6

Anruf Web Developer Debugger (Tools => Web Developer => Debugger oder Strg + Umschalt + S), klicken Sie auf das Zahnradsymbol und überprüfen "Pause auf Ausnahme":

enter image description here

Oder ausführen debugger; in Web Developer Console!

Offizielle Web Developer Debugger docs: https://developer.mozilla.org/en-US/docs/Tools/Debugger

Verwandte Themen