防止Xdebug格式化PHP错误消息

时间:2012-11-08 20:31:31

标签: php xdebug

我只使用Xdebug进行IDE调试,并希望阻止它重新格式化PHP在浏览器中抛出的错误消息。我只想要常规的PHP错误消息,没有堆栈跟踪,表格布局或其他任何东西。我如何实现这一目标?

3 个答案:

答案 0 :(得分:5)

在这种情况下,您要设置:xdebug.default_enable=0。这将在出现错误消息时禁用堆栈跟踪。

答案 1 :(得分:1)

您可以在php.ini中控制XDebug的堆栈跟踪:

请参阅http://xdebug.org/docs/stack_trace

有关完整配置选项:http://xdebug.org/docs/all_settings

答案 2 :(得分:0)

此代码将解决问题,而无需更改xdebug配置https://xdebug.org/docs/all_functions

if (function_exists('xdebug_disable')) {
    //Disables stack traces
    //Disable showing stack traces on error conditions.
    xdebug_disable();
}

按照Derick的建议设置xdebug.default_enable=0效果很好,但是需要更改xdebug设置。

您可能想使用register_shutdown_function()

注册自己的错误处理程序

启用xdebug堆栈跟踪时发现以下问题:

  1. 响应代码始终为200,您无法覆盖它
  2. 如果您正在使用类似API之类的东西,并且期望它以格式化的错误消息(例如JSON错误响应)响应,这会使响应格式错误,因为xdebug将先输出,然后再使用您自己的注册关闭功能进行输出< / li>

有趣的是,如果在xdebug配置中未指定xdebug.default_enable=0,则ini_get('xdebug.default_enable')将返回字符串“ 0”。如果设置xdebug.default_enable=0,则它也是字符串“ 0”。因此,无论是否启用ini_get('xdebug.default_enable'),您都无法使用{{1}}。