PhpStorm 接收传入的 xdebug 连接,但对它们不执行任何操作

问题描述

我在一台机器上运行 PHPStorm,我在另一台机器上运行 PHP-fpm。我在他们之间有一个 ssh 隧道。

我有以下陈述的证据:

  1. ssh 隧道已正确配置并且可以正常工作(我正在使用 ncnc -l 对其进行测试)。

  2. xdebug 配置正确且工作正常(我使用 nc -l 接收它的连接,而且我可以成功使用另一个 IDE(vscode))

  3. PHPstorm 正在接收传入连接

我的网站不断刷新页面,在我的隧道控制台上我看到不断的消息

connect_to localhost port 9001: Failed

这证明,xdebug 在每次刷新时都尝试连接到 IDE,但失败了。

那我按

enter image description here

Start listening for PHP Debug Connections 按钮,这些消息就会消失。

这意味着 ssh 现在可以连接到 IDE

但问题是没有其他事情发生。没有任何断点触发器,没有出现任何提供映射的对话框,什么都没有。

还有什么可以检查来解决这个问题?


PHP版本为:5.6.33-0+deb8u1 Xdebug 版本为:2.2.5 PHPstorm 版本为:2020.3


以下内容出现在 xdebug 日志中:

Log opened at 2020-12-22 12:14:17
I: Connecting to configured address/port: 127.0.0.1:9001.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///settings/html/load_menu.PHP" language="PHP" protocol_version="1.0" appid="13307" idekey="1"><engine version="2.2.5"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[copyright (c) 2002-2014 by Derick Rethans]]></copyright></init>


<!**************** MY REMARK ********************!>


-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

Log closed at 2020-12-22 12:14:17

注意 my remark 的位置。如果我收到与 nc -l 9001 的连接,它会在此等待,直到我断开与 Ctrl-C 的连接。

如果我收到与 PHPStorm 的连接或者如果我没有收到它,它会立即通过这个地方。

这意味着 PHPstorm 接收传入连接并立即将其丢弃。为什么?


如果我收到与 vscode 的连接,很多消息如

<- breakpoint_list -i 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="1"></response>

出现在 my remark

解决方法

在设置中没有发现错误。原来是 a bug in PhpStorm 2020.3 和切换到 Preview build 立即帮助。感谢@LazyOne :)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...