是否有一个php.ini指令可以在错误上启用堆栈跟踪?我已经看过了这里:http://php.net/manual/en/ini.core.php。我的共享托管由于某种原因没有安装Xdebug。我尝试将它们放在.htaccess中:
php_value track_erors On
php_value report_zend_debug 1
但没有堆栈跟踪。
答案 0 :(得分:7)
有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();
给出:
array 0 => array 'file' => string '/tmp/cpu7HL5A' (length=13) 'line' => int 9 'function' => string 'exceptions_error_handler' (length=24) 'args' => array 0 => &int 8 1 => &string 'Undefined variable: a' (length=21) 2 => &string '/tmp/cpu7HL5A' (length=13) 3 => &int 9 4 => & array empty 1 => array 'file' => string '/tmp/cpu7HL5A' (length=13) 'line' => int 12 'function' => string 'c' (length=1) 'args' => array empty
答案 1 :(得分:2)
不是直接但你可以调用debug_backtrace()
或捕获你的错误并让异常类使用exception::getTrace();
转储其堆栈跟踪