From 73a386618382e3f701c83fa46f6846ce0e250c86 Mon Sep 17 00:00:00 2001 From: Kyle Kaminski Date: Tue, 1 Apr 2014 01:22:07 -0500 Subject: learn how to print backtraces in php --- error_log-to-currdir.php | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 error_log-to-currdir.php diff --git a/error_log-to-currdir.php b/error_log-to-currdir.php new file mode 100644 index 0000000..32d1de4 --- /dev/null +++ b/error_log-to-currdir.php @@ -0,0 +1,61 @@ +getTraceAsString()); + + /* print to screen in simple format */ + print mydebug_bt(); + + trigger_error("user triggered error", E_USER_ERROR); +} + +error_log('calling a()', 0, './php_errors.log'); +a('alpha'); + +/* simplify and beatify the output of a dump of debug_backtrace() */ +function mydebug_bt() { + $stack = ''; + $i = 1; + $trace = debug_backtrace(); + unset($trace[0]); // remove call to this function from stack trace + foreach($trace as $node) { + $stack .= "#$i ".$node['file'] ."(" .$node['line']."): "; + if(isset($node['class'])) { + $stack .= $node['class'] . "->"; + } + $stack .= $node['function'] . "()" . PHP_EOL; + $i++; + } + return $stack; +} -- cgit v1.2.3