1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- --TEST--
- Bug #38047 ("file" and "line" sometimes not set in backtrace from inside error handler)
- --FILE--
- <?php
- error_reporting(E_ALL);
- set_error_handler('kalus_error_handler');
- ini_set("display_errors", "on");
- class A {
- function A_ftk($a) {
- }
- }
- function kalus_error_handler($error_code, $error_string, $filename, $line, $symbols) {
- echo "$error_string\n";
- get_error_context();
- }
- function get_error_context() {
- $backtrace = debug_backtrace();
- $n = 1;
- foreach ($backtrace as $call) {
- echo $n++." ";
- if (isset($call["file"])) {
- echo $call["file"];
- if (isset($call["line"])) {
- echo ":".$call["line"];
- }
- }
- if (isset($call["function"])) {
- echo " ".$call["function"]."()";
- }
- echo "\n";
- }
- echo "\n";
- }
- //This will not create file and line items for the call into the error handler
- $page["name"] = A::A_ftk();
- ?>
- --EXPECTF--
- Non-static method A::A_ftk() should not be called statically
- 1 %sbug38047.php:13 get_error_context()
- 2 %sbug38047.php:36 kalus_error_handler()
- 3 %sbug38047.php:36 A_ftk()
- Missing argument 1 for A::A_ftk(), called in %sbug38047.php on line 36 and defined
- 1 %sbug38047.php:13 get_error_context()
- 2 %sbug38047.php:7 kalus_error_handler()
- 3 %sbug38047.php:36 A_ftk()
|