сеанс eclipse xdebug никогда не завершается

Я пытаюсь заставить xdebug работать с eclipse (3.5) / php (на xampp windows 7). Я подтвердил, что xdebug включен в php – у меня есть причудливый вывод, и моя phpinfo показывает все файлы xdebug. У меня удаленная отладка, и я набрал IP-адрес lan на моей машине eclipse.

Когда я говорю eclipse для отладки, он запускает браузер и передает параметры отладочного URL-адреса. Это выглядит хорошо.

Однако в перспективе отладки eclipse он показывает «запуск myproject» 57% «ожидания сеанса xdebug». Он сидит там вечно.

Я отключил брандмауэр Windows на обеих машинах.

Я попытался включить скрытый флеш.

Есть идеи?

У меня тоже была эта проблема, и я пропустил эту строку в файле php.ini :

 xdebug.remote_enable = On 

Убедитесь, что вы определили zend_extention с помощью пути ABSOLUTE в php.ini :

например: zend_extension=D:\SANDBOX\server\php\php_xdebug-2.1.0-5.3-vc6.dll

Я отлаживаю локальный проект в Windows. Пока мне не нужен xdebug.remote_enable = On .

Предложения, если сеанс Xdebug не запускается (зависает с 57%), убедитесь, что:

  • Директива zend_extention устанавливается с абсолютным путем и отладка загружается, используйте phpinfo() для проверки
  • брандмауэр не блокирует порт по умолчанию 9000 или Eclipse.
  • другое приложение не использует порт (выполните: netstat -an |find /i "listening" из командной строки)

Если вам нужно настроить другое использование порта в php.ini :

 xdebug.remote_enable = on xdebug.remote_port = XXXX 

и исправьте настройки Xdebug в Eclipse:

Настройки XDEBUG в Eclipse

У меня была та же проблема, и я исправил ее, изменив порт на XDebug (теперь используя порт 9001).

Вот мой контент php.ini:

 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 

Также проверьте файл журнала apache и убедитесь, что у вас нет следующего предупреждения:

PHP Предупреждение: Xdebug ДОЛЖЕН быть загружен как расширение Zend в Unknown в строке 0
Предупреждение : Xdebug ДОЛЖЕН быть загружен как расширение Zend в Unknown в строке 0

Если вы это сделаете, откройте файл php.ini и прокомментируйте его с помощью;; extension=php_xdebug-2.dll :

 ;extension=php_xmlrpc.dll extension=php_xsl.dll **;extension=php_xdebug-2.dll** ;/PHPExt 

После трехчасового боя и опробования каждого решения на форумах я узнал, что простой трюк состоял в том, чтобы удалить кавычки, указав путь к dll Xdebug в zend_extension в php.ini . Я использую XAMPP (PHP 5.3.6 + Apache 2.2) + Eclipse Indigo + PDT + Xdebug 2.1.2 в Windows Vista.

Вот точная конфигурация, которая сработала для меня –

 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 

Я использовал порт 9001, чтобы он не столкнулся с 9000, если он уже используется другой программой. Убедитесь, что это соответствует порту в Eclipse> Предпочтения> PHP> Отладка> Xdebug тоже. Кроме того, перезапустите apache после редактирования php.ini.

Как только я добавил это в php.ini, все работало, как мороженое.

У меня была такая же проблема с Zend Studio. Я заметил, что сеанс xdebug не запускался должным образом. Я передал эту строку в URL-адрес один раз, и с тех пор он работал.

 http://localhost/myalias/?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13750956767461 

Я уверен, что это вопрос конфигурации где-то в среде IDE.

Я понял, что порт TCP используется, и именно по этой причине он висит. Я изменил порт в настройках php.ini и eclipse.

проверьте эту ссылку:

http://xdebug.org/docs/remote

Существует один сеанс о новых плагинах для chrome и firefox, и они отлично работают.

Проверьте правильность настроек веб-браузера Eclipse.

Окно / Предпочтения / Общие / Веб-браузер / внешние веб-браузеры / Изменить настройки

В моем случае путь к двоичному файлу внешнего веб-браузера был неправильным. Он сказал «/ usr / bin / mozilla» вместо «/ usr / bin / firefox». Не знаю, как эта настройка появилась, но после ее изменения наконец появилось окно браузера Firefox.

Я просмотрел журнал Apache и было много строк с ошибкой файла, не найденной.

Выполнить -> Конфигурации отладки -> Веб-страница PHP -> Your_configuration

Я отключил auto generate и установил имя файла index.php .

Похоже, что в случае любой ошибки, которая препятствует нормальному функционированию затмения, это «ожидание сеанса»,

У меня была точно такая же проблема. Мои конфиги были xdebug.remote_enable = On вашим и в дополнение к тому, что xdebug.remote_enable = On в файле php.ini также добавили следующее:

 xdebug.remote_connect_back=1 

это позволяет удаленную отладку multihost, в качестве альтернативы вы можете определить IP-адрес хоста.

 xdebug.remote_host=IP_ADDRESS 

Да, проверьте статистику сети / порта. В моем случае я использую vmware fusion на mac, а процесс vmware-natd забивает процессор (блокировка на открытом порту, который я предполагаю), чего я не заметил. php.ini был полностью прав, пришлось запустить это, чтобы заставить его работать снова:

 sudo "/Library/Application Support/VMware Fusion/boot.sh" --restart 

Поэтому сначала проверьте файл php.ini (или xdebug.ini). Если это выглядит нормально, обсудите это , а затем проверьте, что у вас нет проблем с сетью.

Я не знаю, что это значит для вас или нет! Но вы попали в файл PHP (anything.php) с правильным параметром отладки, что-то вроде XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=12882809194391 .

Люди часто ошибаются, чтобы попасть в HTML-файл с параметрами отладки, которые заставляют Eclipse висеть на сессии xdebug

У меня была аналогичная проблема, и оказалось, что я использую неправильную DLL. Надеюсь, что это поможет кому-то в будущем.

У меня был такой же симптом. Однако моя проблема заключалась в том, что я установил xdebug.remote_host = "" Я сделал это, потому что я использую виртуальные хосты apache, чтобы устранить необходимость в localhost . Тем не менее, я изменил его обратно на xdebug.remote_host = "localhost" а затем изменил мой apache / etc / hpppd-vhosts.conf, чтобы указать localhost на мой корень c: \ web.

Для меня эти симптомы были вызваны брандмауэром Windows (Win7 Pro). Мне нужно было явно разрешить eclipse передавать брандмауэр. Я сделал это через диалог в разделе «Панель управления \ Все элементы панели управления \ Брандмауэр Windows \ Разрешенные программы».

Это может быть не полезно для всех, но … при попытке отладки удаленных хостов всегда помните маршрутизатор DSL! (или любой маршрутизатор по пути) Я потратил часы, пытаясь найти решение, когда заметил, что все, что мне нужно было сделать, это активировать переадресацию портов (порт 9000) на моем Linksys, и все работает как шарм 🙂

  1. Вышеуказанные материалы были полезны. Я проверил значения параметра xdebug в phpInfo () и обнаружил, что, несмотря на мои настройки в 1 или Вкл., Auto_trace и remote_enable отключены. Поэтому я сделал это правдой . А потом удаленная работала !. Благодарю.
  2. Обратите внимание: теперь вы можете запустить удаленный отладочный сеанс из Eclipse, настроив различные конфигурации отладки OR /, и всякий раз, когда вы запускаете такое настроенное приложение вне Eclipse, вы получите вопрос в Eclipse, чтобы принять или не принять сеанс отладки. Поэтому, если вы находитесь на другой машине, чем в интерфейсе eclipse, вы можете обнаружить, что вызов вашего приложения истекает без причины. На самом деле было бы диалоговое окно да – нет, где бы ни проходил сеанс Eclipse

Этот поток помог мне разобраться с моей проблемой с MAMP на OSX с Eclipse. После перехода на MAMP 2.1.1 из версии 1.x мне не удалось заставить xdebug работать в eclipse. Он висел на уровне 57%.

phpinfo показала, что расширение xdebug было загружено штрафом, и ошибок в журналах PHP или Apache не было.

Я только хотел отлаживать локально, но причина в том, что удаленная отладка не была включена. Добавление xdebug.remote_enable = true в шаблон MAMP PHP.ini и перезапуск MAMP решили проблему.

В моем случае приложение CLI работало нормально, но это было веб-приложение, которое застряло на 57%.

Он работал после двух изменений:

  1. сделал отладчик сервера как XDebug
  2. Auto Generate URL true.

Если Netweaver/Eclipse не удается подключиться к XDebug , вы можете проверить журналы Apache на наличие чего-то типа: 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

Чтобы исправить это, выберите правильную версию двоичного XDebug веб-сайта XDebug (попробуйте несколько комбинаций, пока вы не заработаете)

Перед настройкой eclipse, проверьте, что в функции phpinfo отображается следующее содержимое.

В этой программе используется движок языка Zend Scripting Language: Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies с Xdebug v2.2.3, Copyright (c) 2002-2013, Derick Rethans

Я тоже столкнулся с той же проблемой. Я дважды проверил все настройки в php с выходом phpinfo() и все было в порядке.

Разрешить Java (TM) платформу SE двоичные файлы через брандмауэр сделал трюк.

Проверьте команды из этого вопроса , они очень полезны для отладки!

Я пробовал все возможные решения на этом посту, чтобы заставить xdebug работать на сайте, запущенном на Apache (http-порт 8000), безрезультатно. Затем я случайно заметил, что xdebug работал на другом сайте, который работал на порту 80. Как только я сменил другой сайт на порт 80, он, наконец, позволил мне его отладить.

Интересно, есть ли параметр, который может заставить Apache разрешить xdebug для других портов, а не только 80. У меня есть несколько сайтов, работающих в Apache, и я хотел бы отлаживать каждый из них без необходимости перенастраивать порты. У кого-нибудь была эта проблема раньше? или знает, как это исправить?

Если ваша конфигурация в порядке, просто удалите файл: YOUR_WORKSPACE / .metadata / .plugins / org.eclipse.core.resources / .root / .markers

Имел ту же проблему, что и Uniserver Zero XIII 13.2.0 (требуется для распространения MS VC12) и Eclipse Neon Release Candidate 3 (4.6.ORC3). Наш сайт использует phalcon, когда мы обнаружили проблему с phalcon.dll и php7.0, мы вернулись к php5.6. Мы проверили настройки xdebug выше, добавили zend_extension = $ (US_ROOTF) /php56/extensions/php_xdebug.dll– не подключались, точки останова.

Нашел предупреждение в верхней части проекта Eclipse Dialog Project | Недвижимость | PHP | Отладка | Настройка параметров рабочей области … | Исполняемые файлы PHP | PHP56 (по умолчанию для рабочей области) | Редактировать | Отладчик | «Расширение XDebug не установлено. Посетите http://xdebug.org …». Это сделало нас подозрительными относительно версии php_xdebug.dll (2.5.0) в Uniserver 13.2.0 php56. Я загрузил php_xdebug-2.4.1-vc11.dll, сбросил его в / php56 / extensions и PRESTO! Eclipse PHP Debugger работает!

Для меня добавление конфигураций [xdebug], предложенных другими, в файл php.ini, хранящийся в следующем пути C: \ wamp64 \ bin \ apache \ apache2.4.23 \ bin. По существу это символическая ссылка, которая указывает / ссылается на файл phpForApache.ini в вашей соответствующей папке версии php, которая устанавливается с помощью wamp64, например php5.6.25.

Вкратце , добавив следующие строки phpForApache.ini, чтобы помочь мне –

  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" 

Надеюсь это поможет

Вот еще один блог, в котором упоминается, как проверить правильность установки Xdebug с помощью командной строки http://allcodeverything.blogspot.com/2012/07/code-debugging-with-xdebug-and-eclipse.html

Он упоминает это. Если вы хотите выяснить, все ли работает хорошо, вот хороший фрагмент кода, который вы будете запускать через CLI (интерпретатор командной строки, в основном вне Apache или браузера, просто чистый PHP) после того, как вы напечатал в браузере следующее: «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); ?> 

Окно командной строки должно печатать что-то вроде «установлено соединение: Идентификатор ресурса №5».