亲爱的PHP人士,有没有办法让Xdebug在屏幕上显示整个堆栈,但不将其写入错误日志?我只想要日志文件本身中的实际错误行,但我想在屏幕上看到堆栈.
解决方法:
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()函数设置新的错误处理程序.
祝好运!