debug_backtrace
Generates a backtrace
Description
array debug_backtrace(int $options
= DEBUG_BACKTRACE_PROVIDE_OBJECT
, int $limit
= 0)
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.
|
Note:
There are four possible combinations:
debug_backtrace options
debug_backtrace() |
Populates both indexes
|
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT) |
debug_backtrace(1) |
debug_backtrace(0) |
Omits index "object" and populates index "args" .
|
debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) |
Omits index "object" and index "args" .
|
debug_backtrace(2) |
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS) |
Populate index "object" and omit index "args" .
|
debug_backtrace(3) |
-
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:
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).
|
Examples
Example #1 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"
}
}
See Also
- trigger_error
- debug_print_backtrace