首页 > 解决方案 > 使用 SSH 连接编辑代码时使用 Xdebug 进行 VSCode 远程调试

问题描述

pathMappings当我使用 VSCode 远程资源管理器 SSH 插件从 Windows 机器上打开 Linux 网络服务器上的远程目录时,不确定如何在 VSCode 调试配置中进行配置。如果我在本地存储源的副本并使用本地源启动 VSCode,则调试工作正常。

Web 服务器是 Ubuntu 14 Lamp,本地系统是 Windows 10。使用 VSCode 中的远程资源管理器插件从 Windows 工作站 ssh 到 Linux 服务器并在服务器上编辑源代码。

当我在本地存储源文件并通过打开本地副本启动 VSCode 时,这在 VSCode 调试配置中工作正常。

        pathMappings": {
           "/var/www/html/codeigniter/": "${workspaceRoot}",
        },

当我使用远程资源管理器在 Windows 上启动 VSCode 时,此配置不起作用。我通过远程资源管理器连接到这个根文件夹/var/www/html/codeigniter/

当我通过 VSCode 的 SSH 插件打开 Linux 服务器上的文件时,我希望能够识别断点并停止代码,但它们不是,并且代码运行时不会遇到断点。

标签: phpvisual-studio-codexdebug

解决方案


谢谢回复。我想避免拥有我的代码副本,以便在调试时进行编辑。我确实最终让事情正常了。所以我可以使用 VSCODE ssh 连接,然后在服务器上调试和编辑源代码,而无需制作本地副本。

"name": "Listen for XDebug",
"type": "php",
"request": "launch", 
"port": 9000    

在我的 linux 服务器上我的 xdebug 设置

xdebug.remote_handler=dbgp
xdebug.remote_log="/tmp/xdebug/log"
xdebug.profiler_enable = 1
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_autostart = 1
xdebug.remote_host = 127.0.0.1

我必须将 remote_host 设置为本地主机,然后一切正常。我对 xdebug 的理解不够,无法意识到即使 IDE 调试器在同一台主机上运行,​​也需要设置 remote_host。我对 vscode 的了解还不够,无法意识到在 SSH 远程编辑模式下,调试组件实际上安装在远程服务器上,使其成为 xdebug 和远程主机之间的 localhost 连接。

无论如何,问题解决了。感谢您的回答,这对我的道路有所帮助。


推荐阅读