(PHP 4 >= 4.3.0, PHP 5)
debug_backtrace — Genera un rastreo
$options = DEBUG_BACKTRACE_PROVIDE_OBJECT
   [, int $limit = 0
  ]] )debug_backtrace() genera un rastreo de PHP.
optionsDesde 5.3.6, este parámetro es una mascara de bits para las siguientes opciones:
| 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. | 
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.
      
Devuelve un array de array asociativos. Los posibles elementos devueltos son los siguientes:
| 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. | 
| Versión | Descripción | 
|---|---|
| 5.4.0 | Añadido el parámetro opcional limit. | 
| 5.3.6 | Se cambió el parámetro provide_objectaoptionsy se añadió la
        opción adicionalDEBUG_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. | 
Ejemplo #1 Ejemplo de debug_backtrace()
<?php
// nombre de archvio: /tmp/a.php
function una_prueba($str)
{
    echo "\nHola: $str";
    var_dump(debug_backtrace());
}
una_prueba('amigo');
?>
<?php
// nombre de archvio: /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"
  }
}