A função debug_backtrace() é uma função embutida no PHP que geralmente é usada por programadores em depuração. O principal trabalho da função debug_backtrace() é gerar o backtrace do PHP, ou seja, examinar o rastreamento da pilha. Ele retorna uma array de array associada do código PHP de backtrace. Todos os elementos retornados possíveis por esta função são -

Nome

Modelo

Descrição

funçãofragmentoNome da função na qual a função debug_backtrace() está sendo chamada.
linhainteiroNúmero da linha atual da chamada de função.
ArquivofragmentoNome do arquivo onde a função debug_backtrace() foi chamada.
classefragmentoNome da classe onde a função debug_backtrace() foi chamada.
objetoobjetoNome do objeto que foi usado para evocar a função de membro na qual a função debug_backtrace() está presente.
modelofragmentoO tipo de chamada atual. Se o tipo de chamada atual for chamada de método, “->” será retornado. Se for uma chamada de método estático, “::” será retornado e se for uma chamada de função, nada será retornado.
argsvariedadeLista dos argumentos presentes na definição da função. Se a função debug_backtrace() for usada no arquivo, todos os arquivos incluídos nela serão retornados. 

Sintaxe:

array debug_backtrace(int $options, int $limit);

Aqui, ambos os parâmetros $options e $limit são opcionais e são do tipo inteiro. O parâmetro $option é usado para bitmask e $limit pode ser usado para definir o limite do número de frames da pilha a serem impressos. O valor padrão para o $limit é definido como zero.

Exemplo: Neste exemplo, criamos uma função que retorna a soma de dois parâmetros de entrada e dentro dessa função debug_backtrace() foi usada. Ao imprimir a saída primeiro, a soma dos parâmetros de entrada será exibida e, em seguida, o backtrace do código será impresso. 

<?php
    
function sum($a, $b) {
    echo $a + $b . "\n\n";
      
    var_dump(debug_backtrace());
}
  
sum(10,2);
  
?>
Saída

12

array (1) {
  [0] =>
  array (4) {
    ["arquivo"] =>
    string (42) "/home/2228b7c9e401174a5f773007cd840e32.php"
    ["linha"] =>
    int (9)
    ["função"] =>
    string (3) "soma"
    ["args"] =>
    array (2) {
      [0] =>
      int (10)
      [1] =>
      int (2)
    }
  }
}

Exemplo 2: Neste exemplo, o conceito da função debug_backtrace() foi implementado dentro da classe junto com o conceito de recursão para verificar seu rastreio. Neste exemplo, duas classes, isto é, BaseClass e DerivedClass, foram criadas junto com seus construtores e dentro do construtor de BaseClass debug_backtrace() foi chamado. A saída gerada, ou seja, o rastreamento de volta para este código consiste em todos os elementos mencionados na tabela acima.

<?php
  
class BaseClass {
    public function __construct() {
        $this->_child = new DerivedClass($this);
        var_dump(debug_backtrace());
    }
}
  
class DerivedClass {
    public function __construct(BaseClass $d) {
        $this->_parent = $d;
    }
}
  
$obj = new BaseClass();
?>
Saída
array (1) {
  [0] =>
  array (7) {
    ["arquivo"] =>
    string (42) "/home/ecdb752d3b6ec8ba97e6db84c42a5f2f.php"
    ["linha"] =>
    int (18)
    ["função"] =>
    string (11) "__construct"
    ["classe"] =>
    string (9) "BaseClass"
    ["objeto"] =>
    objeto (BaseClass) # 1 (1) {
      ["_criança"] =>
      objeto (DerivedClass) # 2 (1) {
        ["_parent"] =>
        *RECURSÃO*
      }
    }
    ["tipo"] =>
    string (2) "->"
    ["args"] =>
    array (0) {
    }
  }
}

Referência: https://www.php.net/manual/en/function.debug-backtrace.php