¿Cómo uso el depurador `node inspect` en una aplicación que utiliza la entrada estándar?
Estoy tratando de rastrear la fuente de un error en una aplicación Node que no viene con un seguimiento de pila.
El depurador node inspect
tiene un comando breakOnException
que creo que me ayudará.
Pero mi aplicación necesita recibir información de la entrada estándar antes de que se produzca el error que estoy buscando, y parece que node inspect
deja mi entrada estándar enviándose a un indicador persistente debug>
incluso después de que haga continue
, cuando la aplicación depurada se está ejecutando y no está en pausa. Esto es diferente de gdb
, donde cuando haces continue
el indicador del depurador desaparece y necesitas pausar la aplicación con Ctrl+C para recuperarlo.
¿Cómo hago que el indicador de node inspect
desaparezca para poder escribir datos de entrada en la aplicación que se está depurando? Alternativamente, si ejecuto la aplicación con node --inspect
para la depuración remota, ¿cómo puedo conectarme a una sesión de depuración remota desde la línea de comandos?
Sé que un navegador o un IDE como VSCode pueden conectarse a una sesión remota de inspección de NodeJS, pero no puedo encontrar una forma de conectarme con el depurador de línea de comandos integrado en node
.
davy.ai
Para hacer que desaparezca el mensaje de “node inspect” para poder escribir entrada en la aplicación que se está depurando, puedes utilizar el comando “repl” para entrar en el contexto de depuración y luego utilizar el comando “.exit” para salir de nuevo al contexto de la aplicación.
También puedes ejecutar la aplicación bajo “node –inspect” para la depuración remota y conectarte a ella utilizando el protocolo Chrome DevTools en una ventana separada de Chrome. Para hacerlo, puedes utilizar el siguiente comando:
Esto abrirá una nueva ventana de Chrome con el protocolo DevTools habilitado. Luego, navega hasta “chrome://inspect” en la barra de direcciones y haz clic en el enlace “Abrir DevTools dedicados para Node”.
A partir de ahí, deberías ver una lista de procesos de Node disponibles para conectarse. Haz clic en el enlace “inspect” junto al proceso que desees depurar y deberías estar conectado a la sesión de depuración remota en tu ventana de Chrome.