如何为 Xdebug 3.0 版设置 VSCode launch.json?

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

我正在构建 Laravel 项目。几天前,我重新安装了 OS (Windows 10) 并重建了所有开发环境。问题是 Xdebug 的更新版本。

使用 Xdebug 版本 2 调试后端运行良好,但我已经从 xdebug.org/wizard 下载了使用 Xdebug v3 设置的 dll 文件,并根据指南(就像我以前做的那样)。但是我不能再调试了。

这是我的 launch.json 文件(旧版本)

{
    // 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
        }
    ]
}

而且似乎有一些功能从 v2 更新了。

类似于上图。 我尝试了所有可能的情况但找不到解决方案..任何人都可以帮助我吗?任何建议表示赞赏。谢谢。

IDE:
正如升级指南 (https://xdebug.org/docs/upgrade_guide) 所示,首先发生变化的是 IDE 应该侦听连接的端口号。您已经突出显示了这一点,但请确保在 json 配置文件中将其更改为 9003。这应该是您必须在 IDE.

中做的唯一更改

下一步 - Xdebug 的配置:
Xdebug 中有这个新设置:xdebug.mode (https://xdebug.org/docs/all_settings#mode)。它的默认值是 develop 并且您必须更改它(显式将其设置为 debug)以便将 Xdebug 置于调试模式(为此您必须更改 php.ini)。有关详细信息,请参阅文档。

更新:
正如@LazyOne 在评论部分中正确建议的那样,如果您想保留端口 9000,您可以跳过在 VS Code 中修改它,而是在 Xdebug 设置中将端口设置回 9000:https://xdebug.org/docs/step_debug#client_port

这就是说,默认端口号被更改的原因是:https://bugs.xdebug.org/view.php?id=1848。您可能想要采用新的端口号。

我通过使用 artisan 命令删除缓存解决了这个问题:

php artisan cache:clear

我不知道这个命令是如何解决问题的,但我注意到当我将端口更改为 9003 时,我仍然在端口 9000 上出错!我认为 laravel 已经缓存了端口!