3

我一直在使用 Eclipse 3.4.2 和 PHPEclipse 和 Zend Debugger 一段时间没有问题。突然,我无法调试 PHP 脚本。我可以很好地运行它们,但是当我选择Debug As...时,脚本会在 Debug 窗口中显示,就好像它正在运行一样,但事实并非如此。如果我单击暂停,它报告为在第 0 行。我可以单步执行它,如果我继续,让它坐下然后再次暂停它仍然报告在第 0 行。

我试过关闭所有东西,重新启动我的系统,并创建一个新项目,但没有运气。

我最近更新了 Ubuntu 系统,但没有任何与 PHP 或 Eclipse 相关的东西(我可以说)。XULRunner 已更新。

我检查了调试配置,它选择了 Zend 调试器和 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)

鉴于此,我正在尝试查看是否可以找到其他任何东西。

4

3 回答 3

3

您提到您无法弄清楚发生了什么,但创建一个新工作区似乎可以解决问题。该案例可能只是 Eclipse 的一个众所周知的问题。基本上,随着时间的推移,系统中会积聚垃圾。当这种情况发生时,Eclipse(尤其是插件)开始崩溃。您可以在启动 Eclipse 时使用 -clean 参数来解决这个问题(无需创建新的工作区)。

因此,如果您运行的是 Windows,请编辑指向 Eclipse 的快捷方式,以便您看到:

eclipse.exe -clean

那应该有帮助。在此处阅读有关它的更多信息:保持 Eclipse 运行干净

于 2009-10-05T20:19:56.953 回答
1

eclipse 的一大优点是它没有安装程序,尽管我看到某条路上的一些好心的旅行者让你可以做到apt-get eclipse。(提示:不要那样做。)

不太好的事情之一是它相当复杂。如果您认为您可能已经翻转了它拥有的数千个开关中的一个,只需解压缩存档并进行并行安装。Eclipse 在这种情况下表现良好,即使在 Windows 上也是如此。如果并行安装有效,那么至少您知道它只是您的工作区或配置,如果没有,您知道从外部查看。(错误,除非您在运行配置中两次犯了同样的错误。)

于 2009-10-05T20:01:47.743 回答
0

您的防火墙是否进行了任何更改?我使用 NuSphere 的 php 调试器,它通过 TCP 套接字进行通信。如果您的防火墙在更新期间被修改,您的防火墙可能会阻止调试器服务器通过它(可能)运行的 localhost 端口联系您的调试器客户端。不太确定 Eclipse 的调试器是如何工作的,但我会以同样的方式猜测。

对于踢,您可以尝试运行 snort 以查看调试器是否正在向您发送数据包。

于 2009-10-05T19:55:04.400 回答