3 回答
TA贡献1876条经验 获得超7个赞
长话短说(如何检查 VSCode 是否正在侦听端口 9000)
启动 XAMPP,启动 VSCode
打开你的 php 脚本
设置断点
打开一个 Linux shell(我在 Windows 上的 Ubuntu 上使用 Bash)
在shell中运行telnet 0.0.0.0 9000或telnet localhost 9000观察连接失败
root ~ $ telnet localhost 9000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
root ~ $ telnet 0.0.0.0 9000
Trying 0.0.0.0...
telnet: Unable to connect to remote host: Connection refused
开始调试并看到如上所述的冻结调试弹出窗口
运行telnet 0.0.0.0 9000或telnet localhost 9000在 shell 中运行并注意区别:您已连接到 VScode!
root ~ $ telnet 0.0.0.0 9000
Trying 0.0.0.0...
Connected to 0.0.0.0.
Escape character is '^]'.
单击冻结的调试弹出窗口上的停止按钮并在外壳中观察
stop -i 1 Connection closed by foreign host.
root ~ $
得出结论,VSCode 确实在监听 0.0.0.0:9000 和 localhost:9000。
挠头,回到 VSCode
开始调试
注意底部的橙色状态栏,上面写着“Listen to XDebug”
注意菜单栏下方的下拉菜单,上面写着“绿色箭头”和“监听 XDebug”
探索下拉菜单并(重新)发现第二个配置“启动当前打开的脚本”,意识到/记住您launch.json有 2 个配置
选择“启动当前打开的脚本”时单击绿色箭头,看到错误弹出“listen EARDRINUSE: address already in use :::9000”
取消错误提示,点击调试弹窗的停止按钮停止调试,注意底部菜单栏变为蓝色
当下拉菜单中再次显示“启动当前打开的脚本”时单击绿色箭头...并注意调试按预期开始
麾!赞扬@LazyOne 的帮助!感谢上天赐予 stackoverflow 社区!
“Listen for XDebug”配置launch.json用于调试从浏览器会话启动的脚本:(i)在 VSCode 中设置断点,(ii)使用“Listen for XDebug”配置开始调试,(iii)启动脚本通过在浏览器中发起请求,(iv) 观察 VSCode 是否在处理请求时触发断点
短篇故事
当您开始在 VSCode 中调试 php 脚本时,请确保选择“启动当前打开的脚本”作为配置,请参见下面的屏幕截图。
事后诸葛亮
我已经改变launch.json了
"configurations": [
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
},
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000
}
]
这样,“启动当前打开的脚本”是默认设置,当我使用主菜单中的“调试|开始调试 F5”开始调试时将使用该脚本。
TA贡献1834条经验 获得超8个赞
launch.json(默认配置):
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000,
}
]}
在 php.ini 中包含指令 xdebug.idkey=VSCODE 是绝对必要的,即使我在文档中没有找到对它的任何引用。
[xDebug]
zend_extension="c:\xampp\php\ext\php_xdebug-2.9.8-7.3-vc15-x86_64.dll"
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.idekey=VSCODE
TA贡献1820条经验 获得超9个赞
我刚刚遇到了这个问题,我试图听 XDebug,但当我尝试按 F5 或运行/调试时什么也没发生......
事实证明,我的工作区中添加了一些幻像文件夹(我一直在使用一些升级工具为我正在处理的应用程序运行一堆测试,所以我猜这就是它的来源?)。
为了能够再次“运行”调试过程,我需要从工作区中删除那个“额外”文件夹。希望这可以帮助遇到类似问题的其他人(不像我那样愚蠢)。
- 3 回答
- 0 关注
- 199 浏览
添加回答
举报