Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Error Handling and Logging Functions : debug_print_backtrace

debug_print_backtrace

Prints a backtrace (PHP 5)
void debug_print_backtrace ( )

debug_print_backtrace() prints a PHP backtrace. It prints the function calls, included/required files and eval()ed stuff.

Parameters

This function has no parameters.

Return Values

No value is returned.

Examples

Example 591. 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  eval() called at [/tmp/include.php:5]
#1  a() called at [/tmp/include.php:17]
#2  include(/tmp/include.php) called at [/tmp/test.php:3]

#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]


Code Examples / Notes » debug_print_backtrace

aidan

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


bortuzar

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);
?>


taner

bortuzar: a simpler version, w/o output buffering:
<?php
$query = sprintf("INSERT INTO EventLog (Trace) VALUES ('%s')",
   mysql_real_escape_string(join("\n", debug_backtrace())) );
mysql_query($query);
?>


petermarkellis

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]


Change Language


Follow Navioo On Twitter
debug_backtrace
debug_print_backtrace
error_get_last
error_log
error_reporting
restore_error_handler
restore_exception_handler
set_error_handler
set_exception_handler
trigger_error
user_error
eXTReMe Tracker