php8.5
Home/ Manual/ errorfunc / functions/ debug_backtrace

debug_backtrace

PHP function Edit on GitHub ✎

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

Generates a backtrace

Description

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

debug_backtrace() generates a PHP backtrace.

Parameters

options

This parameter is a bitmask for the following options:

DEBUG_BACKTRACE_PROVIDE_OBJECTWhether or not to populate the "object" index.
DEBUG_BACKTRACE_IGNORE_ARGSWhether or not to omit the "args" index, and thus all the function/method arguments, to save memory.
Note

There are four possible combinations:

debug_backtrace()Populates both indexes
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)
debug_backtrace(~DEBUG_BACKTRACE_PROVIDE_OBJECT)Omits index "object" and populates index "args".
debug_backtrace(0)
debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)Omits both index "object" and index "args".
debug_backtrace(~DEBUG_BACKTRACE_PROVIDE_OBJECT | DEBUG_BACKTRACE_IGNORE_ARGS)
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS)Populate index "object" and omit index "args".
limit

This parameter can be used to limit the number of stack frames returned. By default (limit=0) it returns all stack frames.

Return Values

Returns an array of associative arrays. The possible returned elements are as follows:

NameTypeDescription
functionstringThe current function name. See also __FUNCTION__.
lineintThe current line number. See also __LINE__.
filestringThe current file name. See also __FILE__.
classstringThe current class name. See also __CLASS__
objectobjectThe current object if DEBUG_BACKTRACE_PROVIDE_OBJECT is given.
typestringThe current call type. If a method call, "->" is returned. If a static method call, "::" is returned. If a function call, nothing is returned.
argsarrayIf inside a function, this lists the functions arguments. If inside an included file, this lists the included file name(s). Unless DEBUG_BACKTRACE_IGNORE_ARGS is given.

Examples

debug_backtrace() example

php
<?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';
?>

Results similar to the following when executing /tmp/b.php:

output
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"
  }
}

See Also

Source: reference/errorfunc/functions/debug-backtrace.xml · from the official PHP manual (php/doc-en)