web-dev-qa-db-fra.com

Firebug - Le point d'arrêt ne frappe pas

Je suis en train de définir des points d'arrêt dans un fichier JS externe et je n'ai pas réussi à obtenir que Firebug atteigne le point d'arrêt de manière cohérente. Cela fonctionne parfois mais la plupart du temps, cela ne fonctionne pas. Le seul moyen de le faire fonctionner est d'activer "Interrompre toutes les erreurs"

J'ai utilisé le débogueur; déclaration aussi bien sans aucune chance.

38
DotnetDude

Si les numéros de ligne ne sont pas verts, il semble que Firebug ne puisse pas déboguer cette partie du code car elle est hors de portée. Donc, si vous utilisez quelque chose comme $ (function () {...}); Firebug ne pourra pas accéder aux fonctions et aux variables. 

Cela a-t-il du sens? 

En outre, est-il possible qu'une autre fonction ou quelque chose remplace celle que vous essayez de déboguer. C'est même possible si vous incluez le même fichier JS deux fois.

J'espère que cela pourra aider.

15
Eric Wendelin

J'ai rencontré ce problème en essayant de déboguer des pages dans des cadres avec Firebug 1.4. En sélectionnant "Afficher uniquement ce cadre" ou "Ouvrir le cadre dans un nouvel onglet" dans le menu contextuel "Ce cadre", l'actualisation de la page semble rendre les scripts déboguables.

6
Nathan

J'ai aussi ce problème très souvent. J'ai découvert que la réouverture de l'onglet semble aider (les points d'arrêt ne sont pas perdus). Mais "Pause sur toutes les erreurs" semble être le moyen le plus fiable pour rompre.

J'ai rarement quelque chose de bien à propos d'IE, mais dans ce cas, tout se passe bien. Le débogage de JavaScript dans VS ne fonctionne que. Il atteint les points d'arrêt ("débogueur") sans problème et arrête l'exécution de tous les autres codes JavaScript de la page. Je l'utilise donc souvent comme solution de secours.

6
Tsvetomir Tsonev

Firebug affiche-t-il le code dans l'onglet Script avec les numéros de lignes vertes? Cela indique des lignes de code déboguables.

J'ai rencontré ce symptôme où aucun des numéros de ligne n'était parfois vert. Je rafraîchit la page et, comme par magie, ils sont de nouveau verts.

6
spoulson

Est-ce que l'onglet 'Console' sur Firebug affiche des erreurs pour l'un de vos autres JavaScript? J'ai constaté que si des erreurs JavaScript existaient pour du code antérieur à un point d'arrêt de débogage, il ne parviendrait jamais à cette ligne de code tant que les précédentes ne seraient pas corrigées.

3
Ray Vega

J'avais aussi ce problème par intermittence. J'ai sélectionné "désactiver tous les points d'arrêt" et l'option "Activer tous les points d'arrêt" dans la liste déroulante des points d'arrêt et tout a commencé à fonctionner. 

3
KennyD

J'ai passé 1 heure à ce sujet.

J'ai eu une balise <script> comme ceci:

<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript">

Pouvez-vous repérer le problème?

Eh bien, il m'a fallu tout ce temps pour le repérer. Il manque un / pour fermer la balise <script>.

<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript" />

C'est à coup sûr dû à un copier/coller et ensuite à une tentative de modification du code ... Je viens de jouer au fou dans ce cas! :)

Après avoir ajouté le /, j’ai pu obtenir le fonctionnement des points d’arrêt dans Firebug. Ca a du sens.

Enfin, je peux voir ces nombres verts bénis.

2

Juste pour ajouter une autre possibilité à ceux mentionnés.

Celui-ci est survenu alors que j'étais sous pression pour réparer quelque chose en production, naturellement.

J'avais par inadvertance introduit une erreur de syntaxe:

function: myFunc(){}

// function body

}

Juste comme ça. Une erreur s'est produite au début du journal de la console, mais je ne l'ai pas remarquée. Je n'arrêtais pas d'essayer de déboguer ce fichier, mais Firebug n'intervenait pas. 

Donc, si cela vous arrive: vérifiez la console, il y a peut-être une erreur de syntaxe qui court-circuiter le chargement du fichier.

0
mtyson

Même problème avec FF 36 et FB 2.0.8: pas d’erreurs dans la console, le code fonctionne correctement, mais FB affiche le code HTML au lieu de JS, s’arrête à un point d'arrêt debugger mais le montre à une ligne HTML aléatoire, ne s'arrête pas aux points d'arrêt habituels .

Je l'ai résolu en extrayant JS de la page et en le déplaçant dans son propre fichier .

Mais il y avait un problème: lorsque le script résidait dans son propre fichier JS, je ne pouvais pas faire fonctionner les variables "globales" dans FF (cela fonctionnait très bien dans IE quel que soit le code), même en utilisant window.varName syntaxe. Nous avons donc terminé le débogage dans FB à partir d'un fichier séparé, mais rétabli en ligne pour la production.

0
ajeh

Pour moi, cela a fonctionné après avoir supprimé tous les appels document.write().

0
KIT-Inwi

J'ai eu ce problème également. Peut-être liée à la réponse de KIT-Inwi ... Mais je générais des lignes aléatoires en utilisant PHP à chaque chargement de page. 

Firebug semble se souvenir du numéro de ligne de la page HTML entière pour mettre le point d'arrêt à, pas nécessairement la ligne du code Javascript, ce qui signifie que le numéro de ligne sur lequel vous avez placé le point d'arrêt sur cette page ne sera pas nécessairement la même ligne de code la prochaine fois que vous le chargez, le point d'arrêt semblera alors "sauter".

Je ne sais pas comment vous pourriez le résoudre avec un contenu dynamique qui change à chaque fois, mais je l'ai corrigé en supprimant les lignes aléatoires afin que la ligne avec le point d'arrêt soit la même à chaque chargement de page.

0
colmde