I have Xdebug 2.1 installed, and running with PHP 5.2.13. It can successfully connect to multiple DBGP clients (i.e. the xdebug.remote_log
shows communication back and forth, and the clients themselves also show the incoming connection), but it doesn't stop at breakpoints. I have tried NetBeans, MacGDBp and also the command-line debugclient
bundled with Xdebug.
A typical exchange looks like:
Log opened at 2010-07-20 09:33:17
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///mnt/hgfs/htdocs/mycompany/index.php" language="PHP" protocol_version="1.0" appid="14371" idekey="macgdbp"><engine version="2.1.0"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2010 by Derick Rethans]]></copyright></init>
<- status -i macgdbp
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="status" transaction_id="macgdbp" status="starting" reason="ok"></response>
<- step_into -i macgdbp
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="step_into" transaction_id="macgdbp" status="stopping" reason="ok"></response>
<- status -i macgdbp
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="status" transaction_id="macgdbp" status="stopping" reason="ok"></response>
Log closed at 2010-07-20 09:33:18
NetBeans attempts to set breakpoints, and these are acknowledged by Xdebug:
<- breakpoint_set -i 7 -t line -s enabled -f file:///mnt/hgfs/htdocs/mycompany/index.php -n 9
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="7" state="enabled" id="139360004"></response>
However, Xdebug still refuses to stop!
Press F5 to start the debugger. Click the new XDebug Helper extension and click the Debug option. Finally, refresh the page in the browser to let VSCode react and start the debugging process.
This appears to happen if you have have Xdebug loaded as an extension
(i.e. extension=xdebug.so
) in the PHP config instead of a zend_extension
(i.e. zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so
).
Make sure that you don't have an extension=xdebug.so
line anywhere in your PHP config, even if you're pretty sure you're using zend_extension
. For example, if you have zend_extension
in /etc/php5/conf.d/xdebug.ini
, this may well be superseded by an extension
in /etc/php5/apache2/php.ini
. If this is the case, nothing will complain, and phpinfo()
will dutifully report that Xdebug is loaded! (Xdebug 2.1 does issue a small warning in phpinfo()
when loaded as an extension, but previous versions do nothing.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With