76

Eclipse デバッガーで実行すると、ファイルが開かれる FileInputStream.class の 106 行目で常に停止しているように見える小さなプロジェクトがあります。ブレークポイントは設定されていませんが、Eclipse はここにブレークポイントがあるかのように動作します。すべてのブレークポイントをクリアしても、まだ発生します。

同じ Eclipse ワークスペースに、この問題に悩まされていない 2 番目のはるかに大きなプロジェクトがあります。

小さなプロジェクトを、Europa Eclipse で開発した古い Linux マシンから移動して、この問題を抱えていた新しい Windows マシンに移動しました。Ganymede Eclipse で引き続き問題が発生します。この問題は、オペレーティング システム間および Eclipse バージョン間で持続しますが、明らかにプロジェクト間では発生しません。理解できません!このプロジェクトのディレクトリ内のすべてのファイルを調べてみましたが、Eclipse に FileInputStream で停止するように指示している可能性のあるファイルを見つけることができませんでした。

詳細情報: 明らかなブレークポイントは、実際には FileInputStream の 106 行目ではありません。FileInputStream のその行から呼び出されたネイティブ コードからスローされた、FileNotFoundException の例外ブレークポイントのようです。しかし、繰り返しますが、ブレークポイントがまったく設定されていないようです。例外ブレークポイントは別の場所で定義されていますか?

4

5 に答える 5

115

選択を解除しようとしましたか

Window > Preferences > Java > Debug : Suspend execution on uncaught exceptions

? (たとえば、このスレッドで言及されているように)

代替テキスト

Eclipse がそのように機能するのはなぜですか?

ブレークポイント オブジェクト階層が削除された 2002 年にさかのぼります。

ITypeブレークポイントを設定するために、古い API では、クライアントは 、IFieldなどの Java モデル オブジェクトを必要と
していました。新しい API では、デバッグ モデルで必要なのは型名、フィールド名などだけです。

これにより、クライアントは Java モデル オブジェクトが利用できない場合にブレークポイントを設定できます。
クライアントは、ブレークポイントを関連付けるリソースを指定するようになりました (関連付けられた Java モデル リソースに制約する前に)。

ブレークポイントも「非表示」にできるようになりました。つまり、ブレークポイント マネージャに登録する必要はありません。
ブレークポイントは、選択的に永続化することもできます (マーカーは、マーカー タイプのすべてを永続化するか、まったく永続化できませんでした)。
これにより、デバッグ モデルがより柔軟になり、クライアントにより多くのビルディング ブロックが提供されます。

これにより、Java デバッグ実装の一部も簡素化されました。たとえば、機能 " "は、特定のプロジェクトの特定のブレークポイントではなくsuspend on any uncaught exception、単に " " という名前のタイプのブレークポイントを設定しますjava.lang.ThrowableIType
ブレークポイントはブレークポイント マネージャに登録されません (つまり、非表示)。1 つのクライアントだけが認識し、使用します
別の例は " run to line breakpoint" です。はIJavaRunToLineBreakpoint、特別な機能が不要になったため、削除されました。現在、Java デバッグ ui は、非表示で永続化されておらず、ヒット カウントが 1 の「行ブレークポイント」を作成するだけです。これは、ビルディング ブロックをクライアントに提供する例です。

于 2009-04-06T21:28:55.537 に答える
39

同様の問題がありましたが、受け入れられた解決策はうまくいきませんでした。私はEclipse Android開発を行っており、いくつかのブレークポイントを設定し、後でそれらを設定解除しました。それらを無効にしても、Eclipse はこれらのファントム ブレークポイントで実行を停止し続けました。私にとっての解決策は、ブレークポイント ウィンドウを開くことでした。

ウィンドウ > ビューの表示 > その他...

デバッグ > ブレークポイント

次に、任意のブレークポイントを右クリックし、[すべて削除] を選択します。

残念ながら、有効なブレークポイントをすべてリセットする必要がありますが、これは私にとってはうまくいき、今後の多くの不安や不満を防ぐことができました.

他の人を導くためのいくつかの写真:

ブレークポイント ウィンドウを Eclipse に追加する

すべて削除 (ブレークポイント、右クリック)

于 2012-10-03T22:39:48.843 に答える
0

以前の回答から解決策が見つからなかった場合は、私の問題を解決した方法を試すことができます。HAL9000の問題/解決策と似ていると思います

(2 つの異なるプロジェクトで) 同じ名前の 2 つのクラスがある場合は、一方のブレークポイントをもう一方にも適用します。どちらも「ブレークポイント」ウィンドウに表示されます。

解決策: 使用していない同じ名前のクラスからブレークポイントを削除すると、デバッグ中のクラスからブレークポイントが削除されます。

于 2014-12-13T01:09:17.373 に答える