Отключить сообщение Xdebug 3 «Не удалось подключиться» в интерфейсе командной строки.

При работе с Xdebug 3 в CLI он постоянно сообщает сообщение, если не установлены точки останова:

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

Есть ли способ отключить отображение этой формы сообщения в интерфейсе командной строки?

7 ответов

Решение

К сожалению, единственный способ отключить эту ошибку - отключить, как правило, ВСЕ ошибки и предупреждения в xdebug.ini:

      xdebug.log_level = 0

Надеюсь, в будущих версиях xdebug будут другие способы (имхо, это должно быть только слабое предупреждение).

В моем случае проблема заключалась в том, что 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 (имя файла cookie HTTP).

и я рекомендую проверить хотя бы эту часть документациюих документации, потому что там больше информации, и вы даже можете выполнить более точную настройку, если это необходимо.

Начиная с версии 3.1, xdebug не перенаправляет свои логи в логи php, если вы указали путь к лог-файлу. В моем случае я использую следующие настройки и эти сообщения больше не слепят глаза в консоли

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

PR для этой проблемы: https://github.com/xdebug/xdebug/pull/738

Изменение формы php.ini «xdebug.start_with_request» «да» на «триггер» решило мою проблему, я использую MAMP.

      xdebug.start_with_request = trigger

если вам нужно только подавить вывод для одного вызова, вы можете использовать это, например, показать версию:XDEBUG_CONFIG="log_level=0" composer -v

Если вы запускаете скрипт или команду PHP, вы можете установить запись INI, используя -d:

      php -d xdebug.log_level=0 your_sript.php

Это то, что вам нужно:

      xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host=1
Другие вопросы по тегам