Skip to main content

PhpUnit not showing a stack trace for a php fatal error


PhpUnit is currently not showing the stack trace for PHP errors that occur in the code.



How do I configure it to do so?


Source: Tips4allCCNA FINAL EXAM

Comments

  1. PHPUnit uses an error handler function to trap and display errors, but from the PHP manual on error handlers,


    The following error types cannot be
    handled with a user defined function:
    E_ERROR, E_PARSE, E_CORE_ERROR,
    E_CORE_WARNING, E_COMPILE_ERROR,
    E_COMPILE_WARNING, and most of
    E_STRICT raised in the file where
    set_error_handler() is called.


    If you are running tests in a separate process, PHPUnit will get the error and message from the interpreter, but there will be no stack trace available. This is simply a limitation of the PHP interpreter. Fatal means fatal.

    ReplyDelete
  2. This is a lame yet effective way that I've found to get a stack dump when php doesn't give one. I have this in a classed called DebugUtil.

    /**
    * This is for use when you have the UBER-LAME...
    * "PHP Fatal error: Maximum function nesting level of '100' reached,
    * aborting! in Lame.php(1273)
    * ...which just craps out leaving you without a stack trace.
    * At the line in the file where it finally spazzes out add
    * something like...
    * DebugUtil::dumpStack('/tmp/lame');
    * It will write the stack into that file every time it passes that
    * point and when it eventually blows up (and probably long before) you
    * will be able to see where the problem really is.
    */
    public static function dumpStack($fileName)
    {
    $stack = "";
    foreach (debug_backtrace() as $trace)
    {
    if (isset($trace['file']) &&
    isset($trace['line']) &&
    isset($trace['class']) &&
    isset($trace['function']))
    {
    $stack .= $trace['file'] . '#' .
    $trace['line'] . ':' .
    $trace['class'] . '.' .
    $trace['function'] . "\n";
    }
    }
    file_put_contents($fileName, $stack);
    }

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?