VS Code打开非应用根目录子文件夹时Xdebug断点失效如何解决
VS Code打开子目录时Xdebug断点失效的解决方案
你遇到的断点忽略问题不是工作目录配置错误导致的,本质是Xdebug上报的运行时文件路径和VS Code本地打开的文件路径无法匹配,cwd参数仅控制调试器的工作目录,无法解决路径匹配问题,需要配置pathMappings参数对齐两端路径。
步骤1:定位launch.json配置文件
打开当前drupal工作区下的.vscode/launch.json文件,没有的话可以在运行和调试面板点击「创建launch.json文件」,选择PHP环境自动生成基础模板。
步骤2:添加pathMappings路径映射配置
修改Listen for Xdebug对应的配置项,新增pathMappings参数,示例配置如下:
{ "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003, "pathMappings": { // 替换为运行环境中myproject目录的绝对路径 "/www/server/myproject": "${workspaceFolder}/../..", // 替换为运行环境中drupal目录的绝对路径 "/www/server/myproject/repos/drupal": "${workspaceFolder}" } } ] }
配置说明
- 如果你在本地直接运行PHP服务,直接替换为你本地myproject、drupal目录的绝对路径即可,Windows系统路径需要用双反斜杠转义,例如
C:\\code\\myproject - Xdebug 2版本默认端口为9000,需将port参数修改为9000,和
php.ini中的xdebug.remote_port(Xdebug 2)或xdebug.client_port(Xdebug 3)配置保持一致 - 配置完成后保存文件,重启调试会话即可生效,无需修改Xdebug或PHP的其他配置
如果你不确定运行环境的目录绝对路径,可以在项目任意PHP文件中加入
echo __DIR__;运行后即可获取当前文件的服务器端绝对路径,以此为参考配置映射关系。
内容的提问来源于stack exchange,提问作者joachim
相关产品推荐
相关产品推荐

