Reputation: 3998
I am trying to get xdebug working with eclipse (3.5) / php (on xampp windows 7). I have verified xdebug is enabled in php - I have the fancy output and my phpinfo shows all the xdebug stuff. I have remote debug on, and typed in the lan ip address on my eclipse machine.
When I tell eclipse to debug, it launches the browser and passes the debug URL parameters. That looks OK.
However, in eclipse debug perspective it shows 'launching myproject' 57% 'waiting for xdebug session'. It sits there forever.
I have turned off windows firewall on both machines.
I tried turning implicit flush on.
Any ideas?
Upvotes: 52
Views: 41245
Reputation: 1975
Xdebug 3 has changed the php.ini options (see https://xdebug.org/docs/upgrade_guide), and the default IP address has changed from 9000 to 9003.
As of PHP 8.2.6 and Xdebug 3.2.1 the following option enables xdebug:
xdebug.mode=debug
The port can be changed with:
xdebug.client_port=9010
Upvotes: 1
Reputation: 99
For me, adding the [xdebug] configurations suggested by others to a php.ini file kept in following path C:\wamp64\bin\apache\apache2.4.23\bin helped. Essentially it's a symbolic link that points/links to phpForApache.ini file under your respective php version folder that gets installed with wamp64 e.g. php5.6.25.
In nutshell, adding following lines phpForApache.ini to helped me -
zend_extension = c:\wamp64\bin\php\php5.6.25\ext\php_xdebug-2.5.1-5.6-vc11-x86_64.dll
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
Hope this helps
Upvotes: 1
Reputation: 1
Had same issue using Uniserver Zero XIII 13.2.0 (requires MS VC12 redistributable install) and Eclipse Neon Release Candidate 3(4.6.ORC3). Our website uses phalcon, when we found an issue with the phalcon.dll and php7.0 we dropped back to php5.6. We verified xdebug settings above, added zend_extension=$(US_ROOTF)/php56/extensions/php_xdebug.dll--would not connect, no break points.
Found a warning at top of Eclipse Dialog Project | Properties | PHP | Debug | Configure Workspace Settings... | PHP Executables | PHP56(Workspace Default) | Edit | Debugger | "XDebug extension is not installed. Please visit http://xdebug.org...". This made us suspicious of the version of the php_xdebug.dll (2.5.0) in the Uniserver 13.2.0 php56. I downloaded php_xdebug-2.4.1-vc11.dll, dropped it in /php56/extensions and PRESTO! Eclipse PHP Debugger works!
Upvotes: 0
Reputation: 57
If your configuration is ok, just delete the file : YOUR_WORKSPACE/.metadata/.plugins/org.eclipse.core.resources/.root/.markers
Upvotes: 0
Reputation: 625
Make sure you defined zend_extention with ABSOLUTE path in the php.ini
:
e.g.: zend_extension=D:\SANDBOX\server\php\php_xdebug-2.1.0-5.3-vc6.dll
I'm debugging a local project on Windows. So far I did not need xdebug.remote_enable = On
.
Suggestions if the Xdebug session does not start (hangs at 57 %), make sure that:
zend_extention
directive is set with absolute path and the debug is loaded, use phpinfo()
to checknetstat -an |find /i "listening"
from the command line)If you need to setup a different port use in php.ini
:
xdebug.remote_enable = on
xdebug.remote_port = XXXX
and correct the Xdebug settings in Eclipse:
Upvotes: 13
Reputation: 1837
I had this problem too and I was missing this line in the php.ini
file:
xdebug.remote_enable = On
Upvotes: 63
Reputation: 507
I had the exact same problem. My configs were par with yours and in addition to having xdebug.remote_enable = On
in the php.ini file also adding the following:
xdebug.remote_connect_back=1
this enables multihost remote debugging, as an alternative you can define the host IP.
xdebug.remote_host=IP_ADDRESS
Upvotes: 1
Reputation: 31
I've tried every possible solution on this post to get xdebug to work on a site running on Apache (http port 8000) to no avail. I then accidentally noticed that xdebug was working on another site that I had running on port 80. As soon as I changed the other site to port 80, it finally allowed me to debug it.
I wonder if there's a setting that can direct Apache to allow xdebug on other ports than just 80. I have more than one site running in Apache and would like to debug each of them without having to reconfigure the ports. Anyone had this issue before? or knows how to fix it?
Upvotes: 0
Reputation: 433
I too encountered the same problem. I double checked all the settings in php with the output of phpinfo()
and everything was fine.
Check out the commands from this question, they are very useful for debugging!
Upvotes: 0
Reputation: 11
I looked into apache log and there were many lines with file not found error.
Run -> Debug configurations -> PHP web page -> Your_configuration
I unchecked auto generate
and set filename to index.php
.
It seems that in case of any mistake that prevents eclipse from normal functioning causes this "waiting for session"
Upvotes: 1
Reputation: 51
This program makes use of the Zend Scripting Language Engine: Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
Upvotes: 0
Reputation: 4273
I had the same problem with Zend Studio. I have noticed that the xdebug session was not starting properly. I passed this string to the url once and it worked since then.
http://localhost/myalias/?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13750956767461
I'm sure it's a matter of configuration somewhere in the IDE.
Upvotes: 6
Reputation: 3378
Here is another blog which mentions how to verify if Xdebug is properly installed or not via the command line http://allcodeverything.blogspot.com/2012/07/code-debugging-with-xdebug-and-eclipse.html
It mentions this If you want to figure out if everything worked well, here is a nice piece of code that you'll run through the CLI (command-line interpreter, basically outside of Apache or a browser; just pure PHP) after you have typed the following in your browser: "http://localhost/dbgtest.php?XDEBUG_SESSION_START=ceable"
<?php
$address = "localhost";
$xdebug_port = 9000;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $xdebug_port) or die('Unable to bind');
socket_listen($sock);
$debug_client = socket_accept($sock);
echo "connection established: $debug_client";
socket_close($debug_client);
socket_close($sock);
?>
The command-line window should print something like "connection established: Resource id #5".
Upvotes: -1
Reputation: 1
If Netweaver/Eclipse
fails to connect to XDebug
, you may wish to check the Apache
logs for occurrences of something like: Cannot load Xdebug - it was built with configuration API220090626,TS,VC6, whereas running engine is API220090626,TS,VC9
[Fri Jun 01 18:38:05 2012] [notice] Child 3404: Child process is running
To remedy this, pick the right version of the XDebug
binary from the XDebug
website (try a few combinations till you get it working)
Upvotes: 0
Reputation: 1
In my case CLI application was working fine, but it was the web application which was getting stuck at 57%.
It worked after 2 changes:
Upvotes: 0
Reputation: 9313
Check that Eclipse's web browser settings are correct.
Window/Preferences/General/Web Browser/external Web Browsers/Edit settings
In my case, the path to the external web browser binary was incorrect. It said "/usr/bin/mozilla" instead of "/usr/bin/firefox". Don't know how this setting came about, but after changing it the firefox browser window came up at last.
Upvotes: 2
Reputation: 91
This thread helped me sort out my issue with MAMP on OSX with Eclipse. After upgrading to MAMP 2.1.1 from the 1.x release, I was not able to get xdebug to work in eclipse. It was hanging at the 57% level.
phpinfo showed that xdebug extension was loading fine and there were no errors in the PHP or Apache logs.
I only wanted to debug locally but the reason for the issue was that remote debugging was not enabled. Adding xdebug.remote_enable=true to the MAMP PHP.ini template and restarting MAMP solved the issue.
Upvotes: 0
Reputation: 21
Upvotes: 0
Reputation: 91
I had the same problem and I fixed it by changing the port to XDebug (now using port 9001).
Here is my php.ini content:
zend_extension ="C:\...\EasyPHP-5.3.3\php\ext\php_xdebug-2.dll"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0
xdebug.remote_mode=req
xdebug.remote_autostart=0
Also check the apache log file and make sure that you don't have the following Warning message:
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
If you do, open the php.ini file and comment with a ';' the extension=php_xdebug-2.dll
line:
;extension=php_xmlrpc.dll
extension=php_xsl.dll
**;extension=php_xdebug-2.dll**
;/PHPExt
Upvotes: 9
Reputation: 544
After fighting for 3 hours and trying out every solution on forums, I found out that the simple trick was to remove the quotes while specifying the path of the Xdebug dll in zend_extension in php.ini. I am using XAMPP (PHP 5.3.6 + Apache 2.2)+ Eclipse Indigo + PDT + Xdebug 2.1.2 on Windows Vista.
Here is the exact configuration that worked for me -
zend_extension=C:\xampp\php\ext\php_xdebug-2.1.2-5.3-vc6.dll
#Note that the path above is not in quotes
xdebug.remote_enable=true
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir=C:\xampp\tmp
I have used port 9001 so that it does not clash with 9000 in case that's already used by another program. Make sure this matches the port in Eclipse > Preferences > PHP > Debug > Xdebug too. Also, restart apache after editing php.ini.
Once I added this to php.ini, everything worked like ice cream.
Upvotes: 7
Reputation: 163
It might not be useful to everybody, but... when trying to debug remote hosts, always remember the DSL router! (or any router along the way) I spent hours trying to find a solution, when I noticed that all I had to do was to activate port forwarding (port 9000) on my Linksys and everything worked like a charm :)
Upvotes: 0
Reputation: 2851
For me, these symptoms were caused by the windows firewall (Win7 Pro). I needed to explicitly allow eclipse to pass the firewall. I did this via the dialog at "Control Panel\All Control Panel Items\Windows Firewall\Allowed Programs".
Upvotes: 0
Reputation: 61
I had the same symptom. However, my problem was that I set
xdebug.remote_host = ""
I did this because I'm using apache virtual hosts to eliminate the need for localhost
. However, I had change it back to
xdebug.remote_host = "localhost"
and then change my apache/etc/hpppd-vhosts.conf to have localhost point to my root c:\web.
Upvotes: 0
Reputation: 1611
I had a similar problem and it turned out I was using the wrong dll. Hope that helps someone in the future.
Upvotes: 0
Reputation: 19217
I don't know this means to you anymore or not! But, did you hit to a PHP file (anything.php) with right debug parameter, something like XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=12882809194391
.
People often make mistakes to hit a HTML file with the debug parameters which causes Eclipse to hang at xdebug session
Upvotes: 0
Reputation: 2664
Yeah, check network/port stats. In my case I'm using vmware fusion on mac, and the process vmware-natd was hogging the cpu (blocking on an open port I'm assuming), which I didn't notice. php.ini was completely fine, had to run this to get it to work again:
sudo "/Library/Application Support/VMware Fusion/boot.sh" --restart
So ppl check your php.ini (or xdebug.ini) file first. If it looks ok ala this discussion, then check that you're not having networking issues.
Upvotes: 0
Reputation: 716
I realized that TCP port was in use and that was the reason why it was hanging. I changed port in php.ini and eclipse settings.
Upvotes: 3