Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Backtrace Errors
<?php
// Forked from: http://stackoverflow.com/questions/1159216/how-can-i-get-php-to-produce-a-backtrace-upon-errors/1159235#1159235
function process_error_backtrace($errno, $errstr, $errfile, $errline) {
if(!(error_reporting() & $errno))
return;
switch($errno) {
case E_WARNING :
case E_USER_WARNING :
case E_STRICT :
case E_NOTICE :
case E_DEPRECATED :
case E_USER_NOTICE :
$type = 'warning';
$fatal = false;
break;
default :
$type = 'fatal error';
$fatal = true;
break;
}
$trace = debug_backtrace();
array_shift($trace);
if(php_sapi_name() == 'cli') {
echo 'Backtrace from ' . $type . ' \'' . $errstr . '\' at ' . $errfile . ' ' . $errline . ':' . "\n";
foreach($trace as $item)
echo ' ' . (isset($item['file']) ? $item['file'] : '<unknown file>') . ' ' . (isset($item['line']) ? $item['line'] : '<unknown line>') . ' calling ' . $item['function'] . '()' . "\n";
} else {
echo '<p class="error_backtrace">' . "\n";
echo ' Backtrace from ' . $type . ' \'' . $errstr . '\' at ' . $errfile . ' ' . $errline . ':' . "\n";
echo ' <ol>' . "\n";
foreach($trace as $item)
echo ' <li>' . (isset($item['file']) ? $item['file'] : '<unknown file>') . ' ' . (isset($item['line']) ? $item['line'] : '<unknown line>') . ' calling ' . $item['function'] . '()</li>' . "\n";
echo ' </ol>' . "\n";
echo '</p>' . "\n";
}
if(ini_get('log_errors')) {
$items = array();
foreach($trace as $item)
$items[] = (isset($item['file']) ? $item['file'] : '<unknown file>') . ' ' . (isset($item['line']) ? $item['line'] : '<unknown line>') . ' calling ' . $item['function'] . '()';
$message = 'Backtrace from ' . $type . ' \'' . $errstr . '\' at ' . $errfile . ' ' . $errline . ': ' . join(' | ', $items);
error_log($message);
}
flush();
if($fatal)
exit(1);
}
set_error_handler('process_error_backtrace');
@EdwardAEvansJr

This comment has been minimized.

Show comment Hide comment
@EdwardAEvansJr

EdwardAEvansJr Mar 14, 2014

What up son son,this is ur boy...YOU!

What up son son,this is ur boy...YOU!

@nsieber

This comment has been minimized.

Show comment Hide comment
@nsieber

nsieber Jun 6, 2015

what directory does this file go in and how does it get called?

nsieber commented Jun 6, 2015

what directory does this file go in and how does it get called?

@mariusvetrici

This comment has been minimized.

Show comment Hide comment
@mariusvetrici

mariusvetrici Mar 17, 2016

You can place this file in your wp-content/mu-plugins directory; create it if it doesn’t exist.
Taken from:
https://make.wordpress.org/core/handbook/testing/reporting-bugs/

You can place this file in your wp-content/mu-plugins directory; create it if it doesn’t exist.
Taken from:
https://make.wordpress.org/core/handbook/testing/reporting-bugs/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment