Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>My script for installing an error handler that produces a backtrace:</p> <pre><code>&lt;?php function process_error_backtrace($errno, $errstr, $errfile, $errline, $errcontext) { if(!(error_reporting() &amp; $errno)) return; switch($errno) { case E_WARNING : case E_USER_WARNING : case E_STRICT : case E_NOTICE : case E_USER_NOTICE : $type = 'warning'; $fatal = false; break; default : $type = 'fatal error'; $fatal = true; break; } $trace = array_reverse(debug_backtrace()); array_pop($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'] : '&lt;unknown file&gt;') . ' ' . (isset($item['line']) ? $item['line'] : '&lt;unknown line&gt;') . ' calling ' . $item['function'] . '()' . "\n"; } else { echo '&lt;p class="error_backtrace"&gt;' . "\n"; echo ' Backtrace from ' . $type . ' \'' . $errstr . '\' at ' . $errfile . ' ' . $errline . ':' . "\n"; echo ' &lt;ol&gt;' . "\n"; foreach($trace as $item) echo ' &lt;li&gt;' . (isset($item['file']) ? $item['file'] : '&lt;unknown file&gt;') . ' ' . (isset($item['line']) ? $item['line'] : '&lt;unknown line&gt;') . ' calling ' . $item['function'] . '()&lt;/li&gt;' . "\n"; echo ' &lt;/ol&gt;' . "\n"; echo '&lt;/p&gt;' . "\n"; } if(ini_get('log_errors')) { $items = array(); foreach($trace as $item) $items[] = (isset($item['file']) ? $item['file'] : '&lt;unknown file&gt;') . ' ' . (isset($item['line']) ? $item['line'] : '&lt;unknown line&gt;') . ' calling ' . $item['function'] . '()'; $message = 'Backtrace from ' . $type . ' \'' . $errstr . '\' at ' . $errfile . ' ' . $errline . ': ' . join(' | ', $items); error_log($message); } if($fatal) exit(1); } set_error_handler('process_error_backtrace'); ?&gt; </code></pre> <p>Caveat: it is powerless to affect various <a href="http://us.php.net/set_error_handler" rel="noreferrer">'PHP Fatal Errors'</a>, since Zend in their wisdom decided that these would ignore <code>set_error_handler()</code>. So you still get useless final-location-only errors with those.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload