debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

debug_backtraceGenera un rastreo

Descripción

debug_backtrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]] ) : array

debug_backtrace() genera un rastreo de PHP.

Parámetros

options

Desde 5.3.6, este parámetro es una mascara de bits para las siguientes opciones:

debug_backtrace() options
DEBUG_BACKTRACE_PROVIDE_OBJECT Completar el índice "object" o no.
DEBUG_BACKTRACE_IGNORE_ARGS Omitir el índice "args" y por lo tanto todos los argumentos de las funciones/métodos para ahorrar memoria o no.
Antes de 5.3.6, el único valor reconocido es TRUE o FALSE, que es lo mismo que establecer y desestablecer la opción DEBUG_BACKTRACE_PROVIDE_OBJECT.

limit

Desde 5.4.0, este parámetro puede ser usado para limitar el número de stack frames que se muestran. Por defecto (limit=0) imprime todos los stack frames.

Valores devueltos

Devuelve un array de array asociativos. Los posibles elementos devueltos son los siguientes:

Posibles elementos devueltos por debug_backtrace()
Nombre Tipo Descripción
function string El nombre de la función actual. Véase también __FUNCTION__.
line integer El número de línea actual. Véase también __LINE__.
file string El nombre de archivo actual. Véase también __FILE__.
class string El nombre de la clase actual. Véase también __CLASS__
object object El objeto actual.
type string El tipo de llamada actual. Si es una llamada a un método devuelve "->". Si es una llamada a un método estático devuelve "::". Si es una llamada a una función no se devuelve nada.
args array Dentro de una función se lista los argumentos de la función. Dentro de un archvo incluido se lista el nombre (o nombres) del archivo incluido.

Historial de cambios

Versión Descripción
5.4.0 Añadido el parámetro opcional limit.
5.3.6 Se cambió el parámetro provide_object a options y se añadió la opción adicional DEBUG_BACKTRACE_IGNORE_ARGS.
5.2.5 Se añadió el parámetro opcional provide_object.
5.1.1 Se añadió el object actual como posible elemento devuelto.

Ejemplos

Ejemplo #1 Ejemplo de debug_backtrace()

<?php
// nombre de archivo: /tmp/a.php

function una_prueba($str)
{
    echo 
"\nHola: $str";
    
var_dump(debug_backtrace());
}

una_prueba('amigo');
?>

<?php
// nombre de archivo: /tmp/b.php
include_once '/tmp/a.php';
?>

El resultado es similar al siguiente cuando se ejecuta /tmp/b.php:

Hola: amigo
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(10) "una_prueba"
    ["args"]=>
    array(1) {
      [0] => &string(5) "amigo"
    }
}
[1]=>
array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

Ver también