1

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

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_errornoto modedevelop这个问题就会消失。

该文档没有说明有关此主题的任何内容,而两者xdebug.show_error_trace都有xdebug.show_exception_trace信息,如下所示:

当此设置设置为 1 时,Xdebug 将在引发错误时显示堆栈跟踪 - 即使实际捕获了此错误。

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

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

4

1 回答 1

1

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

因此这是有意的。

正如你所说,它应该被记录在案。进行排序的最佳方法是在https://bugs.xdebug.org提交功能/文档错误请求

于 2021-04-23T14:00:03.253 回答