Xdebug 在没有错误的情况下启动与客户端的连接

Xdebug initiates connections with the client on no error

我遇到了一个问题,我不确定这是一个问题还是有意为之。

xdebug.mode=debug
xdebug.start_upon_error=yes

脚本中没有(未捕获的)错误或异常,但在请求处理期间多次启动连接。 这会导致响应极其缓慢,尤其是当客户端没有监听时,这会多次出现在控制台中 (4-6)。

[Fri Apr 23 15:32:31 2021] Xdebug: [Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(

所有异常处理正确,响应正常,就是慢得要命。

如果我将 start_upon_error 改为 no 或将 mode 改为 develop,这个问题就消失了。

文档没有说明关于这个主题的任何内容,而 xdebug.show_error_tracexdebug.show_exception_trace 都有信息,如下所示:

When this setting is set to 1, Xdebug will show a stack trace whenever an Error is raised - even if this Error is actually caught.

所以我的问题是,这种行为是故意的吗?如果是这样,它也应该出现在文档中。

使用 Xdebug 版本 3.0.0 和 3.0.4(PHP 8、ZTS、x64)进行了尝试。 感谢您提前做出反应。

当异常通过时,Xdebug 不知道(也看不到)它是否会被捕获。因此,它需要启动调试请求,以便 IDE 可以处理潜在的 warning/error/Exception。

因此,这是有意的。

如您所说,应该记录在案。进行排序的最佳方法是在 https://bugs.xdebug.org

提交 feature/doc 错误请求