If you find Xdebug useful, please consider supporting the project.

DBGp Proxy Tool

This tool allows you to proxy and route debugging request to IDEs depending on which IDE key is in use.

Installation #

A binary for Linux, macOS, and Windows is available on the downloads page. You only have to download the binary, which you can then run from a command line.

Command Line Options #

The following command line options are available:

-h Show this help
-i host:port
--client host:port
Specify the port to listen on for IDE (client) connections [localhost:9001].
-s host:port
--server host:port
Specify the port to listen on for debugger engine (server) connections [localhost:9003].
-v Show version number and exit

Usage #

To start the client on the command line on Linux, open a shell, and then run:

./dbgpProxy

If the binary doesn't start or you get a not found message, please refer to this FAQ entry.

To start the client on the command line on macOS, open a shell, and then run:

./dbgpProxy-macos

On Windows, open a command a Command Prompt and run:

dbgpProxy.exe

In all cases, you can add the command line options as described above.

When the proxy starts, it shows some version information. It will then wait until a connection is made to it by a debugging engine (such as Xdebug):

Xdebug DBGp proxy (0.3)
Copyright 2020 by Derick Rethans
15:17:35.423 [warn] [SSL] The 'certs/fullchain.pem' file could not be found, not enabling SSL listeners
15:17:35.424 [info] [dbgpProxy] Proxy started
15:17:35.424 [info] [server] Started server server on 127.0.0.1:9003
15:17:35.424 [info] [server] Started client server on 127.0.0.1:9001

When a client registers itself with the proxy it displays the IDE Key and where to reach that client:

15:18:57.087 [info] [server] Start new client connection from 127.0.0.1:54196
15:18:57.087 [info] [proxyinit] [derickr] Added connection for IDE Key 'derickr': 127.0.0.1:9099
15:18:57.087 [info] [server] Closing client connection from 127.0.0.1:54196

At this point the client should be ready to take incoming debugging connections to its registered port (127.0.0.1:9099 in this example).

You can stop the proxy by pressing Ctrl-C in its terminal. Once all debugging connections are closed, the proxy service will stop.