debug_backtrace
En esta página
debug_backtrace
Genera el contexto de depuración
Descripción#
debug_backtrace([int $options], [int $limit]): array
```php
`debug_backtrace` genera un contexto de depuración PHP.
## Parámetros
`options`
Este argumento es una máscara de las siguientes opciones:
| | |
|----|----|
| DEBUG_BACKTRACE_PROVIDE_OBJECT | Si se debe o no poblar el índice "object". |
| DEBUG_BACKTRACE_IGNORE_ARGS | Si se debe o no omitir el índice "args" y por lo tanto todos los argumentos de la función/método para ahorrar memoria. |
Opciones para la función `debug_backtrace`
> [!NOTE]
> Existen cuatro combinaciones posibles:
>
> <table>
> <caption>Opciones de <code>debug_backtrace</code></caption>
> <tbody>
> <tr>
> <td><code>debug_backtrace()</code></td>
> <td rowspan="2">Rellena los dos índices</td>
> </tr>
> <tr>
> <td><code>debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)</code></td>
> </tr>
> <tr>
> <td><code>debug_backtrace(~DEBUG_BACKTRACE_PROVIDE_OBJECT)</code></td>
> <td rowspan="2">Omite el índice <code>"object"</code> y rellena el índice <code>"args"</code>.</td>
> </tr>
> <tr>
> <td><code>debug_backtrace(0)</code></td>
> </tr>
> <tr>
> <td><code>debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)</code></td>
> <td rowspan="2">Omite <em>ambos</em> el índice <code>"object"</code> <em>y</em> el índice <code>"args"</code>.</td>
> </tr>
> <tr>
> <td><code>debug_backtrace(~DEBUG_BACKTRACE_PROVIDE_OBJECT | DEBUG_BACKTRACE_IGNORE_ARGS)</code></td>
> </tr>
> <tr>
> <td><code>debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS)</code></td>
> <td>Rellena el índice <code>"object"</code> <em>y</em> omite el índice <code>"args"</code>.</td>
> </tr>
> </tbody>
> </table>
`limit`
Este argumento puede ser utilizado para limitar el número de marcos en la pila devuelta. Por omisión (`limit`=`0`), la función devuelve todos los marcos de la pila.
## Valores devueltos
Devuelve un array de arrays asociativos. Los elementos de retorno posibles son los siguientes:
| Nombre | Tipo | Descripción |
|----|----|----|
| function | `string` | El nombre de la función actual. Ver también [\_\_FUNCTION\_\_](#language.constants.magic). |
| line | `int` | El número de línea actual. Ver también [\_\_LINE\_\_](#language.constants.magic). |
| file | `string` | El nombre del fichero actual. Ver también [\_\_FILE\_\_](#language.constants.magic). |
| class | `string` | El nombre de la [clase](#language.oop5) actual. Ver también [\_\_CLASS\_\_](#language.constants.magic). |
| object | `object` | El [objeto](#language.oop5) actual si `DEBUG_BACKTRACE_PROVIDE_OBJECT` es proporcionado. |
| type | `string` | El tipo de clase actual. Si un método es llamado, "-\>" es devuelto. Si un método estático es llamado, "::" es devuelto. Si una función es llamada, nada será devuelto. |
| args | `array` | Si dentro de una función, esto lista los argumentos. Si en un fichero incluido, esto lista los ficheros incluidos. A menos que `DEBUG_BACKTRACE_IGNORE_ARGS` sea proporcionado. |
Elementos posibles de retorno de la función `debug_backtrace`
## Ejemplos
Ejemplo con `debug_backtrace`
```php
Resultado de la ejecución de /tmp/b.php:
Hi: friend
array(2) {
[0]=>
array(4) {
["file"] => string(10) "/tmp/a.php"
["line"] => int(10)
["function"] => string(6) "a_test"
["args"]=>
array(1) {
[0] => &string(6) "friend"
}
}
[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"
}
}
Véase también#
trigger_error, debug_print_backtrace