Отладка PHP-скриптов с использованием Eclipse

Я использую Eclipse 3.4.2 с PHPEclipse и Zend Debugger в течение некоторого времени без проблем. Внезапно я не могу отладить сценарии PHP. Я могу запустить их нормально, но когда я выбираю " Отладка как"... скрипт показывает в окне "Отладка", как будто он работает, но это не так. Если я нажимаю pause, он сообщает, что находится в строке 0. Я могу пройти по нему, если я продолжу, оставьте его, а затем снова сделайте паузу, и он все еще будет находиться в строке 0.

Я пытался все закрыть, перезапустить мою систему и создать новый проект без удачи.

Я недавно обновил систему Ubuntu, но ничего не было связано с PHP или Eclipse (что я мог сказать). XULRunner был обновлен.

Я проверил настройки отладки, у них есть Zend Debugger и исполняемый файл PHP, выбранные, как они были раньше при работе. Я поиграл с Редактированием исходного поиска, чтобы убедиться, что он смотрит в нужном месте.

Есть идеи?

Редактировать: отладчик eclipse прослушивает порт 10000, я могу telnet localhost 10000 нормально. когда я отправляю некоторые символы мусора, eclipse выскакивает сообщение об ошибке о несовместимом отладчике

Изменить: я не смог понять, что на самом деле происходит, но создание нового рабочего пространства, казалось, добилось цели

Обновление: я попробовал Eclipse -Cleanan (я на Ubuntu), но это не помогло мне. Я нашел файл.log и заметил следующие ошибки. На старте:

!ENTRY org.eclipse.osgi 2 1 2009-10-05 17:02:11.979
!MESSAGE NLS missing message: DebugConnectionThread_oldDebuggerVersion in: org.eclipse.php.internal.debug.core.PHPDebugCoreMessages

!ENTRY org.eclipse.osgi 2 1 2009-10-05 17:02:11.980
!MESSAGE NLS missing message: DebugServerTestEvent_success in: org.eclipse.php.internal.debug.core.PHPDebugCoreMessages

!ENTRY org.eclipse.osgi 2 1 2009-10-05 17:02:11.980
!MESSAGE NLS missing message: DebugServerTestEvent_timeOutMessage in: org.eclipse.php.internal.debug.core.PHPDebugCoreMessages

После того, как я пытаюсь начать сеанс отладки:

!ENTRY org.eclipse.php.debug.core 4 10001 2009-10-05 17:02:23.455
!MESSAGE Can't determine version of the PHP executable

!ENTRY org.eclipse.php.debug.core 4 10001 2009-10-05 17:02:23.983
!MESSAGE PHPDebug plugin internal error
!STACK 0
java.lang.NullPointerException
    at org.eclipse.php.internal.debug.core.preferences.stepFilters.DebugStepFilterController.isFiltered(DebugStepFilterController.java:98)
    at org.eclipse.php.internal.debug.core.zend.debugger.handlers.ReadyNotificationHandler.handle(ReadyNotificationHandler.java:34)
    at org.eclipse.php.internal.debug.core.zend.communication.DebugConnectionThread$InputMessageHandler.run(DebugConnectionThread.java:881)
    at java.lang.Thread.run(Thread.java:636)

Я пытаюсь понять, смогу ли я найти что-нибудь еще, учитывая это.

3 ответа

Вы упомянули, что не можете понять, что происходит, но создание нового рабочего пространства, похоже, решило проблему. Случай, вероятно, является просто известной проблемой с Eclipse. В основном, со временем, скопление имеет тенденцию накапливаться в системе. Когда это происходит, Eclipse (и особенно плагины) начинают ломаться. Вы можете решить эту проблему (без создания нового рабочего пространства), используя аргумент -clean при запуске Eclipse.

Итак, если вы работаете в Windows, отредактируйте ярлык, указывающий на Eclipse, чтобы вы увидели:

eclipse.exe -clean

Это должно помочь. Подробнее об этом читайте здесь: Поддержание Eclipse в чистоте

Одна из действительно хороших вещей в Eclipse состоит в том, что у него нет установщика, хотя я вижу, что какой-то благонамеренный путешественник на определенной дороге позволил вам сделать это. apt-get eclipse, (Подсказка: не делай этого.)

Одна из не очень приятных вещей в том, что она довольно сложная. Если вы думаете, что, возможно, перевернули один из тысяч имеющихся у него коммутаторов, просто распакуйте архив и выполните параллельную установку. Затмение хорошо себя ведет, даже на окнах. Если параллельная установка работает, то, по крайней мере, вы знаете, что это просто ваше рабочее пространство или конфигурация, а если это не так, вы знаете, что выглядишь внешне. (Err, если вы не сделали одну и ту же ошибку дважды с вашей конфигурации запуска.)

Были ли внесены какие-либо изменения в ваш брандмауэр? Я использую отладчик php NuSphere, и он общается через сокет TCP. Если ваш брандмауэр был изменен во время обновления, он может препятствовать тому, чтобы сервер отладчика связывался с вашим клиентом отладчика через порт localhost, на котором он (возможно) работает. Не совсем уверен, как работает отладчик Eclipse, но я бы предположил точно так же.

Для получения удовольствия вы можете попробовать запустить snort, чтобы посмотреть, отправляет ли отладчик пакеты вам.

Другие вопросы по тегам