Xdebug 未在 VSCode、MAMP 和 Xdebug 中的断点处单步执行

Xdebug not stepping at breakpoints in VSCode, MAMP and Xdebug

以前,我的 Xdebug 只在代码的第一个断点处停止。然后,我决定重新安装我所有的设置(简单的 MAMP [不是 PRO] 和 Xdebug)来尝试修复它。但是,实际上我的调试器甚至没有进入第一个断点。

我也一直在搜索和修改这两个 php.ini 文件,就像我以前做的那样 (https://dillieodigital.wordpress.com/2015/03/10/quick-tip-enabling-xdebug-in-mamp-for-osx/),但是 none 这项工作。

这是我的 php.ini 文件:

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.4.21/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so"
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.remote_connect_back = 0

我的 launch.json 或我的工作空间:

{
    "folders": [
        {
            "path": "."
        }
    ],
    "launch": {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Listen for Xdebug",
                "type": "php",
                "request": "launch",
                "port": 9003
            },
            {
                "name": "Launch currently open script",
                "type": "php",
                "request": "launch",
                "program": "${file}",
                "cwd": "${fileDirname}",
                "port": 0,
                "runtimeArgs": [
                    "-dxdebug.start_with_request=yes"
                ],
                "env": {
                    "XDEBUG_MODE": "debug,develop",
                    "XDEBUG_CONFIG": "client_port=${port}"
                }
            },
            {
                "name": "Launch Built-in web server",
                "type": "php",
                "request": "launch",
                "runtimeArgs": [
                    "-dxdebug.mode=debug",
                    "-dxdebug.start_with_request=yes",
                    "-S",
                    "localhost:0"
                ],
                "program": "",
                "cwd": "${workspaceRoot}",
                "port": 9003,
                "serverReadyAction": {
                    "pattern": "Development Server \(http://localhost:([0-9]+)\) started",
                    "uriFormat": "http://localhost:%s",
                    "action": "openExternally"
                }
            }
        ]
    }
}

我做错了什么?可能是很简单的东西,但我没有任何线索。

您使用的是 Xdebug 3 吗?因为在那种情况下,php.ini 设置的名称已更改,您可以在 upgrade guide.

中找到更改

为了诊断其他问题,请尝试调试一个包含 xdebug_info() 的 PHP 文件,它会告诉您 Xdebug 是否尝试连接到您的 IDE以及是否成功。如果没有,它会告诉你原因。