Annotation of embedaddon/php/Zend/tests/bug38047.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #38047 ("file" and "line" sometimes not set in backtrace from inside error handler)
! 3: --FILE--
! 4: <?php
! 5: error_reporting(E_ALL);
! 6: set_error_handler('kalus_error_handler');
! 7: ini_set("display_errors", "on");
! 8:
! 9: class A {
! 10: function A_ftk($a) {
! 11: }
! 12: }
! 13:
! 14: function kalus_error_handler($error_code, $error_string, $filename, $line, $symbols) {
! 15: echo "$error_string\n";
! 16: get_error_context();
! 17: }
! 18:
! 19: function get_error_context() {
! 20: $backtrace = debug_backtrace();
! 21: $n = 1;
! 22: foreach ($backtrace as $call) {
! 23: echo $n++." ";
! 24: if (isset($call["file"])) {
! 25: echo $call["file"];
! 26: if (isset($call["line"])) {
! 27: echo ":".$call["line"];
! 28: }
! 29: }
! 30: if (isset($call["function"])) {
! 31: echo " ".$call["function"]."()";
! 32: }
! 33: echo "\n";
! 34: }
! 35: echo "\n";
! 36: }
! 37:
! 38: //This will not create file and line items for the call into the error handler
! 39: $page["name"] = A::A_ftk();
! 40: ?>
! 41: --EXPECTF--
! 42: Non-static method A::A_ftk() should not be called statically
! 43: 1 %sbug38047.php:13 get_error_context()
! 44: 2 %sbug38047.php:36 kalus_error_handler()
! 45: 3 %sbug38047.php:36 A_ftk()
! 46:
! 47: Missing argument 1 for A::A_ftk(), called in %sbug38047.php on line 36 and defined
! 48: 1 %sbug38047.php:13 get_error_context()
! 49: 2 %sbug38047.php:7 kalus_error_handler()
! 50: 3 %sbug38047.php:36 A_ftk()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>