Vagrant, PhpStorm, HHVM and Xdebug - php

I'm having problems getting PhpStorm and the internal Xdebug in HHVM playing nicely on a vagrant box, 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 is listening on Port 9000, if I remove all remote servers upon first run PhpStorm gives me the usual "Incoming Connection from Xdebug".
After I select the correct mapping and the first breakpoint is hit HHVM appears to hang before returning a 504 Gateway Time-out. If I remove the breakpoint then the load is instant, so clearly the PhpStorm and Xdebug appear to be communicating, but the debug window never shows any stack info / break point controls.
Does anyone have any pointers please, my thoughts are:
1) I need to open a port on the Vargrant box as communication is hanging somewhere
2) Bug in HHVM / PhpStorm (Unlikely)
I'm on Ubuntu 14.04, Vagrant 1.6.5
VM is also 14.04 with Nginx + HipHop VM 3.4.1, Extension API: 20140829
PhpStorm 8.0.2
I have now enabled logging on the vagrant box for Xdebug remote connections, this is the output....
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 peculiar thing happens though, if I click the "Add method to skip list" button in PhpStorm, It continues communicating with XDebug as if stepping 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>
Eventually the expected controls are shown after several of these "stack_get" calls have been hackily stepped through in this manner.
Does anybody have any suggestions?

This issue has now been closed on github: https://github.com/facebook/hhvm/issues/4488

Related

Debugging local Symfony server doesn't work in all places

I'm using PhpStorm to run my Symfony application locally. In order to debug, I installed Xdebug as well as the corresponding helper extension for Chrome.
Debugging in general works. For example, if I put a breakpoint in the doDispatch() function inside of the Symfony class Symfony\Component\EventDispatcher and start my server, the breakpoint triggers and I can step through the code.
However, that very same breakpoint is being ignored, when I call the method through my own code. Any breakpoint I put into my own controllers/services isn't recognized either, even though there is a checkmark on the breakpoints once the server starts.
This is what I've added to my php.ini:
zend_extension = /usr/lib/php/modules/xdebug.so
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
xdebug.remote_cookie_expire_time = 3600
xdebug.remote_enable = 0
xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
This is my server output on startup:
/usr/bin/php -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 /home/.../bin/console server:run
[OK] Server listening on http://127.0.0.1:8001
// Quit the server with CONTROL-C.
I've tried both localhost:8000 as well as 127.0.0.1:8001 for debugging, but both of them don't trigger my breakpoints.
FYI, I did start listening for PHP debug connections in PhpStorm and started debugging in the browser extension.
I'm using PHP version 7.3.1 and the newest beta version of Xdebug.
xdebug.log after hitting a route whose controller had a breakpoint in it:
[28601] Log opened at 2019-01-29 15:54:28
[28601] I: Checking remote connect back address.
[28601] I: Checking header 'HTTP_X_FORWARDED_FOR'.
[28601] I: Checking header 'REMOTE_ADDR'.
[28601] W: Remote address not found, connecting to configured address/port: 127.0.0.1:9000. :-|
[28601] I: Connected to client. :-)
[28601] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///home/.../bin/console" language="PHP" xdebug:language_version="7.3.1" protocol_version="1.0" appid="28601" idekey="11916"><engine version="2.7.0beta1"><![CDATA[Xd$
[28601]
[28601] <- feature_set -i 1 -n show_hidden -v 1
[28601] -> <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>
[28601]
[28601] <- feature_set -i 2 -n max_depth -v 1
[28601] -> <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>
[28601]
[28601] <- feature_set -i 3 -n max_children -v 100
[28601] -> <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>
[28601]
[28601] <- feature_set -i 4 -n extended_properties -v 1
[28601] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="4" feature="extended_properties" success="1"></response>
[28601]
[28601] <- status -i 5
[28601] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="status" transaction_id="5" status="starting" reason="ok"></response>
[28601]
[28601] <- step_into -i 6
[28601] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="step_into" transaction_id="6" status="break" reason="ok"><xdebug:message filename="file:///home/.../bin/console" lineno="9"></xdebug:message></response>
[28601]
[28601] <- breakpoint_set -i 7 -t line -f file:///home/.../src/Controller/HostController.php -n 30
[28601] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="7" id="286010001"></response>
[28601]
[28601] <- stack_get -i 8
[28601] -> <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:///home/.../bin/console" lineno="9"></stack></response>
[28601]
[28601] <- run -i 9

Eclipse not connecting to xdebug

I am unable to connect to xdebug from eclipse. Following is my xdebug config in php.ini
[xdebug]
zend_extension="/usr/local/opt/php56-xdebug/xdebug.so"
xdebug.remote_port=10000
xdebug.remote_enable=1
xdebug.remote_connect_back = On
xdebug.remote_host=127.0.0.1
xdebug.remote_log="/tmp/xdebug.log"
And i am getting following log in xdebug.log
Log opened at 2016-11-08 11:55:46
I: Checking remote connect back address.
I: Checking header 'HTTP_X_FORWARDED_FOR'.
I: Checking header 'REMOTE_ADDR'.
I: Remote address found, connecting to 127.0.0.1:10000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///Library/WebServer/Documents/akeneo/pim-community-standard/web/app.php" language="PHP" xdebug:language_version="5.6.24" protocol_version="1.0" appid="6191" idekey="ECLIPSE_DBGP"><engine version="2.4.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2016 by Derick Rethans]]></copyright></init>
<- feature_set -i 127 -n show_hidden -v 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="127" feature="show_hidden" success="1"></response>
<- feature_set -i 128 -n max_depth -v 3
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="128" feature="max_depth" success="1"></response>
<- feature_set -i 129 -n max_children -v 51
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="129" feature="max_children" success="1"></response>
<- feature_set -i 130 -n max_data -v 1024
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="130" feature="max_data" success="1"></response>
<- feature_get -i 131 -n encoding
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_get" transaction_id="131" feature_name="encoding" supported="1"><![CDATA[iso-8859-1]]></response>
<- feature_get -i 132 -n supports_async
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_get" transaction_id="132" feature_name="supports_async" supported="1"><![CDATA[0]]></response>
<- stdout -i 133 -c 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stdout" transaction_id="133" success="1"></response>
<- stderr -i 134 -c 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stderr" transaction_id="134" success="0"></response>
<- step_into -i 135
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="step_into" transaction_id="126" status="stopping" reason="ok"></response>
Log closed at 2016-11-08 11:55:46
I also have a big stream of data after this.
Eclipse is showing PHP Application (Waiting....)
What could be wrong here.

PHP debugging configuration

When trying to configure XDebug in XAMPP on OS X to connect back to PHPStorm receiving the following messages in the xdebug log and fails to stop at the breakpoint in PHPStorm. Any hints on what to try next?
Xdebug.log
Log opened at 2015-10-16 21:36:56
I: Checking remote connect back address.
I: Remote address found, connecting to ::1:9002.
I: Connected to client.
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///Applications/XAMPP/xamppfiles/htdocs/eatdata/app/php/crops/getCropTypes.php" language="PHP" protocol_version="1.0" appid="23586" idekey="PHPSTORM"><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>
<- 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" command="step_into" transaction_id="5" status="stopping" reason="ok"></response>
<- breakpoint_set -i 6 -t line -f file:///Applications/XAMPP/xamppfiles/htdocs/eatdata/app/php/connect.php -n 71
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="6"><error code="5"><message><![CDATA[command is not available]]></message></error></response>
Believe this line in particular indicates the problem but not sure what exactly this message means.
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="6">
<error code="5">
<message><![CDATA[command is not available]]></message>
</error>
</response>
The "command is not available" line is likely there because you have a typo/syntax error somewhere in http://xdebug.org/dbgp/xdebug" fileuri="file:///Applications/XAMPP/xamppfiles/htdocs/eatdata/app/php/crops/getCropTypes.php - can you run php -l against it to find out?
I can also see a problem because of case-sensitivity in filenames. OS/PHP sometimes reports a different caseness for files than your editor expects. I see you are using version 2.2.5, and I would therefore suggest you upgrade to at least 2.3.0, as that has this issue fixed.

Netbeans Xdebug is not responding

I'm trying to debug my PHP code on my local machine. When I start to debug, script doesn't response any more.
Netbeans successfully handles the connection, xdebug logs shows that connection is established too. But browser is waiting busy.
I have tried Netbeans 7.2.1 and 7.4 and xdebug Version v2.1.0,v2.2.3 and v2.3.0dev
Do you have an advice?
Here is my configuration
zend_extension=/usr/lib/php5/20090626/xdebug_ready.so
xdebug.remote_host = 127.0.0.1 xdebug.remote_enable = 1
xdebug.remote_port = 9001 xdebug.remote_handler = dbgp
xdebug.remote_mode = req xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1 xdebug.remote_autostart=1
xdebug.idekey="netbeans-xdebug" xdebug.remote_log="/tmp/xdebug.log"
Here is the log :
Log opened at 2013-12-28 22:43:47 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:///var/www/pnp/pnpdev/index.php"
language="PHP" protocol_version="1.0"
appid="22843"
idekey="netbeans-xdebug"><engine
version="2.3.0dev"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick
Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright
(c) 2002-2013 by Derick Rethans]]></copyright></init>
<- feature_set -i 267 -n show_hıdden -v 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
command="feature_set" transaction_id="267"
status="starting" reason="ok"><error
code="3"><message><![CDATA[invalid or missing
options]]></message></error></response>
<- feature_set -i 268 -n max_depth -v 3
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
command="feature_set" transaction_id="268"
feature="max_depth"
success="1"></response>
<- feature_set -i 269 -n max_chıldren -v 30
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
command="feature_set" transaction_id="269"
status="starting" reason="ok"><error
code="3"><message><![CDATA[invalid or missing
options]]></message></error></response>
<- feature_set -i 270 -n max_data -v 2048
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
command="feature_set" transaction_id="270"
feature="max_data"
success="1"></response>
<- breakpoint_set -i 271 -t lıne -s enabled -f
file:///var/www/pnp/pnpdev/index.php -n 21
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
command="breakpoint_set" transaction_id="271"
state="enabled" id="0"></response>
<- run -i 272
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
command="run" transaction_id="272"
status="stopping" reason="ok"></response>
<- stop -i 273
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
command="stop" transaction_id="273"
status="stopped" reason="ok"></response>
Log closed at 2013-12-28 22:44:05
The log shows that Xdebug and netbeans are communicating. There is even a smiley face. For some odd reason, instead of sending "line", netbeans sends: "lıne" (&#305 is actually Å) which is not a valid type. Xdebug should reject that, but it seems to simply allow it and not raise an error. I filed a ticket for that: http://bugs.xdebug.org/view.php?id=1025
However, why netbeans is sending that, you'll have to ask the netbeans team (file a bug?!)

Xdebug never stops at my Sublime Text breakpoints

I've successfully installed Sublime Text and xdebug on my 64bit Win7 machine and installed The easiest Xdebug plugin in Firefox. Sublime Text is running as Administrator, its project file sets the correct path and xdebug settings, and I have breakpoints only on lines with valid PHP code. WampServer is running correctly on http://localhost:8080/.
The xdebug package commands appear to work as designed, but the debugger never stops at my breakpoints. Starting or stopping the debugger within Sublime Text opens the correct HTML page in Firefox, although the page load is significantly slower than usual.
I've set up the xdebug log. Here's a sample.
Log opened at 2013-06-23 21:42:02
I: Connecting to configured address/port: localhost:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///C:/wamp/bin/php/firelogger/firelogger.php" language="PHP" protocol_version="1.0" appid="3948" idekey="sublime.xdebug"><engine version="2.2.3"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2013 by Derick Rethans]]></copyright></init>
<- breakpoint_set -i 1 -n 10 -t line -f file://C:\Users\work\My Projects\ElseApps\EAFF\code\webroot\index.php
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1"><error code="1"><message><![CDATA[parse error in command]]></message></error></response>
<- breakpoint_set -i 2 -n 17 -t line -f file://C:\Users\work\My Projects\ElseApps\EAFF\code\approot\core\etc\eaff-index.php
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="2"><error code="1"><message><![CDATA[parse error in command]]></message></error></response>
<- breakpoint_set -i 3 -n 18 -t line -f file://C:\Users\work\My Projects\ElseApps\EAFF\code\approot\core\etc\eaff-index.php
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="3"><error code="1"><message><![CDATA[parse error in command]]></message></error></response>
<- run -i 4
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="4" status="stopping" reason="ok"></response>
Log closed at 2013-06-23 21:42:04
For completeness, here's the xdebug section of my php.ini file ...
[xdebug]
zend_extension = c:\wamp\bin\php\php5.3.13\ext\php_xdebug-2.2.3-5.3-vc9-x86_64.dll
;xdebug.remote_enable = off
;xdebug.profiler_enable = off
;xdebug.profiler_enable_trigger = off
;xdebug.profiler_output_name = cachegrind.out.%t.%p
;xdebug.profiler_output_dir = "c:/wamp/tmp"
xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_log=C:\wamp\bin\apache\apache2.2.22\logs\xdebug.log
xdebug.remote_mode=req
xdebug.profiler_enable=1
xdebug.profiler_output_dir="c:/wamp/tmp/"
xdebug.collect_params=On
xdebug.show_local_vars=On
... and the Sublime Text project file.
{
"folders":
[
{
"path": "/C/Users/work/My Projects/ElseApps/EAFF/code"
}
],
"settings": {
"xdebug": { "url": "http://localhost:8080" }
}
Sublime Text's status bar shows the following message after I click Start debugging and the page slowly loads:
Xdebug: Page finished executing. Reload to continue debugging.
Can anyone spot where I'm going wrong, or advise a useful path to diagnosing the problem?
The cause does appear to be the space in the path passed to Xdebug by Sublime Text's Xdebug package. The original query ...
<- breakpoint_set -i 3 -n 18 -t line -f file://C:\Users\work\My Projects\ElseApps\EAFF\code\approot\core\etc\eaff-index.php
... results in an error response ...
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="3"><error code="1"><message><![CDATA[parse error in command]]></message></error></response>
... but a quick and nasty hack of the Python source file (my first ever Python edit) sends this ...
<- breakpoint_set -i 1 -n 18 -t line -f file://C:\Users\work\MyProj~1\ElseApps\EAFF\code\approot\core\etc\eaff-index.php
... and gets this back ...
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1" id="39480001"></response>
... after which everything works as designed.
The short-term hack used to test this is at line 221 in Xdebug.py:
def uri(self):
rawpath = os.path.realpath(self.view.file_name())
outpath = rawpath.replace("My Projects", "MyProj~1")
# return 'file://' + os.path.realpath(self.view.file_name())
return 'file://' + outpath
I'll investigate further. I'd already deliberately set the 8.3 pathname in the Sublime Text project file, but that's not what's passed to Xdebug. If it were, there should be no problem.
This is a bug in Sublime's implementation of the debugging protocol.
The command being sent:
<- breakpoint_set -i 3 -n 18 -t line -f file://C:\Users\work\My Projects\ElseApps\EAFF\code\approot\core\etc\eaff-index.php
includes spaces in the file name (the value for -f).
It should just use quotes around the path: https://github.com/derickr/xdebug/blob/master/xdebug_handler_dbgp.c#L2289 and https://github.com/derickr/xdebug/blob/master/xdebug_handler_dbgp.c#L2314 …

Categories