Отладка 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, чтобы посмотреть, отправляет ли отладчик пакеты вам.