Есть ли директива php.ini, которая позволяет отслеживать трассировки стека на ошибках? Я уже смотрел здесь: http://php.net/manual/en/ini.core.php . По какой-то причине мой общий хостинг не имеет Xdebug. Я попытался положить их в .htaccess:
php_value track_erors On php_value report_zend_debug 1
но нет трассировки стека.
Там debug_backtrace
. Это не будет работать для фатальных ошибок, хотя, поскольку они не могут быть обработаны.
Пример:
<?php function exceptions_error_handler($severity, $message, $filename, $lineno) { var_dump(debug_backtrace()); } set_error_handler('exceptions_error_handler'); function c() { echo $a; } c();
дает:
массив 0 => массив 'file' => string '/ tmp / cpu7HL5A' (length = 13) 'line' => int 9 'function' => string 'exceptions_error_handler' (length = 24) 'args' => массив 0 => & int 8 1 => & string 'Неопределенная переменная: a' (length = 21) 2 => & string '/ tmp / cpu7HL5A' (длина = 13) 3 => & int 9 4 => & массив пустой 1 => массив 'file' => string '/ tmp / cpu7HL5A' (length = 13) 'line' => int 12 'function' => string 'c' (length = 1) 'args' => массив пустой
не напрямую, но вы можете вызвать debug_backtrace()
ИЛИ уловить ваши ошибки и исключить класс исключения из его трассировки стека с exception::getTrace();