Puis-je dire au débogueur de script Chrome d'ignorer jquery.js?

98

Existe-t-il un moyen de dire au débogueur Chrome (ou peut-être à Firebug?) De ne pas casser dans certains fichiers? Pour supposer qu'ils ne sont pas cassés, essentiellement? Cela semble être quelque chose qu'ils pourraient intégrer.

Josh Schultz
la source
3
Cela me serait particulièrement utile dans le cadre d'événements jquery. Lorsqu'un événement est déclenché, vous devez parcourir beaucoup de choses pour déterminer quels gestionnaires sont appelés.
tofarr
Il semble que vous devriez marquer jfriend00 comme réponse. Je n'ai pas pu trouver la raison de ce comportement ennuyeux, et sa réponse l'a résolu.
OrPaz
@OrPaz Je ne suis pas d'accord, mon problème (et ma compréhension du problème de Josh) est que nous débogageons notre fichier, mais cela ne signifie pas qu'une exception est levée. Mon hypothèse est que mon code est le problème et non celui de jQuery, donc je ne veux jamais déboguer jQuery. Je pense à cela comme le DebuggerHiddenAttribute dans .NET
Nathan Koop
J'ai voté pour la réponse de jfriend00, car elle pourrait être utile aux personnes qui rencontrent cette question, mais je ne l'ai pas marquée comme la bonne réponse, car Nathan Koop a raison, cela ne résout pas mon problème.
Josh Schultz

Réponses:

47

Blackboxing des fichiers JS est désormais possible dans Firefox https://developer.mozilla.org/en-US/docs/Tools/Debugger

Et dans Chrome Canary à l'aide des outils de développement expérimental. http://www.divshot.com/blog/tips-and-tricks/ignoring-library-code- while-debugging-in-chrome/

Mettre à jour . Dans Chrome v. 75 il y a un separabe onglet pour blackboxing .

Ci-dessus fonctionne également dans la version stable de Chrome.

Nirmal Patel
la source
7
La Blackboxing ne semble pas obliger le débogueur à ignorer le fichier. Il passera toujours par ses appels de fonction ... Ignorer complètement un fichier serait bien.
Antonio Brandao
4
C'est le but de la blackboxing - exécuter le code sans voir son contenu.
diynevala
1
N'est-ce pas de la blackboxing quand vous ne parcourez tout simplement pas les autres bibliothèques, pas qu'elles n'existent pas ou qu'elles ne sont pas utilisées.
johnny
lien mis à jour pour Firefox: developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/…
pcarvalho
31

La dernière version de Chrome a mis en œuvre une nouvelle fonctionnalité de boîte noire qui fait exactement ce que vous recherchez. Fondamentalement, lorsque vous définissez l'option boîte noire sur un fichier donné, cela empêchera le débogueur Chrome de pénétrer dans ce fichier.

Cette fonctionnalité est intégrée et peut être définie avec le menu contextuel du fichier (clic droit). Cela fonctionnera également si le débogueur Chrome est configuré pour s'arrêter sur toutes les exceptions.

Le_Black_Smurf
la source
2
Solution très propre Aucun plug-in nécessaire.
George Botros
3
Ne fonctionne plus malheureusement. Si vous avez coché "Pause On Caught Exceptions", puis blackbox jQuery, il se cassera toujours sur les exceptions.
blackmamba
15

Si le problème que vous rencontrez est que le débogueur Chrome s'arrête sur toutes les exceptions, même celles à l'intérieur de jQuery, vous devrez peut-être dire à Chrome de ne mettre en pause que les exceptions non interceptées, pas toutes les exceptions. Dans le panneau Script du débogueur, il y a une icône dans le coin inférieur gauche de la fenêtre qui contrôle cela.

jfriend00
la source
M'a sauvé avec ça! Merci! (+ 1)
OrPaz
12

Dans Chrome, ouvrez les outils de développement, puis accédez aux paramètres, et vous verrez l' onglet Blackbox :

Boîte noire chromée

Dans FireFox, c'est encore plus facile, il suffit de cliquer sur l'oeil au bas du fichier:

Boîte noire FireFox

sMyles
la source
Vous venez de faire de ma vie le paradis! Merci!
Je ne sais pas
7
  1. Accédez aux paramètres des outils de développement et cliquez sur l'onglet Balckboxing dans le panneau de gauche.
  2. Cliquez ensuite sur le bouton Ajouter un modèle et tapez jquery.js
  3. Fermez et rouvrez les outils de développement, maintenant c'est ignoré!
Mahmood Asadi
la source
2

Si le débogueur explose quelque part dans les fichiers jQuery, vous pouvez potentiellement encapsuler les appels suspects dans un try / catch, puis lancer une erreur dans le vôtre catch. De cette façon, vous pouvez isoler exactement où vous allez mal.

Je serais plus enclin à faire des traces de pile pour voir pourquoi mon code explose, par exemple JSON invalide, que d'essayer de le passer en revue.

Kelly Sutton
la source