debug_backtrace

Generates a backtrace

&reftitle.description; `array` `debug_backtrace` `int` `options` `DEBUG_BACKTRACE_PROVIDE_OBJECT` `int` `limit` 0

`debug_backtrace` generates a PHP backtrace.

&reftitle.parameters;

`options`

- This parameter is a bitmask for the following options:

  ## `debug_backtrace` 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.

  There are four possible combinations:

  ### `debug_backtrace` options

  `debug_backtrace()` | Populates both indexes
  `debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)`
  `debug_backtrace(1)`
  `debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS & DEBUG_BACKTRACE_PROVIDE_OBJECT)` | Omits index `"object"`.
  `debug_backtrace(0)`
  `debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)` | Omits index `"object"` and index `"args"`.
  `debug_backtrace(2)`

`limit`

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

&reftitle.returnvalues;

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

## Possible returned elements from `debug_backtrace`

&Name; | &Type; | &Description;
function | `string` | The current function name. See also __FUNCTION__.
line | `int` | The current line number. See also __LINE__.
file | `string` | The current file name. See also __FILE__.
class | `string` | The current class name. See also __CLASS__
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).

&reftitle.examples;

### `debug_backtrace` example

    <?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`:

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

&reftitle.seealso;

- `trigger_error`
- `debug_print_backtrace`