我仅将 Xdebug 用于 IDE 调试,并希望阻止它重新格式化 PHP 在浏览器中抛出的错误消息。我只想要常规的 PHP 错误消息,没有堆栈跟踪、表格布局或其他任何内容。我该如何做到这一点?
问问题
4855 次
3 回答
7
在这种情况下,您要设置:xdebug.default_enable=0
。这将在出现错误消息时禁用堆栈跟踪。
于 2012-11-12T13:33:19.827 回答
2
您可以在 php.ini 中控制 XDebug 的堆栈跟踪:
见http://xdebug.org/docs/stack_trace
对于完整的配置选项:http: //xdebug.org/docs/all_settings
于 2012-11-08T20:33:58.240 回答
1
此代码将解决问题而无需更改您的 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 堆栈跟踪后,我发现了以下问题:
- 响应代码始终为 200,您无法覆盖它
- 如果您正在处理类似 API 之类的东西,它预计会以格式化的错误消息(例如 JSON 错误响应)进行响应,这会使响应格式错误,因为 xdebug 将在您使用自己注册的关闭函数输出之前输出
有趣的是,当xdebug.default_enable=0
您的 xdebug 配置中未指定时,ini_get('xdebug.default_enable')
将返回字符串“0”。如果您设置xdebug.default_enable=0
它也是字符串“0”。因此,您不能使用ini_get('xdebug.default_enable')
它来检测它是否启用。
于 2018-08-17T11:43:49.563 回答