Отладка PHP-скриптов с использованием Eclipse - PullRequest
3 голосов
/ 05 октября 2009

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

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

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

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

Есть идеи?

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

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

Обновление: я попробовал eclipse -clean (я на 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 ]

3 голосов
/ 06 октября 2009

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

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

eclipse.exe -clean

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

1 голос
/ 06 октября 2009

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

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

0 голосов
/ 05 октября 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...