🧠 ¿Querés ver el stack trace en PHP sin tirar una excepción? En esta nota te muestro cómo usar debug_backtrace() y debug_print_backtrace() para obtener el flujo de ejecución sin necesidad de lanzar errores.
A veces necesitamos obtener el stack trace de ejecución en PHP, pero sin tener que lanzar una excepción. Ya sea para debuggear, loguear o simplemente entender cómo llegamos a cierta parte del código, PHP nos da las herramientas para hacerlo de forma nativa y sencilla.
debug_backtrace()
La función debug_backtrace()
devuelve un array detallado del stack actual de llamadas. Acá un ejemplo bien simple:
function mostrarTrace(): void {
$trace = debug_backtrace();
foreach ($trace as $item) {
echo "Archivo: {$item['file']} - Línea: {$item['line']} - Función: {$item['function']}" . PHP_EOL;
}
}
function funcionIntermedia(): void {
mostrarTrace();
}
function inicio(): void {
funcionIntermedia();
}
inicio();
Este código va a imprimir algo como:
Archivo: /ruta/archivo.php - Línea: 3 - Función: mostrarTrace
Archivo: /ruta/archivo.php - Línea: 10 - Función: funcionIntermedia
Archivo: /ruta/archivo.php - Línea: 13 - Función: inicio
Esto imprime directamente el trace en el output, sin necesidad de formatearlo manualmente.
Me dedico a crear soluciones web eficientes y a compartir mi conocimiento con la comunidad de desarrolladores.