我一直在使用Eclipse 3.4.2与PHPEclipse和Zend Debugger一段时间没有问题。突然间,我无法调试PHP脚本。我可以运行它们但是当我选择 Debug As ... 时,脚本会在Debug窗口中显示,就像它正在运行一样,但事实并非如此。如果我点击暂停它报告为在第0行。我可以单步执行它,如果我恢复,让它坐下然后再次暂停它仍然报告在第0行。
我尝试关闭所有内容,重新启动系统,并在没有运气的情况下创建新项目。
我最近更新了Ubuntu系统,但没有任何与PHP或Eclipse有关(我可以告诉)。 XULRunner已更新。
我已经检查过Debug Configs,它选择了Zend Debugger和PHP Executable,就像以前一样工作。我已经玩过编辑源查找以确保它正在查找正确的位置。
有什么想法吗?
编辑: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)
我正试图看看我是否可以追踪到这一点。
答案 0 :(得分:3)
你提到你无法弄清楚发生了什么,但创建一个新工作区似乎解决了这个问题。这个案例可能只是Eclipse的一个众所周知的问题。基本上,随着时间的推移,cruft往往会在系统中积聚。当发生这种情况时,Eclipse(尤其是插件)开始崩溃。您可以在启动Eclipse时使用-clean参数来解决此问题(无需创建新工作区)。
因此,如果您运行的是Windows,请编辑指向Eclipse的快捷方式,以便您看到:
eclipse.exe -clean
那应该有所帮助。在此处阅读有关它的更多信息:Keeping Eclipse Running Clean
答案 1 :(得分:1)
关于eclipse的一个非常好的事情是它没有安装程序,虽然我看到一些善意的旅行者在某条道路上让你可以做apt-get eclipse
。 (提示:不要这样做。)
其中一个不太好的事情是它相当复杂。如果您认为可能已经翻转了它拥有的数千个交换机中的一个,只需解压缩存档并进行并行安装。 Eclipse就是这样,即使在Windows上也是如此。如果并行安装有效,那么至少你知道它只是你的工作空间或配置,如果没有,你就知道要从外部看。 (呃,除非你用你的运行配置两次犯同样的错误。)
答案 2 :(得分:0)
您的防火墙是否有任何更改?我使用NuSphere的php调试器,它通过TCP套接字进行通信。如果在更新期间修改了防火墙,则防火墙可能会阻止调试器服务器通过它(可能)运行的localhost端口与调试器客户端联系。不太清楚Eclipse的调试器是如何工作的,但我会以同样的方式猜测。
对于kick,您可以尝试运行snort以查看调试器是否正在向您发送数据包。