сессии в Eclipse отладчик xdebug не завершается


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

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

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

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

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

какие идеи?

27 52

27 ответов:

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

xdebug.remote_enable = On

убедитесь, что вы определили zend_extention с абсолютное путь в 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 порт или затмение.
  • другое приложение не использует порт (выполнить: netstat -an |find /i "listening" из командной строки)

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

xdebug.remote_enable = on
xdebug.remote_port = XXXX 

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

XDEBUG settings in 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 on line 0
предупреждение: Xdebug должен быть загружен как расширение Zend в неизвестный on line 0

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

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

после борьбы в течение 3 часов и опробовать каждое решение на форумах, я узнал, что простой трюк состоял в том, чтобы удалить кавычки при указании путь к xdebug dll на 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 > Debug > Xdebug тоже. Кроме того, перезагрузите apache после редактирования php.Ини.

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

У меня была такая же проблема с 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 и установите filename в index.php.

похоже, что в случае какой-либо ошибки, которая мешает eclipse нормально функционировать, вызывает это "ожидание сеанса"

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

xdebug.remote_connect_back=1

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

xdebug.remote_host=IP_ADDRESS

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

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

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

Я не знаю, значит это для вас больше или нет! Но, вы попали в PHP файл(ничего.php) с параметром debug, что-то вроде 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 или On, auto_trace и remote_enable были выключены. Так что я добрался до правда. А потом пульт сработал!. Спасибо.
  2. Примечание, теперь вы можете запустить сеанс удаленной отладки из Eclipse, настроив различные конфигурации отладки или / и всякий раз, когда вы запускаете такое настроенное приложение вне Eclipse, вы получите вопрос в Eclipse принять или не принять сеанс отладки. Поэтому, если вы находитесь на другой машине, чем в пользовательском интерфейсе eclipse, вы можете обнаружить, что вызов вашего приложения истекает без причины. На самом деле было бы диалоговое окно да - нет, где бы ни находился сеанс Eclipse

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

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

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

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

Он работал после 2 изменения:

  1. сделал сервер отладчик как XDebug
  2. автоматически генерировать URL-адреса, правда.

если 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: Zend Engine v2. 4. 0, Copyright (c) 1998-2013 Zend Technologies с Xdebug v2.2. 3, Copyright (c) 2002-2013, Дерик Ретанс

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

разрешение Java (TM) Platform SE binary через брандмауэр сделало трюк.

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

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

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

Если ваша конфигурация в порядке, просто удалите файл : ВАШЕ РАБОЧЕЕ ПРОСТРАНСТВО./метаданные./Плагины/орг.затмение.ядро.ресурсы./корень./маркеры

была такая же проблема с использованием 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 Project / Properties / PHP / Debug | Настройка Параметров Рабочей Области... | PHP исполняемые файлы | PHP56(рабочая область по умолчанию) | редактировать | отладчик | "отладчик xdebug Extension не установлено. Пожалуйста, посетите http://xdebug.org...". это заставило нас с подозрением относиться к версии php_xdebug.dll (2.5.0) в Uniserver 13.2.0 php56. Я скачал php_xdebug-2.4.1-vc11.dll, бросил его в/php56 / extensions и PRESTO! Затмение PHP отладчик работает!

для меня, добавив элемент [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".