2010-09-20 8 views
23

Estoy usando Firebug 1.5.4. Cuando hago referencia a una variable indefinida o algo así, se rompe justo donde ocurre el problema, y ​​me arroja a la vista de depuración donde puedo ver la pila e inspeccionar las variables.¿Cómo hacer que Firebug rompa con la excepción?

Sin embargo, cuando lanzo mi propia excepción, simplemente me lleva a la consola e imprime "excepción no detectada: bla". Me gustaría que se rompa y me permita inspeccionar las variables. ¿Cómo puedo decirle a Firebug que haga esto?

+0

Así hizo que el trabajo para usted, entonces? ¿Mas problemas? – rfunduk

Respuesta

6

El encuestado fue útil pero descuidó algo muy importante que me faltaba; el evento window.onerror. Aquí está el código completo:

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

Eso no parece darme un rastro de pila útil aún. Mi pila solo muestra la llamada onerror(), no el código donde ocurrió la excepción. – pioto

+0

Pruebe esto: var arg = arguments [4]; s.stack; Esto es mientras aún estás en la ventana de break.onerror – TMT020

0

Ponga una declaración debugger; en su código o use la pestaña Script de firebug para hacer clic en un número de línea (que inserta un punto de interrupción).

Si solo desea hacerlo cuando lanza una excepción, puede colocar la declaración del depurador en un bloque catch.

+4

No es factible utilizar un punto de interrupción en este caso, ya que la excepción podría no ocurrir hasta la centésima vez a través del código, y no quiero recorrerlo 100 veces. Solo me interesa si/cuando se produce una excepción. Pero cuéntame más sobre este "depurador"; cosa ... –

+2

Ok, cuando capture su excepción, en el bloque 'catch', pero' depurador; 'allí (o inserte un punto de interrupción allí en firebug). De esta forma, solo se te arrojará al depurador cuando ocurra la excepción. – rfunduk

+0

En el contexto de su pregunta, el código 'depurador;' es simplemente lo mismo que insertar un punto de interrupción en Firebug en esa línea. – rfunduk

9

Instalar Firebug 1.6b1 http://getfirebug.com/releases/firebug/1.6X, Firebug> Consola> "la excepción" Haga clic en el selector de punto de interrupción en la columna izquierda. Ejecute su código. Firebug se rompe en esa línea.

O Firebug> Consola> [||] roturas en el próximo error

+3

Si la excepción solo ocurre raramente en una línea de código comúnmente llamada, sin embargo, eso se vuelve molesto muy rápidamente. – pioto

+2

En Firebug 1.7 se llama Track Throw/Catch –

6

llamada Web Developer depurador (Herramientas => Web Developer => Depurador o Ctrl + Shift + S), haga clic en el icono de engranaje y comprobar "Pausa en la excepción":

enter image description here

o ejecutar debugger; en web Developer Console!

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

Cuestiones relacionadas