¿Puedo decirle al depurador de scripts de Chrome que ignore jquery.js?

98

¿Hay alguna forma de decirle al depurador de Chrome (¿o tal vez a Firebug?) Que no se rompa dentro de ciertos archivos? ¿Asumir que no están rotos, esencialmente? Esto parece algo que podrían incorporar.

Josh Schultz
fuente
3
Esto me resultaría particularmente útil en el contexto de eventos de jquery. Cuando se desencadena un evento, debe pasar por un montón de basura para averiguar qué controladores se están invocando.
tofarr
Parece que deberías marcar jfriend00 como la respuesta. No pude encontrar la razón de ese comportamiento molesto, y su respuesta lo resolvió.
OrPaz
@OrPaz No estoy de acuerdo, mi problema (y mi comprensión del problema de Josh) es que estamos depurando nuestro archivo, sin embargo, esto no significa que se esté lanzando una excepción. Mi suposición es que mi código es el problema y no el de jQuery, por lo que nunca quiero depurar jQuery. Pienso en ello como el DebuggerHiddenAttribute en .NET
Nathan Koop
Voté a favor la respuesta de jfriend00, porque podría ser valiosa para las personas que se encuentran con esta pregunta, pero no la marqué como la respuesta correcta, porque Nathan Koop tiene razón, no resuelve mi problema.
Josh Schultz

Respuestas:

47

Los archivos JS de Blackboxing ahora es posible en Firefox https://developer.mozilla.org/en-US/docs/Tools/Debugger

Y en Chrome Canary con herramientas de desarrollo experimental. http://www.divshot.com/blog/tips-and-tricks/ignoring-library-code- while-debugging-in-chrome/

Actualizar . En Chrome v. 75 hay una pestaña separada para blackboxing .

Lo anterior también funciona en la versión estable de Chrome.

Nirmal Patel
fuente
7
El blackboxing no parece hacer que el depurador omita el archivo. Todavía pasará por sus llamadas de función ... Ignorar completamente un archivo sería bueno.
Antonio Brandao
4
Ese es el punto en el blackboxing: ejecutar el código sin ver su contenido.
diynevala
1
No es una caja negra cuando simplemente no pasa por las otras bibliotecas, no es que no existan o no se estén utilizando.
johnny
enlace actualizado para
Firefox
31

La última versión de Chrome ha implementado una nueva función de caja negra que hace exactamente lo que estás buscando. Básicamente, cuando configura la opción de caja negra en un archivo determinado, evitará que el depurador de Chrome ingrese a ese archivo.

Esta función está incorporada y se puede configurar con el menú contextual del archivo (clic derecho). También funcionará si el depurador de Chrome está configurado para detenerse en todas las excepciones.

El_Pitufo_Negro
fuente
2
Solución muy limpia No se necesitan complementos.
George Botros
3
Desafortunadamente ya no funciona. Si tiene marcada la opción "Pausar en excepciones detectadas" y luego selecciona jQuery en la caja negra, aún se interrumpirá en las excepciones.
blackmamba
15

Si el problema que tiene es que el depurador de Chrome se detiene en todas las excepciones, incluso las que están dentro de jQuery, es posible que deba decirle a Chrome que solo se detenga en las excepciones no detectadas, no en todas las excepciones. Cuando está en el panel Script en el depurador, hay un icono en la esquina inferior izquierda de la ventana que lo controla.

jfriend00
fuente
¡Me salvó con esto! ¡Gracias! (+ 1)
OrPaz
12

En Chrome, abra Herramientas de desarrollo, luego vaya a Configuración y verá la pestaña Caja negra:

Caja negra cromada

En FireFox es aún más fácil, simplemente haga clic en el Ojo en la parte inferior del archivo:

FireFox Blackbox

sMyles
fuente
¡Acabas de hacer de mi vida el paraíso! ¡Gracias!
No sé
7
  1. Vaya a la configuración de herramientas de desarrollador y haga clic en la pestaña Balckboxing en el panel izquierdo.
  2. Luego haga clic en el botón Agregar patrón y escriba jquery.js
  3. Cierre y vuelva a abrir las herramientas de desarrollo, ¡ahora se omitió!
Mahmood Asadi
fuente
2

Si el depurador está explotando en algún lugar de los archivos jQuery, podría envolver las llamadas sospechosas en un try / catch y luego lanzar un error en el suyo. catch . De esa manera, puede aislar exactamente dónde está yendo mal.

Estaría más inclinado a hacer seguimientos de pila para ver por qué mi código está explotando, por ejemplo, JSON inválido, que intentar pasarlo por alto.

Kelly Sutton
fuente