Erzeugt eine Ablaufverfolgung

# debug_backtrace

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

debug_backtrace — Erzeugt eine Ablaufverfolgung

### Beschreibung

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

debug_backtrace() erzeugt eine PHP-Ablaufverfolgung.

### Parameter-Liste

`options`

  Dieser Parameter ist eine Bitmaske für die folgenden Optionen:

  debug_backtrace()-Optionen
  DEBUG_BACKTRACE_PROVIDE_OBJECT | Legt fest, ob der "object"-Index befüllt werden soll.
  DEBUG_BACKTRACE_IGNORE_ARGS | Legt fest, ob der "args"-Index, welcher alle Funktions- oder Methodenargumente enthält, ausgelassen werden soll, um Arbeitsspeicher zu sparen.

  > Hinweis:

  > Es gibt vier mögliche Kombinationen:

  > debug_backtrace()-Optionen
  > `debug_backtrace()` | Füllt beide Indizes
  > `debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)`
  > `debug_backtrace(1)`
  > `debug_backtrace(0)` | Lässt den Index `"object"` weg und belegt den Index `"args"`.
  > `debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)` | Lässt die Indizes `"object"` und `"args"` weg.
  > `debug_backtrace(2)`
  > `debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS)` | Belegt den Index `"object"` und lässt den Index `"args"` weg.
  > `debug_backtrace(3)`

`limit`

  Dieser Parameter kann benutzt werden, um die Anzahl an zurückgegebenen Stackframes zu limitieren. Standardmäßig (`limit`=`0`) werden alle Stackframes zurückgegeben.

### Rückgabewerte

Gibt ein assoziatives Array zurück. Als zurückgegebene Arrayelemente von debug_backtrace() sind möglich:

Mögliche Rückgabewerte von debug_backtrace()
Name | Typ | Beschreibung
--- | --- | ---
function | string | Der Name der aktuell ausgeführten Funktion. Siehe auch __FUNCTION__.
line | int | Die aktuelle Zeilennummer. Siehe auch __LINE__.
file | string | Der aktuelle Dateiname. Siehe auch __FILE__.
class | string | Der aktuelle Name der Klasse. Siehe auch __CLASS__.
object | object | Das aktuelle Objekt.
type | string | Der aktuelle Typ des Aufrufs. Falls der Aufruf in einer Methode erfolgte, wird "->" zurückgegeben. Falls der Aufruf aus einer statischen Funktion erfolgte, wird "::" zurückgegeben, und falls der Aufruf aus einer Funktion erfolgte, wird nichts zurückgegeben.
args | array | Falls der Aufruf aus einer Funktion erfolgte, werden hier die Funktionsargumente aufgelistet. Falls der Aufruf aus einer eingebundenen Datei erfolgte, werden die Namen der Include-Dateien angegeben.

### Beispiele

Beispiel #1 debug_backtrace()-Beispiel

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

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

    a_test('friend');
    ?>

    <?php
    // Dateiname: /tmp/b.php
    include_once '/tmp/a.php';
    ?>

Ähnliche Ergebnisse wie die folgenden beim Aufruf von /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"
      }
    }

### Siehe auch

- trigger_error() - Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung
- debug_print_backtrace() - Gibt die Daten für eine Ablaufverfolgung aus

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