Re: Backtrace in fatal error?
| From: | freeman3 at centrum dot cz | Date: | Wed, 01 Sep 2010 12:38:42 +0000 |
| Subject: | Re: Backtrace in fatal error? | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-307803@lists.php.net to get a copy of this message | ||
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@centrum.cz> 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.
>