我遇到了一个问题,我不确定是问题还是预期问题。
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_trace
和xdebug.show_exception_trace
都有如下信息:
当此设置设置为1时,无论何时出现错误,Xdebug都将显示堆栈跟踪-即使此错误实际上被捕获。
所以我的问题是,这种行为是有意的吗?如果是这样,它也应该出现在文档中。
在Xdebug 3.0.0和3.0.4版本(PHP 8、ZTS、x64(中尝试过这一点。感谢您的提前反应。
当异常通过时,Xdebug不知道(也看不到(它是否会被捕获。因此,它需要启动调试请求,以便IDE能够处理潜在的警告/错误/异常。
因此,这是有意的。
正如你所说,它应该被记录下来。最好的排序方法是在https://bugs.xdebug.org