Disable Xdebug 3 "Could not connect" message in CLI

12.9k views Asked by At

When working with Xdebug 3 in CLI, it constantly reports the message when there are no breakpoints set:

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

Is there a way to disable that message form showing in CLI?

7

There are 7 answers

10
Herbert Scheffknecht On BEST ANSWER

Unfortunately, the only way to disable this error is to disable generally ALL errors & warnings in xdebug.ini:

xdebug.log_level = 0

Hopefully there are other ways in future xdebug versions (imho this should only be a weak warning).

EDIT: As LazyOne mentioned, it's also possible to set an value for error_log in php.ini, for example /var/log/php_error.log. With that change, the log entries are written to this file and not sent to stderr.

3
Picard On

In my case the problem was that Xdebug tried to run on every request and since I didn't do debugging on every page refresh errors like Xdebug: [Step Debug] Could not connect to debugging client were reported and are understandable.

The most obvious solution with xdebug.log_level = 0 of course worked, but this was too broad and too blind way to fight this for me. So I checked the documentation, and the best way to get rid of that error in my opinion is to tell Xdebug when it should really run and when not, so the right option in my case is:

xdebug.start_with_request = trigger

as the documentation says:

The functionality only gets activated when a specific trigger is present when the request starts.

The name of the trigger is XDEBUG_TRIGGER, and Xdebug checks for its presence in either $_ENV (environment variable), $_GET or $_POST variable, or $_COOKIE (HTTP cookie name).

and I recommend checking at least that part of their docs because there's more info and you can even do more fine tuning if needed.

0
TiagoA On

If you are running a PHP script or command you can set INI entry using -d:

php -d xdebug.log_level=0 your_sript.php
0
FabianoLothor On

This is what you need:

xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host=1
0
Andreas Heissenberger On

if you only need to suppress the output for one call you can use this - e.g. show version: XDEBUG_CONFIG="log_level=0" composer -v

0
user22084561 On

Changing the php.ini 'xdebug.start_with_request' form 'yes' to 'trigger' solved my issue , I use MAMP.

xdebug.start_with_request = trigger
0
Anton Mikhalev On

Starting from version 3.1, xdebug does not redirect its logs to php logs if you set the path to the log file. In my case, I use the following settings and these messages no longer dazzle the eyes in the console

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

PR for this issue: https://github.com/xdebug/xdebug/pull/738