Empieza con Tracy
Ve la excepción, la pila de llamadas, las consultas, el routing y los eventos de toda la petición. Usa ese contexto para encontrar la parte del sistema que merece la pena investigar.
Alpha · Moodle 4.5+
Una barra de depuración y pantalla azul de Tracy para desarrolladores de Moodle. Entiende toda la petición - desde una pila de llamadas fallida hasta las consultas SQL y los observadores de eventos.
Solo administradores por defecto · secretos ocultos · GPL-3.0-or-later
Pasé dos años como desarrollador junior de Nette y me acostumbré a Tracy y a la experiencia de desarrollo del ecosistema Nette. Al pasar a desarrollar en Moodle, eché en falta esa visibilidad: las páginas de error estándar a menudo no daban suficiente contexto para entender toda la petición.
Conocía bien Tracy, así que primero traje su pantalla azul a Moodle. Luego empecé a añadir paneles específicos de Moodle para routing, usuarios, sesiones, consultas de base de datos, eventos y observadores. Ese experimento gradual se convirtió en tool_tracy.
Resuelven partes distintas del mismo problema de depuración y funcionan bien juntos.
Ve la excepción, la pila de llamadas, las consultas, el routing y los eventos de toda la petición. Usa ese contexto para encontrar la parte del sistema que merece la pena investigar.
Pon un punto de interrupción en el código sospechoso, ejecútalo paso a paso e inspecciona las variables mientras cambian. Tracy acorta el camino hasta el punto de interrupción correcto; no sustituye a Xdebug.
Sin volcados temporales repartidos por el código ni una ventana de log separada para la primera pasada.
El panel de base de datos combina los totales de la petición con una tabla opcional por consulta. Las consultas lentas se resaltan, y las que se repiten cinco o más veces se agrupan con su tiempo combinado.
Inspecciona qué eventos de Moodle se dispararon durante la petición y qué observadores, del núcleo o de terceros, invocaría Moodle para cada clase de evento.
Método, ruta, tipo de página, layout, contexto y curso, además de los parámetros GET filtrados.
Un volcado filtrado del usuario actual con los indicadores de sesión iniciada, invitado y administrador.
Contenido de la sesión filtrado, mientras que el ID de sesión real permanece siempre oculto.
La página de error de Moodle ofrece la información esencial del fallo. Tracy añade argumentos expandibles y paneles a nivel de petición cuando necesitas investigar más.
La salida de depuración puede exponer detalles internos de la aplicación. El plugin trata ese riesgo como una restricción de diseño.
La ruta de activación estándar limita la barra y la pantalla azul a los administradores del sitio por defecto.
Las claves reales de $CFG y los valores que parecen sensibles se ocultan, incluida la salida producida con el bdump() protegido.
Una base de datos copiada no lleva en silencio un depurador activo a una URL de sitio diferente.
Requiere Moodle 4.5 o posterior. Tracy viene incluido con el plugin, así que Moodle no necesita Composer en tiempo de ejecución.
admin/tool/tracy de Moodle.git clone https://github.com/Krejcir6/moodle-tool_tracy.git \
admin/tool/tracy
git clone https://github.com/Krejcir6/moodle-tool_tracy.git \
public/admin/tool/tracy
Software alpha: revisa las limitaciones conocidas antes de adoptarlo. El listado opcional por consulta también requiere el parche de núcleo de Moodle documentado, solo para desarrollo.
No. Tracy te da una visión a nivel de petición; Xdebug es la herramienta más potente para puntos de interrupción y ejecución línea a línea. Se complementan.
Sí. La pantalla azul y todos los paneles estándar funcionan sin parchear el núcleo. Solo la tabla detallada por consulta SQL necesita el parche de desarrollo opcional de una línea; los contadores agregados de base de datos están disponibles sin él.
No. La barra de depuración solo se muestra en páginas HTML completas. Con la configuración por defecto de propiedad del manejador de errores (manejadores de Moodle), las respuestas JSON de error de Moodle para las llamadas AJAX no se tocan; cambiar a los manejadores de Tracy solo afecta a las peticiones de página normales, no a AJAX.
Es una herramienta de desarrollo y debe permanecer desactivada en producción. Sus valores por defecto y el filtrado reducen el riesgo, pero cualquier depurador puede exponer detalles internos de la aplicación.
Moodle 4.5 o posterior, con PHP 8.1+ (la versión incluida de Tracy 2.10 soporta PHP 8.0-8.4). Moodle 5.1+ trasladó el código accesible desde la web a un directorio public/, así que el plugin y la línea de config.php van en public/admin/tool/tracy y public/... en lugar de las rutas clásicas.
La política de librerías de terceros de Moodle favorece dependencias incluidas y declaradas para los plugins. La versión de Tracy incluida está fijada y documentada en thirdpartylibs.xml.