18

在 CLI 中使用 Xdebug 3 时,它会在没有设置断点时不断报告消息:

"Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-("

有没有办法禁用 CLI 中显示的消息表单?

4

4 回答 4

25

不幸的是,禁用此错误的唯一方法是禁用 xdebug.ini 中的所有错误和警告:

xdebug.log_level = 0

希望在未来的 xdebug 版本中有其他方法(恕我直言,这应该只是一个弱警告)。

编辑:正如 LazyOne 提到的,也可以为error_login设置一个值php.ini,例如/var/log/php_error.log。通过该更改,日志条目将写入此文件,而不是发送到 stderr。

于 2020-12-09T14:19:46.570 回答
5

在我的情况下,问题是 Xdebug 试图在每个请求上运行,因为我没有对每个页面刷新错误进行调试,如Xdebug: [Step Debug] Could not connect to debugging client报告并且是可以理解的。

最明显的解决方案xdebug.log_level = 0当然是有效的,但是这对我来说太宽泛太盲目了。所以我检查了文档,我认为消除该错误的最佳方法是告诉 Xdebug 什么时候应该真正运行,什么时候不应该运行,所以在我的情况下,正确的选择是:

xdebug.start_with_request = trigger

正如文档所说:

该功能仅在请求开始时存在特定触发器时才被激活。

触发器的名称是 XDEBUG_TRIGGER,Xdebug 会检查它是否存在于 $_ENV(环境变量)、$_GET 或 $_POST 变量或 $_COOKIE(HTTP cookie 名称)中。

我建议至少检查他们文档的那一部分,因为有更多信息,如果需要,您甚至可以进行更多微调。

于 2021-06-20T16:16:55.387 回答
0

从 3.1 版本开始,如果您设置日志文件的路径,xdebug 不会将其日志重定向到 php 日志。就我而言,我使用以下设置,这些消息不再使控制台中的眼睛眼花缭乱

xdebug.log=/var/www/var/log/xdebug.log
xdebug.log_level=3

此问题的公关:https ://github.com/xdebug/xdebug/pull/738

于 2022-02-16T06:25:54.617 回答
-3

这就是你需要的:

xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host=1
于 2021-03-22T22:01:41.897 回答