是否有一個php.ini指令,可以在錯誤上啓用堆棧跟蹤?我已經看過這裏:http://php.net/manual/en/ini.core.php。由於某些原因,我的共享主機沒有安裝Xdebug。我試着把這些放在.htaccess中:是否有一個php.ini指令可以在錯誤上啓用堆棧跟蹤?
php_value track_erors On
php_value report_zend_debug 1
但沒有堆棧跟蹤。
是否有一個php.ini指令,可以在錯誤上啓用堆棧跟蹤?我已經看過這裏:http://php.net/manual/en/ini.core.php。由於某些原因,我的共享主機沒有安裝Xdebug。我試着把這些放在.htaccess中:是否有一個php.ini指令可以在錯誤上啓用堆棧跟蹤?
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();
給出:
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
不直接但你可以叫debug_backtrace()
或捕捉到錯誤,並有異常類轉儲它的堆棧跟蹤與exception::getTrace();
很好,但這適用於例外情況,而不是錯誤。使用set_error_handler可以捕獲錯誤,但不會提供堆棧跟蹤。 – Benubird 2014-04-09 08:30:38
「我的共享-hosting沒有安裝Xdebug出於某種原因「 - 可能是因爲他們的服務被設計爲託管應用程序。開發應該在你的本地PC上完成。沒有必要通過調試擴展來減緩活動網站的速度。 – 2010-07-12 08:27:45