是否有一个php.ini指令,可以在错误上启用堆栈跟踪?

时间:2010-07-11 22:10:04

标签: php

是否有一个php.ini指令可以在错误上启用堆栈跟踪?我已经看过了这里:http://php.net/manual/en/ini.core.php。我的共享托管由于某种原因没有安装Xdebug。我尝试将它们放在.htaccess中:

php_value track_erors On
php_value report_zend_debug 1

但没有堆栈跟踪。

2 个答案:

答案 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();转储其堆栈跟踪