6

我仅将 Xdebug 用于 IDE 调试,并希望阻止它重新格式化 PHP 在浏览器中抛出的错误消息。我只想要常规的 PHP 错误消息,没有堆栈跟踪、表格布局或其他任何内容。我该如何做到这一点?

4

3 回答 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 堆栈跟踪后,我发现了以下问题:

  1. 响应代码始终为 200,您无法覆盖它
  2. 如果您正在处理类似 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 回答