Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
流浪者、PhpStorm、HHVM和Xdebug_Php_Vagrant_Phpstorm_Xdebug_Hhvm - Fatal编程技术网

流浪者、PhpStorm、HHVM和Xdebug

流浪者、PhpStorm、HHVM和Xdebug,php,vagrant,phpstorm,xdebug,hhvm,Php,Vagrant,Phpstorm,Xdebug,Hhvm,我在获取HHVM中的PhpStorm和内部Xdebug时遇到了一些问题,它们在vagrant box上运行得很好,下面是我的php.ini xdebug.enable=1 xdebug.remote_enable=1 xdebug.idekey="PHPSTORM" xdebug.remote_host="10.0.2.2" xdebug.remote_autostart=0 xdebug.remote_connect_back=1 PhpStorm正在侦听端口9000,如果我在第一次运行时删

我在获取HHVM中的PhpStorm和内部Xdebug时遇到了一些问题,它们在vagrant box上运行得很好,下面是我的php.ini

xdebug.enable=1
xdebug.remote_enable=1
xdebug.idekey="PHPSTORM"
xdebug.remote_host="10.0.2.2"
xdebug.remote_autostart=0
xdebug.remote_connect_back=1
PhpStorm正在侦听端口9000,如果我在第一次运行时删除所有远程服务器,PhpStorm将提供通常的“来自Xdebug的传入连接”

在我选择正确的映射并命中第一个断点后,HHVM将在返回504网关超时之前挂起。如果删除断点,则加载是即时的,因此显然PhpStorm和Xdebug似乎正在通信,但调试窗口从不显示任何堆栈信息/断点控件

有人有什么建议吗?我的想法是: 1) 我需要在Vargrant箱上打开一个端口,因为通信挂在某处 2) HHVM/PhpStorm中的错误(不太可能)

我使用的是Ubuntu 14.04,Vagrant 1.6.5

使用Nginx+HipHop虚拟机3.4.1,扩展API:20140829,虚拟机也是14.04

PhpStorm 8.0.2


我现在已经为Xdebug远程连接启用了在vagrant框上的日志记录,这是输出

Log opened at[2014-12-18 14:59:16]
I: Checking remote connect back address.
I: Remote address found, connecting to 192.168.56.1:9089.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///var/www/public/index.php" language="PHP" protocol_version="1.0" appid="9660" idekey="PHPSTORM"><engine version=""><![CDATA[xdebug]]></engine><author><![CDATA[HHVM]]></author><url><![CDATA[http://hhvm.com/]]></url><copyright><![CDATA[Copyright (c) 2002-2013 by Derick Rethans]]></copyright></init>

<- feature_set -i 1 -n show_hidden -v 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="1" feature="show_hidden" success="1"></response>

<- feature_set -i 2 -n max_depth -v 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_depth" success="1"></response>

<- feature_set -i 3 -n max_children -v 100
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="3" feature="max_children" success="1"></response>

<- status -i 4
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="status" transaction_id="4" status="starting" reason="ok"></response>

<- step_into -i 5
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="break" reason="ok" command="step_into" transaction_id="5"><xdebug:message lineno="12" filename="file:///var/www/public/index.php"></xdebug:message></response>

<- breakpoint_set -i 6 -t line -f file:///var/www/public/index.php -n 32
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="6" id="18" state="enabled"></response>
日志于[2014-12-18 14:59:16]打开
I:正在检查远程回接地址。
I:找到远程地址,正在连接到192.168.56.1:9089。
I:已连接到客户端。:-)
-> 
但是发生了一件非常奇怪的事情,如果我在PhpStorm中单击“添加方法以跳过列表”按钮,它将继续与XDebug通信,就像是在变量中单步执行一样,每次单击一个

<- stack_get -i 8
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stack_get" transaction_id="8"><stack where="{main}" level="0" type="file" filename="file:///var/www/public/index.php" lineno="12"></stack></response>

最终,在这些“stack_get”调用中的几个已经以这种方式被黑客介入之后,会显示预期的控件


有人有什么建议吗?

这个问题现在已经在github上解决了:

我现在把它作为HHVM错误提交了。运气好吗?我对PHPStorm8,vagrant,hhvm 3.6也有同样的问题。在我们公司,我们用20行python代码复制了一个与hhvm内的xdebug模块的工作通信,它工作起来很有魅力,在Jetbrains上,当人们问到这个问题时,它们从天而降,顺便说一句,这种行为在使用Codebug时发生得非常相似,我也将向他们提出一个问题-顺便说一句,问题仍然存在于PHPStorm 9 EAP和hhvm 3.7中,这是否真的适用于您?我的调试器可以工作,但断点不起作用。它总是在第一个文件处停止……是的,它对我有效,因为我使用的补丁程序是192.168.56.1作为我的远程主机ip。