3

私は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 でリッスンしています。localhost 10000 に telnet で接続できます。ガベージ文字を送信すると、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

それは役立つはずです。詳細については、こちらを参照してください: Keeping Eclipse Running Clean

于 2009-10-05T20:19:56.953 に答える
1

Eclipseの本当に素晴らしい点の1つは、インストーラーがないことです。ただし、特定の道路で善意の旅行者がいることで、それが可能になっていることがわかりますapt-get eclipse。(ヒント:そうしないでください。)

あまり良くないことの1つは、それがかなり複雑であるということです。数千のスイッチの1つを切り替えたと思われる場合は、アーカイブを解凍して並列インストールを実行してください。Eclipseは、Windowsでも、そのように動作します。並列インストールが機能する場合は、少なくともそれがワークスペースまたは構成にすぎないことがわかります。機能しない場合は、外部を確認する必要があります。(ええと、実行構成で同じ間違いを2回行わない限り。)

于 2009-10-05T20:01:47.743 に答える
0

ファイアウォールに何か変更が加えられましたか? NuSphere の php デバッガーを使用しており、TCP ソケット経由で通信します。更新中にファイアウォールが変更された場合、ファイアウォールが原因で、デバッガー サーバーが (おそらく) 実行されている localhost ポート経由でデバッガー クライアントに接続できなくなっている可能性があります。Eclipse のデバッガーがどのように機能するかはよくわかりませんが、同じように推測できます。

キックについては、snort を実行して、デバッガーがパケットを送信しているかどうかを確認できます。

于 2009-10-05T19:55:04.400 に答える