¿Cómo finalizar la ejecución del script al depurar en Google Chrome?

Resuelto srgstm asked hace 12 años • 12 respuestas

Al recorrer el código JavaScript en el depurador de Google Chrome, ¿cómo finalizo la ejecución del script si no quiero continuar? La única forma que encontré es cerrando la ventana del navegador.

Al presionar "Recargar esta página", se ejecuta el resto del código e incluso envía formularios como si presionara F8 "Continuar".

ACTUALIZAR :

Al presionar F5 (Actualizar) mientras un script está en pausa:

  • Google Chrome (v22) ejecuta el script. Si el script envía una solicitud HTTP, se muestra la respuesta HTTP para esa solicitud. La página original no se actualiza.
  • IE 9 simplemente se congela. Sin embargo, IE tiene una opción "Detener depuración" que, cuando se presiona (siempre que no haya presionado F5 antes), continúa ejecutando el script fuera del depurador.
  • Firebug se comporta de manera idéntica a Chrome.

Cerrar y luego abrir nuevamente la ventana del navegador no siempre es la siguiente forma más fácil porque cerrará el estado de la sesión del navegador y eso puede ser importante. Todos tus puntos de interrupción también se pierden.

ACTUALIZACIÓN (enero de 2014) :

Actualizar durante la depuración:

  • Chrome v31: permite que se ejecuten scripts y se detiene en más puntos de interrupción (pero no envía solicitudes ajax), luego se actualiza.
  • IE 11: la actualización no hace nada, pero puedes presionar F5 para continuar.
  • Firefox v26: permite ejecutar scripts pero no se detiene en más puntos de interrupción, envía solicitudes ajax y luego se actualiza.

¡Qué tipo de progreso!

Navegue a la misma página mientras depura:

  • Chrome v31: igual que Actualizar.
  • IE 11: los scripts finalizan, se inicia una nueva sesión del navegador (lo mismo que cerrar y abrir nuevamente).
  • Firefox v26: no pasa nada.

Además, juacala sugirió una solución alternativa eficaz. Por ejemplo, si está utilizando jQuery, ejecutar eliminar $ desde la consola detendrá la ejecución una vez que se encuentre cualquier método jQuery. Lo probé en todos los navegadores anteriores y puedo confirmar que está funcionando.

ACTUALIZACIÓN (marzo de 2015) :

Finalmente, después de más de 2 años y casi 10.000 visitas, Alexander K dio la respuesta correcta. Google Chrome tiene su propio Administrador de tareas que puede finalizar un proceso de pestaña sin cerrar la pestaña, manteniendo intactos todos los puntos de interrupción y otras cosas.

Incluso fui tan lejos como BrowserStack.com para probarlo en Chrome v22 y descubrí que funcionaba de esta manera incluso en ese momento.

La solución alternativa de Juacala sigue siendo útil al depurar en IE o Firefox.

ACTUALIZACIÓN (enero de 2019) :

Chrome Dev Tools finalmente agregó una forma adecuada de detener la ejecución de scripts, lo cual es bueno (aunque un poco oculto). Consulte la respuesta de James Gentes para obtener más detalles.

srgstm avatar Oct 30 '12 14:10 srgstm
Aceptado

En Chrome, existe el "Administrador de tareas", al que se puede acceder mediante Shift+ ESCo mediante

Menú → Más herramientas → Administrador de tareas

Puede seleccionar la tarea de su página y finalizarla presionando el botón "Finalizar proceso".

Alexander K avatar Dec 03 '2014 01:12 Alexander K

A partir de abril de 2018, puedes detener los bucles infinitos en Chrome :

  1. Abra el panel Fuentes en Herramientas de desarrollador ( Ctrl+ Shift+ I**).
  2. Haga clic en el botón Pausa para pausar la ejecución del script .

Tenga en cuenta también las teclas de acceso directo: F8y Ctrl+\

ingrese la descripción de la imagen aquí

James Gentes avatar Aug 11 '2018 17:08 James Gentes

Actualización de abril de 2020

A partir de Chrome 80, ninguna de las respuestas actuales funciona. No hay un botón "Pausa" visible; debe hacer clic prolongado en el botón "Reproducir" para acceder al ícono Detener:

Detener la ejecución del script en Chrome DevTools

Dan Dascalescu avatar Mar 31 '2020 13:03 Dan Dascalescu

Una forma de hacerlo es pausar el script y observar qué código sigue donde está detenido actualmente, por ejemplo:

var something = somethingElse.blah;

En la consola, haga lo siguiente:

delete somethingElse;

Luego reproduzca el script: causará un error fatal cuando intente acceder somethingElsey el script morirá. Listo, has terminado el guión.

EDITAR: Originalmente, eliminé una variable. Eso no es lo suficientemente bueno. Debe eliminar una función o un objeto del cual JavaScript intenta acceder a una propiedad.

juacala avatar Dec 31 '2013 18:12 juacala