最亲爱的PHP人员,有没有办法让Xdebug在屏幕上显示整个堆栈但不将其写入错误日志?我只喜欢日志文件本身的实际错误行,但我想在屏幕上看到堆栈。
答案 0 :(得分:3)
xdebug使用错误处理程序机制显示其堆栈跟踪。如果您签出xdebug源代码,并查看xdebug.c,您将在第801行看到:
if (XG(default_enable) && zend_hash_find(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_SERVER]), "HTTP_SOAPACT ION", 16, (void**)&dummy) == FAILURE) {
zend_error_cb = new_error_cb;
zend_throw_exception_hook = xdebug_throw_exception_hook;
}
xdebug_error_cb()
(错误回调)和xdebug_throw_exception_hook()
函数在另一个文件xdebug_stack.c
中定义,并且似乎没有检查任何配置设置以查看是否应该包含堆栈跟踪在日志中或不...所以你唯一的选择是在php中重写这些函数,并使用set_error_handler()
函数设置一个新的错误处理程序。
祝你好运!