使用 xdebug 设置 VSCode:pathMapping

Setting up VSCode with xdebug: pathMapping

我正在尝试在 VSCode 中设置调试并让 运行 遇到一些挑战。我输入了 localSourceRoot 的路径,但 Intellisense 告诉我它已被弃用,我应该改用 pathMapping。

我是新手,不知道如何正确设置。如果有人能向我解释变量 and/or 属性 pathMapping 所要求的,我将永远欠你的债。

我的系统信息如下: PHP版本:5.524 x调试版本:2.2.5 OS Windows 8.1 使用桌面服务器版本:3.8.5

我检查了 phpinfo(),它在文件中显示了 Xdebug,所以我知道它已安装。 launch.json 文件是非常基本的端口 9000 等等。我只需要完成该死的 pathMapping 事情。

感谢所有帮助。

我猜你正在使用 PHP 调试扩展?

https://github.com/felixfbecker/vscode-php-debug

README.md 表示如下:

远程主机调试

要在远程主机上调试 运行 应用程序,您需要告诉 XDebug 连接到与本地主机不同的 IP。这可以通过将 xdebug.remote_host 设置为您的 IP 或通过设置 xdebug.remote_connect_back = 1 使 XDebug 始终连接回发出 Web 请求的机器来完成。后者是唯一支持多个用户调试同一台服务器并且对 Web 项目“正常工作”的设置。同样,请参阅有关该主题的 XDebug 文档以获取更多信息。

要使 VS Code 将服务器上的文件映射到本地计算机上的正确文件,您必须在 launch.json 中设置 pathMappings 设置。示例:

// server -> local
"pathMappings": {
  "/var/www/html": "${workspaceRoot}/www",
  "/app": "${workspaceRoot}/app"
}

另请注意,设置任何 CLI 调试选项都不适用于远程主机调试,因为脚本始终在本地启动。如果您想在远程主机上调试 CLI 脚本,您需要从命令行手动启动它。

因此,这既是对我自己的参考,也是对可能会觉得这有帮助的其他人的参考。我使用 xdebug 和 drupalvm 运行 VSCODE,在 php.ini

中设置以下内容后,以下对我有用
php_xdebug_idekey: VSCODE

{
// 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,
        "pathMappings": {
            "/var/www/drupalvm/drupal": "${workspaceRoot}/drupal",
          },
        "log": true
    },
    {
        "name": "Launch currently open script",
        "type": "php",
        "request": "launch",
        "program": "${file}",
        "cwd": "${fileDirname}",
        "port": 9000
    }
]

}