我正在尝试在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的事情。
感谢您的帮助。
答案 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
}
]
}