If you want to get the trace into a variable or DB, I suggest to do the following:
<?php
ob_start();
debug_print_backtrace();
$trace = ob_get_contents();
ob_end_clean();
$query = sprintf("INSERT INTO EventLog (Trace) VALUES ('%s')",
mysql_real_escape_string($trace));
mysql_query($query);
?>
debug_print_backtrace
(PHP 5)
debug_print_backtrace — Prints a backtrace
Description
void debug_print_backtrace
([ int
$options = 0
[, int $limit = 0
]] )debug_print_backtrace() prints a PHP backtrace. It prints the function calls, included/required files and eval()ed stuff.
Parameters
-
options -
As of 5.3.6, this parameter is a bitmask for the following options:
debug_print_backtrace() options DEBUG_BACKTRACE_IGNORE_ARGS Whether or not to omit the "args" index, and thus all the function/method arguments, to save memory. -
limit -
As of 5.4.0, this parameter can be used to limit the number of stack frames printed. By default (
limit=0) it prints all stack frames.
Return Values
No value is returned.
Changelog
| Version | Description |
|---|---|
| 5.4.0 |
Added the optional parameter limit.
|
| 5.3.6 |
Added the optional parameter options.
|
Examples
Example #1 debug_print_backtrace() example
<?php
// include.php file
function a() {
b();
}
function b() {
c();
}
function c(){
debug_print_backtrace();
}
a();
?>
<?php
// test.php file
// this is the file you should run
include 'include.php';
?>
The above example will output something similar to:
#0 c() called at [/tmp/include.php:10] #1 b() called at [/tmp/include.php:6] #2 a() called at [/tmp/include.php:17] #3 include(/tmp/include.php) called at [/tmp/test.php:3]
debug_print_backtrace
bortuzar at gmail dot com
05-Jun-2007 08:23
05-Jun-2007 08:23
petermarkellis at googlemail dot com
28-Mar-2007 12:10
28-Mar-2007 12:10
A cleaner example:
<?php
function a() {
b();
}
function b() {
c();
}
function c(){
debug_print_backtrace();
}
a();
?>
outputs:
#0 c() called at [C:\debugbacktracetest.php:7]
#1 b() called at [C:\debugbacktracetest.php:3]
#2 a() called at [C:\debugbacktracetest.php:14]
aidan at php dot net
15-Mar-2005 10:47
15-Mar-2005 10:47
This functionality is now implemented in the PEAR package PHP_Compat.
More information about using this function without upgrading your version of PHP can be found on the below link:
http://pear.php.net/package/PHP_Compat