使用 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
}
]
}
我正在尝试在 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
}
]
}