web-dev-qa-db-ja.com

Eclipse-デバッガーがブレークポイントで停止しない

JUnitの撮影に問題があります。ソースコードでは、2つの場所にブレークポイントを設定しています。1)静的メンバーが初期化される行2)テストケースの1行目の最初の行。

デバッガは、静的フィールドの初期化行で停止します。しかし、テストケースでは停止しません。テストケースのどこにブレークポイントを設定しても、デバッガはそこで停止しません。追加したログメッセージがログに表示されるのを見ることができるので、テストケースが実行されることは確かです。

どんな助けも大歓迎です。

Eclipse GalileoとJUnit4ランチャーを使用しています。

91
Roy

これは、 JDK 6アップデート15のリリースノートに示されているように、JDK 6アップデート14 のバグの1つに関連している可能性があります。

これが実際に問題であることが判明した場合は、JDKの上位バージョンに移行する必要があります(ただし、保証はありません 修正プログラムは6u16、6u18、7b1に対してリリースされています )。最善の策は、-XX:+ UseParallelGCフラグを使用することです。最初のGCを遅らせるために、最小および最大ヒープサイズのサイズを大きくすると、一時的に軽減されます。

ところで、 Eclipseのこのバグレポート を使用して、他の人がどのように進んでいるかを追跡します。

39
Vineet Reynolds

修正は、すべてのブレークポイントの実行/スキップをクリックするだけの簡単なものです。私のために働いた。

91
user1164035

状況に応じて、[実行]> [デバッグ構成]で[メインで停止]が選択されていることを確認します。

50
Answerer

通常、これが私に起こるとき(まれですが)、実行されているコードがエディターのコードと異なることを意味します。 Eclipseでは、ビルドされたクラスとエディターのコードが同期していないことが時々発生します。それが起こると、私はあらゆる種類の奇妙なデバッガーの動作(空行のデバッグ、コードの行のスキップなど)を取得します。

Eclipseを再起動し、すべてのプロジェクトをクリーンアップし、すべてを再構築すると、通常は問題が解決します。また、Mavenプラグイン(以前のバージョン...しばらくの間それを使用していませんでした)もありました。

さもなければ、それはバグかもしれない、おそらくVineetが述べたもの、

お役に立てれば

19
Newtopian

Eclipseツールバーのすべてのブレークポイントを誤ってスキップした可能性があります。これを修正するには、Eclipse-> Run-> Skip All Breakpointsに進みます。

17
Jigna.Shah

プロジェクト-> CleanはJRE 8で動作しているようです

3
JH95

すべてのブレークポイントを削除して、再度追加します。

デバッガーをリモートで使用するには、Java .classファイルをデバッグ情報とともにコンパイルする必要があります。 "-g:none"オプションがコンパイラに渡された場合、クラスファイルには必要な情報がないため、デバッガーはソースコードのブレークポイントをリモートのそのクラスと一致させることができません。一方、jars/classファイルがobfuscatedであった場合、デバッグ情報もありません。あなたの回答によると、おそらくこれはあなたの場合ではありませんが、この情報は同じ問題に直面している他の人にとって有用かもしれません。

2
sergeyan

必ずパッケージを上部で宣言してください。私のgroovyコードでは、これはブレークポイントで停止します:

package Pkg1

import Java.awt.event.ItemEvent;

isMule = false

class LineItem {
    // Structure defining individual DB rows
    public String ACCOUNT_CODE
    public String ACCOUNT_DESC
...

これはブレークポイントで停止しません:

import Java.awt.event.ItemEvent;

isMule = false

class LineItem {
    // Structure defining individual DB rows
    public String ACCOUNT_CODE
    public String ACCOUNT_DESC
...
1
Don Harrington

JDK7の場合、実行->デバッグ構成、「デバッグ時にテスト実行後にJUnitを実行し続ける」をチェックします。

1
Frank Fu

「実行>自動的にビルド」のチェックを外して、再チェックするのを忘れたときに、一度私に起こりました。

1
Mathiouss

私の場合、問題はデバッグパースペクティブでデバッグビューを開いていないことでした。

1-デバッグパースペクティブが開いていることを確認してください。

Eclipse debugger not working 1

2-デバッグビューが開いていることを確認します。

Eclipse debugger not working 2

1
Dani

ブレークポイントを削除するには

  1. クラスをjunitテストとしてデバッグする
  2. デバッガが停止したら、「変数」と「式」の横にある「ブレークポイント」タブをクリックします
  3. ブレークポイントタブの右上で、2つの「X」が付いたボタンをクリックします
  4. テストを停止し、ブレークポイントを置き換えて、デバッガーを再度実行します
0
Cyrois

何も動作しない場合-

  1. そのリモート/ローカルデバッグ構成を削除し、新しい構成を作成します。
  2. デバッグ構成でソースを追加します。
0
kanaparthikiran

Vineet Reynoldsの回答に関する追加コメント。

-XX:+UseParallelGCEclipse.iniを設定する必要があることがわかりました

次のように仮想マシン(vm)引数を設定します

-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M

これで問題は解決しました。

0
Amir Pauker

また、他の行のブレークポイントが機能するかどうかを確認します。これは、デバッガーのバグである可能性があります。コードが次の行にあるブール値の割り当てにブレークポイントを設定しても機能しなかったEclipseデバッガーで問題が発生しました ここでこれを報告しました 、しかし、前または次の行に設定しました。

0
Henno Vermeulen

Right click->Debug Configurationに移動し、作成されたデバッグインスタンスが多すぎるかどうかを確認します。設定から複数のデバッグインスタンスを削除し、新たにデバッグを開始すると、私の問題は解決しました。

0
priyanka_rao

別の考えられる問題は、デバッガーポートがファイアウォールによってブロックされる可能性があることです。たとえば、ラバエニポイントスタジオ(v 5.4.3)を使用していました。デフォルトのデバッガーポートは6666です。フローが実行されると、ブレークポイントで停止しません。ポートを別のポート(たとえば8099)に変更すると、正常に機能しました。

0

新しいワークスペースの作成は私にとってはうまくいきました。

0
Ahmed Tawila

Eclipseを使用している場合、

[パッケージエクスプローラー]の下のプロジェクトフォルダーを右クリックします。

ソースに移動->クリーンアップしてプロジェクトを選択します。

これにより混乱が解消され、ブレークポイントが機能するようになります。

0
Sureshbabu E

私の場合、同じワークスペースに複数のプロジェクトがありました。デバッグしようとしていたJavaファイルは、同じパッケージを持つ複数のプロジェクトに存在していました。

私は他のプロジェクトを必要としなかったので、単純に無関係なプロジェクトを閉じました(または無関係なプロジェクトからファイルを削除しました)。

0
Shanu Gupta