266 votes

Comment mettre fin à l'exécution du script lors du débogage dans Google Chrome ?

Lorsque je parcours le code JavaScript dans le débogueur de Google Chrome, comment puis-je mettre fin à l'exécution du script si je ne veux pas continuer ? Le seul moyen que j'ai trouvé est de fermer la fenêtre du navigateur.

En appuyant sur "Recharger cette page", on exécute le reste du code et on soumet même les formulaires comme si on appuyait sur F8 "Continuer".

UPDATE :

Lorsque vous appuyez sur F5 (Rafraîchir) alors qu'un script est en pause :

  • Google Chrome (v22) exécute le script. Si le script soumet une requête HTTP, la réponse HTTP pour cette requête est affichée. La page originale n'est pas rafraîchie.
  • IE 9 se fige. Cependant, IE dispose d'une option "Stop Debugging" qui, lorsqu'elle est pressée (à condition que vous n'ayez pas appuyé sur F5 auparavant), continue à exécuter le script en dehors du débogueur.
  • Firebug se comporte de manière identique à Chrome.

Fermer puis rouvrir la fenêtre du navigateur n'est pas toujours le moyen le plus simple de le faire parce que cela va tuer l'état de la session du navigateur et cela peut être important. Tous vos points d'arrêt sont également perdus.

MISE À JOUR (janvier 2014) :

Rafraîchir pendant le débogage :

  • Chrome v31 : laisse scripts s'exécuter et s'arrête sur d'autres points d'arrêt (mais ne soumet pas de requêtes ajax), puis rafraîchit.
  • IE 11 : le rafraîchissement ne fait rien, mais vous pouvez appuyer sur F5 pour continuer.
  • Firefox v26 : laisse scripts s'exécuter mais ne s'arrête pas sur d'autres points d'arrêt, soumet des requêtes ajax, puis rafraîchit.

Une sorte de progrès !

Naviguez vers la même page pendant le débogage :

  • Chrome v31 : même chose que Refresh.
  • IE 11 : scripts sont terminés, une nouvelle session du navigateur est lancée (identique à la fermeture et à la réouverture).
  • Firefox v26 : rien ne se passe.

Aussi juacala a suggéré une solution de contournement efficace. Par exemple, si vous utilisez jQuery, exécuter supprimez le $ de la console arrêtera l'exécution dès qu'une méthode jQuery sera rencontrée. Je l'ai testé dans tous les navigateurs ci-dessus et je peux confirmer que cela fonctionne.

MISE À JOUR (mars 2015) :

Enfin, après plus de 2 ans et près de 10 000 consultations, la bonne réponse a été donnée par Alexander K. Google Chrome possède son propre gestionnaire de tâches qui permet de tuer un processus d'onglet. sin fermer l'onglet lui-même, en conservant tous les points d'arrêt et autres éléments intacts.

Je suis même allé jusqu'à BrowserStack.com pour le tester dans Chrome v22 et j'ai constaté que cela fonctionnait de cette façon même à cette époque.

La solution de rechange de Juacala reste utile pour le débogage dans IE ou Firefox.

MISE À JOUR (janvier 2019) :

Chrome Dev Tools a enfin ajouté un moyen approprié d'arrêter l'exécution de script, ce qui est bien (bien qu'un peu caché). Reportez-vous à la réponse de James Gentes pour plus de détails.

5voto

theFreedomBanana Points 1166

Se référant à la réponse donnée par @scottndecker à la question suivante question Dans la section Outils de développement, Chrome propose désormais une option permettant de désactiver JavaScript :

  • Vertical ... en haut à droite (dans le menu Outils du développeur, pas dans le menu principal de Chrome)
  • Paramètres (dans les versions les plus récentes de Chrome, il est visible séparément sous la forme d'une roue dentée, à côté de l'écran d'accueil). ... et non sous le bouton)
  • Sous "Préférences", allez dans la section "Débogueur" tout en bas et sélectionnez "Désactiver JavaScript".

L'avantage, c'est que vous pouvez l'arrêter et le relancer en le cochant/décochant.

3voto

Bonne question. Je pense que vous ne pouvez pas mettre fin à l'exécution du script. Bien que je ne l'ai jamais cherché, j'utilise le débogueur de chrome depuis assez longtemps au travail. Je fixe généralement des points d'arrêt dans mon code javascript, puis je débogue la portion de code qui m'intéresse. Lorsque je finis de déboguer ce code, j'exécute généralement le reste du programme ou je rafraîchis le navigateur.

Si vous voulez empêcher le reste du script d'être exécuté (par exemple en raison d'appels AJAX qui vont être faits) la seule chose que vous pouvez faire est de supprimer ce code dans la console à la volée, empêchant ainsi l'exécution de ces appels. vous pourrez alors exécuter le reste du code sans problème.

J'espère que cela vous aidera !

P.S : J'ai essayé de trouver une option pour terminer l'exécution dans certains tutoriels / guides comme ceux qui suivent, mais je ne l'ai pas trouvée. Comme je l'ai dit auparavant, il est probable que cette option n'existe pas.

http://www.codeproject.com/Articles/273129/Beginner-Guide-to-Page-and-script-Debugging-with-C

http://www.nsbasic.com/app/tutorials/TT10.htm

2voto

Abhi Points 1021

Vous pouvez faire une pause sur n'importe quel modèle XHR, ce que je trouve très utile lors du débogage de ce type de scénarios.

Par exemple, j'ai donné un point d'arrêt sur un modèle d'URL contenant "/".

enter image description here

0voto

user1863152 Points 11

Si vous avez une boucle rebelle, mettez le code en pause dans le débogueur de Google Chrome (le petit " || "dans l'onglet Sources).

Revenez à Chrome lui-même, ouvrez le "Gestionnaire des tâches" ( Shift + ESC ), sélectionnez votre onglet, cliquez sur le bouton "End Process".

Vous obtiendrez le message Aww Snap et vous pourrez alors recharger ( F5 ).

Comme d'autres l'ont fait remarquer, le rechargement de la page au moment de la pause équivaut à un redémarrage de la boucle rebelle et peut provoquer des blocages désagréables si le débogueur se bloque également (dans certains cas, il faut redémarrer Chrome, voire le PC). Le débogueur a besoin d'un bouton "Stop". Nb : La réponse acceptée n'est pas à jour dans la mesure où certains de ses aspects sont maintenant apparemment faux. Si vous votez contre moi, veuillez expliquer :) .

-1voto

Todd Points 87

Ouvrez l'onglet source dans 'Developer Tools', cliquez sur un numéro de ligne dans un script en cours d'exécution, cela créera un point d'arrêt et le débogueur s'y arrêtera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X