Gera uma rastreamento retroativo

# debug_backtrace

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

debug_backtrace — Gera uma rastreamento retroativo

### Descrição

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

debug_backtrace() gera um rastreamento retroativo do PHP.

### Parâmetros

`options`

  Este parâmetro é uma máscara de bits para as seguintes opções:

  Opções de debug_backtrace()
  DEBUG_BACKTRACE_PROVIDE_OBJECT | Define se o índice "object" deve ou não ser preenchido.
  DEBUG_BACKTRACE_IGNORE_ARGS | Define se o índice "args" deve ou não ser omitido, e consequentemente todos os argumentos de métodos e funções, para economizar memória.

  > Nota:

  > Existem quatro combinações possíveis:

  > Opções de debug_backtrace()
  > `debug_backtrace()` | Preenche ambos os índices
  > `debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)`
  > `debug_backtrace(~DEBUG_BACKTRACE_PROVIDE_OBJECT)` | Omite o índice `"object"` e preenche o índice `"args"`.
  > `debug_backtrace(0)`
  > `debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)` | Omite ambos os índices `"object"` e `"args"`.
  > `debug_backtrace(~DEBUG_BACKTRACE_PROVIDE_OBJECT | DEBUG_BACKTRACE_IGNORE_ARGS)`
  > `debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS)` | Preenche o índice `"object"` e omite o índice `"args"`.

`limit`

  Este parâmetro pode ser usado para limitar o número de estruturas de pilha retornados. Por padrão (`limit`=`0`) todas as estruturas são retornadas.

### Valor Retornado

Retorna um array de arrays associativos. Os elementos possíveis retornados são os seguintes:

Elementos possíveis retornados de debug_backtrace()
Nome | Tipo | Descrição
--- | --- | ---
function | string | O nome da função atual. Consulte também __FUNCTION__.
line | int | O número da linha atual. Consulte também __LINE__.
file | string | O nome do arquivo atual. Consulte também __FILE__.
class | string | O nome da classe atual. Consulte também __CLASS__
object | object | O objeto atual de `DEBUG_BACKTRACE_PROVIDE_OBJECT` for informada.
type | string | O tipo de chamada atual. Se for chamada de método, "->" é retornado. Se for chamada de método estático, "::" é retornado. Se for chamada de função, nada é retornado.
args | array | Se for dentro de uma função, isto lista os arumentos da função. Se for dentro de um arquivo incluído, isto lista o nome do arquivo incluído. A menos que `DEBUG_BACKTRACE_IGNORE_ARGS` seja informada.

### Exemplos

Exemplo #1 Exemplo de 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';
    ?>

Resultados similares ao seguinte ao executar /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"
      }
    }

### Veja Também

- trigger_error() - Gera uma mensagem a nível de usuário de erro/alerta/nota
- debug_print_backtrace() - Mostra um rastreamento retroativo

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open