# debug_backtrace

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

debug_backtrace — Genera 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

- trigger_error() - Generar un mensaje de error/advertencia/aviso de nivel de usuario
- debug_print_backtrace() - Muestra un rastreo