Xdebug 在 VS Code 中不存在的断点处停止

Xdebug stops at non-existing breakpoints in VS Code

大多数时候,我在 VS Code 中使用 Xdebug 调试我的 PHP 代码没有问题。但最近,VS Code 开始忽略我的断点,而是停在随机函数声明处。

即它将在下面的函数中停在 function x($a) 而不是停在断点处:

function x($a) {
    // Some code, including a line with a breakpoint
}

即使调试在函数声明处停止,我也无法进入函数中的代码。阿卡。我无法调试任何东西 :panic:

我的launch.json:

"version": "0.2.0",
"configurations": [
{
    "name": "Listen for XDebug",
    "type": "php",
    "request": "launch",
    "port": 9090
},
{
    "name": "Launch currently open script",
    "type": "php",
    "request": "launch",
    "program": "${file}",
    "cwd": "${fileDirname}",
    "port": 9090
}
]  

有任何解决此问题的想法,以便我的 Xdebug 调试将再次开始运行吗?

我尝试重启 VS Code 和 Apache + 更改端口号。没有帮助。

我系统上的版本:

您是 运行 一个不受支持的 PHP 和 Xdebug 版本。这是一个已知问题,已在 Xdebug 2.9.1 中修复。问题来自 php-debug 扩展中实现的 resolved_breakpoints 问题。 作为解决方法,您可以通过将此添加到您的 launch.json 配置

来禁用此功能
      "xdebugSettings": {
        "resolved_breakpoints": "0"
      },

在我最后的回复中可以找到更深入的分析和 Xdebug 问题的链接: https://github.com/xdebug/vscode-php-debug/issues/629

然而,这不应阻止您更进一步。 您的监视面板中是否有一些变量?在 3.1.0 之前的 Xdebug 中 eval 损坏的代码导致调试引擎正确停止 运行(异常未被正确捕获)。