mirror of
https://github.com/php/php-src.git
synced 2024-10-20 16:02:44 +00:00
51 lines
1.2 KiB
Plaintext
51 lines
1.2 KiB
Plaintext
|
--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()
|