Vagrant, PhpStorm, HHVM and Xdebug

I am having problems getting PhpStorm and an internal Xdebug in HHVM that plays nicely on a wandering field, below is my 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 listens on port 9000, if I delete all the remote servers on first start, PhpStorm gives me the usual "incoming connection from Xdebug".

After I select the correct mapping and hit the first breakpoint, the HHVM appears to insert before returning the 504 Gateway Time-out. If I remove the breakpoint, then the load will be instantaneous, so it is clear that PhpStorm and Xdebug are interacting, but the stack / breakpoint information controls are never displayed in the debug window.

Does anyone have directions, my thoughts are: 1) I need to open the port on the Vargrant box, because the connection hangs somewhere 2) Error in HHVM / PhpStorm (unlikely)

I'm on Ubuntu 14.04, Vagrant 1.6.5

VM also 14.04 with Nginx + HipHop VM 3.4.1, extension API: 20140829

PhpStorm 8.0.2


Now I have enabled logging on the firewall for remote Xdebug connections, this is the result ....

 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> 

A very strange thing, though, if I click the Add Method to Skip List button in PhpStorm , it continues to communicate with XDebug, as if it were passing through variables, one with each click ...

 <- 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> 

Ultimately, the expected controls are displayed after several of these stack_get calls have been cracked this way.

Does anyone have any suggestions?

+6
source share
1 answer

This issue is now closed for github: https://github.com/facebook/hhvm/issues/4488

+2
source

Source: https://habr.com/ru/post/979844/


All Articles