¿Qué es Debugging?
- breakpoints
Ejemplo práctico
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("Hello world")
});
app.listen(3000);
create launch.json
ve en el buttong debug, y crear un archivo launch.json
- create a launch.json file
guarda el archivo por defecto, y luego ejecuta el debug con el boton verde de la barra lateral.
- Launch Program
Otra forma de ejecutar tambien es presionando F1 y luego Debug npm script y seleccionando start
Usando el panel podemos hacer lo siguiente
- Step over, avanzar una instruccion
- Reset, volver a ejcutar la aplicacion
- Disconectar el debuger
Breakpoint
crea un brekapoint
const express = require("express");
const app = express();
app.get("/", (req, res) => {
req.author = 'fazt';
res.send("Hello world");
});
app.listen(3000);
para haer un detach puedes presionar las teclas: shift + f5
inspect
basicamente cuando lanzamos nuestro proyecto usando el debuger de vscode inmediatamente la aplicacion se ejecuta en el modo debugging, pero que pasa si queremos ejecutar la aplicacion normalmente pero despues si lo necesitamos añadir el debugger. para esto sirve el argumento de node llamado inspect
node --inpect server.js
basicament lo que esto hace es que ejecuta la aplicacion y ejecuta un servidor de websockets para el debugger. Lo que tenemos que hacer desde Vscode para poder debugear este proceso, es que desde Vscode ve a la seccion Debug, y ejecuta addConfiguration y escoge: Nodejs Attach.
luego desde la barra lateral escoge, Attach y ejecuta el debugger.
tambien puedes presionar F1, y luego seleccionar la opcion: Attach to Node Process
inspect-brk
inspect tiene una variacion llamada break, inspect-brk lo que esto hace es que la aplicacion se ejecuta pero para en la primera linea y solo empezara si ejecuto (attach) un debugger. esto es exactamente lo mismo que hace el archivo launch solo que usando un proceso manual.
package.json
"debug": "node --inspect server.js"
es muy comun usar
Usando Google Chrome
usando el comando inspect, podemo usar vscode como cliente para debuggear, pero esto no se limita a vscode, otra forma de debugear es usando Google Chrome.
si visitas: chrome://inspect
lo que hara chrome es buscar todos los debuggers ejecutandose en tu computador y los listarra para que puedas conectarte (hacer attach) a ellos.
- Terminal
- Sources, tienes que otorgar permisos para que chrome pueda leer los archivos.
- Memory
- CPU profiler
las funcionalidades son las mismas basicmaente que vscode:
- tienes un panel para avanzar, reiniciar, el proceso de debugging
- puedes crear breakpoints
pero su venaja principal estaria en la pestaña Memrory y CPU Profiler.
tambien tienes una opcion para escoger otros proceso sen open node devtools en google chrome.