Scott Sz
Scott Sz

Reputation: 3998

eclipse xdebug session never completes

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

Answers (27)

Eborbob
Eborbob

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

Sameer Awate
Sameer Awate

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

jthompson
jthompson

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

Ripper
Ripper

Reputation: 57

If your configuration is ok, just delete the file : YOUR_WORKSPACE/.metadata/.plugins/org.eclipse.core.resources/.root/.markers

Upvotes: 0

uicoded
uicoded

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 check
  • firewall does not block the default 9000 port or Eclipse.
  • another application is not using the port (execute: netstat -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:

XDEBUG settings in Eclipse

Upvotes: 13

Goran
Goran

Reputation: 1837

I had this problem too and I was missing this line in the php.ini file:

xdebug.remote_enable = On

Upvotes: 63

Ryan Litwiller
Ryan Litwiller

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

MaxRelax
MaxRelax

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

Daniel Iancu
Daniel Iancu

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.

Allowing Java(TM) Platform SE binary through the firewall did the trick.

Check out the commands from this question, they are very useful for debugging!

Upvotes: 0

Mir
Mir

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

user3336280
user3336280

Reputation: 51

Before eclipse setting, Check out the following content is visible in phpinfo function.

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

Artur Kedzior
Artur Kedzior

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

pal4life
pal4life

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

norootsquash
norootsquash

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

Nitin Agarwal
Nitin Agarwal

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:

  1. made server debugger as XDebug
  2. Auto Generate URL true.

Upvotes: 0

knb
knb

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

blainelang
blainelang

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

nitish
nitish

Reputation: 21

  1. The above inputs were useful. I checked xdebug parameter values in phpInfo() and found that despite my settings to 1 or On, auto_trace and remote_enable were off. So i made it to true. And then remote worked!. Thanks.
  2. Note, now you can launch the remote debugging session from within Eclipse by configuring various Debug configurations OR/and whenever you launch your such configured application outside Eclipse, you will get a question at Eclipse to accept or not to accept the debug session. So if you are on a different machine than of the eclipse UI you might find that the call to your application is getting timed out for no reason. Actually there would be a yes - no dialog box wherever the Eclipse session is

Upvotes: 0

marco
marco

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

cloudwhale
cloudwhale

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

Duccio
Duccio

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

Seth Battin
Seth Battin

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

John Littlefield
John Littlefield

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

Scott Warren
Scott Warren

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

Abdul Munim
Abdul Munim

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

lefnire
lefnire

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

Velja Radenkovic
Velja Radenkovic

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

Related Questions