10. Depuración Profesional (Debugging): Breakpoints, Watch, Call Stack y launch.json
Reemplaza el uso rudimentario de var_dump y console.log por puntos de interrupción condicionales, Logpoints e inspección de memoria en vivo.
¿Por qué Dejar Atrás el Abuso de var_dump() y console.log()?
Cuando ocurre un error lógico en un cálculo de carrito de compras o en una llamada a la base de datos, el hábito de principiante es llenar el archivo de var_dump($variable); die(); o console.log(), guardar, recargar y luego olvidar borrarlos antes de subir a producción. El Depurador Integrado de VS Code (Ctrl+Shift+D) te permite pausar el programa en el instante exacto del fallo y explorar todas las variables en memoria en tiempo real.
Diagrama 10.1: Las 4 etapas del debugging: Breakpoint (F9) ➔ Iniciar sesión (F5) ➔ Controles de paso (F10/F11) ➔ Inspección de Variables y Call Stack.
Los 3 Tipos de Puntos de Interrupción (Breakpoints)
| Tipo de Breakpoint | Cómo Crearlo | Cuándo Utilizarlo |
|---|---|---|
| Breakpoint Estándar (Punto Rojo) | Clic izquierdo a la izquierda del número de línea o tecla F9. |
Detiene la ejecución siempre que el programa pase por esa línea. |
| Conditional Breakpoint (Condicional) | Clic derecho en el margen ➔ Add Conditional Breakpoint... | En un bucle de 1,000 iteraciones, detiene el código únicamente cuando se cumple una condición (ej. $id === 482 o precio < 0). |
| Logpoint (Diamante Rosa) | Clic derecho en el margen ➔ Add Logpoint... | Imprime un mensaje como Usuario: {$userId} en la consola de depuración sin pausar el programa y sin tocar el archivo original. |
⚡ Configuración de Depuración para JavaScript (Chrome) y PHP (Xdebug) en launch.json
Archivo .vscode/launch.json que permite iniciar la depuración presionando F5 tanto en el navegador como en el servidor PHP.
{
// Guarda este archivo en .vscode/launch.json y presiona F5 para iniciar el depurador
"version": "0.2.0",
"configurations": [
{
"name": "Depurar Frontend en Google Chrome",
"type": "pwa-chrome",
"request": "launch",
"url": "http://localhost:8000",
"webRoot": "${workspaceFolder}/public"
},
{
"name": "Escuchar Xdebug para PHP (Puerto 9003)",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/html": "${workspaceFolder}"
}
},
{
"name": "Ejecutar y Depurar Script PHP Actual en CLI",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 0,
"runtimeArgs": [
"-dxdebug.start_with_request=yes"
],
"env": {
"XDEBUG_MODE": "debug,develop"
}
}
]
}
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lecciónDurante una sesión de depuración activa en VS Code (cuando la ejecución está pausada en un Breakpoint), ¿cuál es la diferencia entre presionar F10 (Step Over) y presionar F11 (Step Into)?
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Visual Studio Code & GitHub Copilot Profesional y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.