Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

197
Vistas
cómo iniciar programáticamente un cambio (realizado por el usuario) al modo de depuración en Chrome

En Firefox puedo hacerlo, desde mi programa JavaScript de ejecución prolongada (que se ejecuta en una pestaña sin herramientas de desarrollo abiertas):

 alert("while this alert is still on, open Dev Tools (Shift-Ctrl-I) to hit a breakpoint as soon as you hit ok"); debugger;

y funciona como se esperaba, es decir, si abro manualmente las herramientas de desarrollo mientras la ventana de alerta aún está abierta, el programa se detiene en el depurador tan pronto como cierro la alerta.

En Chrome esto no funciona. Intenté eval('depurador') en lugar de solo depurador, pero eso tampoco funciona. ¿Hay alguna alternativa para Chrome? Tal vez en forma de extensión (siempre y cuando no tenga sobrecarga de tiempo de ejecución).

Ejecutar el programa con Dev Tools abierto desde el principio no es una opción, ya que tiene un gran impacto en el rendimiento (el programa es dos o tres veces más lento), por lo que quiero poder alternar (cuando haya terminado depuración, quiero reanudar y cerrar las herramientas de desarrollo; idealmente, la sesión de depuración también debería permitir editar y continuar, pero esa es otra lata de gusanos).

Esencialmente, lo que necesito es un punto de interrupción sin gastos generales para Chrome

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esta no es una solución general a la pregunta que hice, pero funciona para mi caso particular, así que la comparto aquí. Por un lado, aclara un poco la mecánica de por qué no funciona en Chrome tal cual, por otro lado, podría ayudar a otros que también ejecutan código dentro de los generadores.

Mientras intentaba ver si una segunda alerta podría ayudar, noté que, aunque había iniciado las herramientas de desarrollo durante la primera alerta, el panel de fuentes todavía estaba en blanco cuando la página se detuvo durante la segunda alerta. Esto me hizo pensar que el control no había regresado al navegador, por lo tanto, la fuente (más precisamente, el depurador de herramientas de desarrollo) aún no estaba activa, no hasta que la evaluación actual hubiera seguido su curso, y es por eso que se ignoró la declaración del depurador. Probé esa hipótesis y, de hecho, usando

 alert("while this alert is still on, open Dev Tools (Shift-Ctrl-I) to hit a breakpoint as soon as you hit ok"); setTimeout(function run () { debugger; });

También hice que Chrome pausara el depurador. Por supuesto, la pausa en realidad no ocurre de inmediato, solo ocurre después del hecho (después de la última declaración en el script), de forma asíncrona con la ejecución del script, pero para mí esto es lo suficientemente bueno, dado que mi código se ejecuta dentro de los generadores. el bucle de ejecución principal del programa se parece a:

 setTimeout(function run () { generator.next(); setTimeout(run); });

Entonces, en los lugares donde quiero cambiar al modo de depuración, simplemente puedo hacer:

 alert("while this alert is still on, open Dev Tools (Shift-Ctrl-I) to hit a breakpoint as soon as you hit ok"); yield; debugger;

Dado que de todos modos sigue una interrupción en el programa, el hecho de que el programa haga un rendimiento adicional al navegador/llame a setTimeout es irrelevante, y cuando el programa eventualmente (dentro de la siguiente invocación del generador next()) se detiene en el depurador, está en el estado correcto (sincrónico).

about 4 years ago · Juan Pablo Isaza Denunciar

0

También puede llamar a console.log(1). La consola generará un campo de 1 Luego haga clic a la izquierda ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda