Volver al blog PHP

Ver el stack trace en PHP sin tirar una excepci贸n

C贸mo obtener el stack trace en PHP sin lanzar una excepci贸n.

15 marzo 2025
laravel

馃搶 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.