debug_backtrace

Generates a backtrace

Syntax

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

Parameters

options

A bitmask for the following options:

DEBUG_BACKTRACE_PROVIDE_OBJECT Whether or not to populate the "object" index.
DEBUG_BACKTRACE_IGNORE_ARGS Whether or not to omit the "args" index, and thus all the function/method arguments, to save memory.
limit

Limit the number of stack frames returned. By default (limit=0) it returns all stack frames.

Return

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

Name Type Description
function string The current function name.
line integer The current line number.
file string The current file name.
class string The current class name.
object object The current object.
type string The current call type. If a method call, "->" is returned. If a static method call, "::" is returned. If a function call, nothing is returned.
args array If inside a function, this lists the functions arguments. If inside an included file, this lists the included file name(s).

Examples

1 · void

<?

function myfunction1($myarg1, $myarg2)
{
    $myarg1 += 1;
    $myarg2 += 1;

    myfunction2($myarg1, $myarg2);
}
function myfunction2($myarg1, $myarg2)
{
    $myarg1 += 1;
    $myarg2 += 1;

    $return = debug_backtrace();

    print_r($return);
}

myfunction1(0, 1);

?>
Array
(
    [0] => Array
        (
            [file] => /home/user/public_html/file.php
            [line] => 8
            [function] => myfunction2
            [args] => Array
                (
                    [0] => 2
                    [1] => 3
                )

        )

    [1] => Array
        (
            [file] => /home/user/public_html/file.php
            [line] => 20
            [function] => myfunction1
            [args] => Array
                (
                    [0] => 1
                    [1] => 2
                )

        )

)

2 · options · DEBUG_BACKTRACE_PROVIDE_OBJECT

<?

function myfunction1($myarg1, $myarg2)
{
    $myarg1 += 1;
    $myarg2 += 1;

    myfunction2($myarg1, $myarg2);
}
function myfunction2($myarg1, $myarg2)
{
    $myarg1 += 1;
    $myarg2 += 1;

    $options = DEBUG_BACKTRACE_PROVIDE_OBJECT;

    $return = debug_backtrace($options);

    print_r($return);
}

myfunction1(0, 1);

?>
Array
(
    [0] => Array
        (
            [file] => /home/user/public_html/file.php
            [line] => 8
            [function] => myfunction2
            [args] => Array
                (
                    [0] => 2
                    [1] => 3
                )

        )

    [1] => Array
        (
            [file] => /home/user/public_html/file.php
            [line] => 22
            [function] => myfunction1
            [args] => Array
                (
                    [0] => 1
                    [1] => 2
                )

        )

)

3 · options · DEBUG_BACKTRACE_IGNORE_ARGS

<?

function myfunction1($myarg1, $myarg2)
{
    $myarg1 += 1;
    $myarg2 += 1;

    myfunction2($myarg1, $myarg2);
}
function myfunction2($myarg1, $myarg2)
{
    $myarg1 += 1;
    $myarg2 += 1;

    $options = DEBUG_BACKTRACE_IGNORE_ARGS;

    $return = debug_backtrace($options);

    print_r($return);
}

myfunction1(0, 1);

?>
Array
(
    [0] => Array
        (
            [file] => /home/user/public_html/file.php
            [line] => 8
            [function] => myfunction2
        )

    [1] => Array
        (
            [file] => /home/user/public_html/file.php
            [line] => 22
            [function] => myfunction1
        )

)

4 · limit

<?

function myfunction1($myarg1, $myarg2)
{
    $myarg1 += 1;
    $myarg2 += 1;

    myfunction2($myarg1, $myarg2);
}
function myfunction2($myarg1, $myarg2)
{
    $myarg1 += 1;
    $myarg2 += 1;

    $options = DEBUG_BACKTRACE_PROVIDE_OBJECT;
    $limit = 1;

    $return = debug_backtrace($options, $limit);

    print_r($return);
}

myfunction1(0, 1);

?>
Array
(
    [0] => Array
        (
            [file] => /home/user/public_html/file.php
            [line] => 8
            [function] => myfunction2
            [args] => Array
                (
                    [0] => 2
                    [1] => 3
                )

        )

)

debug_print_backtrace

error_clear_last

error_get_last

error_log

error_reporting

restore_error_handler

restore_exception_handler

set_error_handler

set_exception_handler

trigger_error

user_error

PHP

Home Menu