Re: Backtrace in fatal error?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks!
I didn't notice the register_shutdown_function function.
But it executes always I want to run it only to track fatal error. Also I 
can't get the backtrace properly:( I can't use 5.3 so I guess it works 
differently in 5.2

Richard Quadling wrote:

> On 31 August 2010 09:49, Paul Freeman <freeman3@xxxxxxxxxx> wrote:
>> When fatal error occurs is it possible to output also the backtrace in
>> the error log? The simple error message with file line only is quite
>> useless...
> 
> <?php
> namespace baz;
> 
> set_error_handler(
>     function($ErrNo, $ErrStr, $ErrFile, $ErrLine, $ErrContext){
>         echo 'An error occurred.', PHP_EOL;
>         var_export(debug_backtrace(true));
> 
>         // Allow PHP to continue executing.
>         return false;
>     },
>     -1
> );
> 
> register_shutdown_function(
>     function(){
>         echo 'We died a terrible death.';
>         var_export(debug_backtrace(true));
>     }
> );
> 
> function bar() {
>     echo 'In ', __FUNCTION__, PHP_EOL;
>     echo 1 / 0; // Divide by zero warning.
>     foo();
> }
> 
> function foo() {
>     echo 'In ', __FUNCTION__, PHP_EOL;
>     $a = \SNAFU; // Fatal error
> }
> 
> bar();
> ?>
> outputs ...
> 
> In baz\bar
> An error occurred.
> array (
>   0 =>
>   array (
>     'file' => 'Z:\\bad.php',
>     'line' => 24,
>     'function' => 'baz\\{closure}',
>     'args' =>
>     array (
>       0 => 2,
>       1 => 'Division by zero',
>       2 => 'Z:\\bad.php',
>       3 => 24,
>       4 =>
>       array (
>       ),
>     ),
>   ),
>   1 =>
>   array (
>     'file' => 'Z:\\bad.php',
>     'line' => 33,
>     'function' => 'baz\\bar',
>     'args' =>
>     array (
>     ),
>   ),
> )
> Warning: Division by zero in Z:\bad.php on line 24
> In baz\foo
> 
> Fatal error: Undefined constant 'SNAFU' in Z:\bad.php on line 30
> We died a terrible death.array (
>   0 =>
>   array (
>     'function' => 'baz\\{closure}',
>     'args' =>
>     array (
>     ),
>   ),
> )
> 
> So, it looks like extension or a core mod only.
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux