使用xdebug设置VSCode:pathMapping

时间:2018-03-30 23:54:52

标签: visual-studio-code xdebug vscode-settings

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

我是新手,不知道如何正确设置。如果有人能向我解释pathMapping要求的变量和/或属性,那么我将永远为你负债。

我的系统信息如下: PHP版本:5.524 xdebug版本:2.2.5 操作系统Windows 8.1 使用Desktop Server版本:3.8.5

我检查了phpinfo()并在文件中显示了Xdebug,因此我知道它已安装。 launch.json文件非常基本,端口9000和所有这些。我只需要完成那个darned pathMapping的事情。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

我猜您是否正在使用PHP调试扩展程序?

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

README.md说明如下:

远程主机调试

要在远程主机上调试正在运行的应用程序,您需要告诉XDebug连接到不同于localhost的IP。这可以通过将xdebug.remote_host设置为您的IP或通过设置xdebug.remote_connect_back = 1来使XDebug始终连接回执行Web请求的计算机来完成。后者是唯一支持多个用户调试同一服务器的设置,而且#34;只是工作"用于Web项目。同样,请参阅有关该主题的XDebug文档以获取更多信息。

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

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

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

答案 1 :(得分:0)

因此,我本人以及其他可能对此有所帮助的人都非常喜欢。我在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
    }
]

}