3 visitas

¿Querés ver el stack trace en PHP sin tirar una excepción? Acá te muestro cómo

🧠 ¿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.

📌 Cómo obtener un stack trace en PHP sin lanzar una excepción

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.

🔍 Usando 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.

Alejandro Leone
Backend Developer