How to setup VSCode launch.json for Xdebug version 3.0?

I am building Laravel project now. Few days ago, I’ve reinstalled OS (Windows 10) and rebuild all development environment. Problem is updated version of Xdebug.

Debugging backend with version 2 of Xdebug worked well, but I have downloaded dll file which set with Xdebug v3 from xdebug.org/wizard, and according guide (something like I did before). But I cannot debug anymore.

Here is my launch.json file (old version)

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

And it seems there are some features updated from v2.

enter image description here

Something like above image. I tried all cases I can but cannot found solution.. Anybody can help me? Any advice is appreciate. thanks.

Answer

IDE:
As the upgrade guide (https://xdebug.org/docs/upgrade_guide) shows, the first thing that has changed is the port number the IDE’s should listen on for connections. This you have highlighted, but make sure you change it to 9003 in the json config file. This should be the only change you have to do in your IDE.

Next – Config of Xdebug:
There is this new setting in Xdebug: xdebug.mode (https://xdebug.org/docs/all_settings#mode). Its default value is develop and you have to change it (explicitly set it to debug) in order to put Xdebug in debug mode (you have to alter php.ini for this). Please see documentation for further details.

UPDATE:
As @LazyOne correctly suggested in the comments section, if you’d like to keep port 9000, you can skip modifying this in VS Code and instead set the port back to 9000 in the Xdebug settings: https://xdebug.org/docs/step_debug#client_port

This being said, the default port number was altered for a reason: https://bugs.xdebug.org/view.php?id=1848. You might want to adopt the new port number.

Leave a Reply

Your email address will not be published. Required fields are marked *