debug_backtrace

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

debug_backtraceGenera el contexto de depuración

Descripción

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

debug_backtrace() genera un contexto de depuración PHP.

Parámetros

options

Este argumento es una máscara de las siguientes opciones:

Opciones para la función debug_backtrace()
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.

Nota:

Existen cuatro combinaciones posibles:

Opciones de debug_backtrace()
debug_backtrace() Rellena los dos índices
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)
debug_backtrace(1)
debug_backtrace(0) Omite el índice "object" y rellena el índice "args".
debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) Omite el índice "object" y el índice "args".
debug_backtrace(2)
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS) Rellena el índice "object" y omite el índice "args".
debug_backtrace(3)

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:

Elementos posibles de retorno de la función debug_backtrace()
Nombre Tipo Descripción
function string El nombre de la función actual. Ver también __FUNCTION__.
line int El número de línea actual. Ver también __LINE__.
file string El nombre del fichero actual. Ver también __FILE__.
class string El nombre de la clase actual. Ver también __CLASS__.
object object El objeto actual.
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.

Ejemplos

Ejemplo #1 Ejemplo con debug_backtrace()

<?php
// filename: /tmp/a.php

function a_test($str)
{
echo
"\nHi: $str";
var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// filename: /tmp/b.php
include_once '/tmp/a.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"
    }
}

Ver también