Eclipseでデバッグが止まらなくなった場合の対処方法

Eclipseのデバッグをしているとまれにブレークポイントを置いたにも関わらず、ブレークポイントで止まらない事があります。

そんなときの確認ポイント・対処方法をご紹介します。

デバッグ実行していない

初歩的なミスですがありがちですので実行方法を見直してみてください。

Eclipseを使ったJavaのデバッグ方法
Javaの開発を行っていて、自分では正しくコーディングしたつもりでも実行結果が想定と異なる場合ありますよね? そのような場合、...

すべてのブレークポイントをスキップ機能が有効になっている場合

Eclipseのデバッグ設定ですべてのブレークポイントをスキップ機能をONにしている場合はOFFにしましょう。

ブレークポイントをスキップ

機能が有効化されているとブレークポイントを置き、デバッグ実行していてもデバッグ実行できません。

ちなみにすべてのブレークポイントをスキップ機能が有効の場合、ブレークポイントのアイコンが斜線付きの青丸に変わっています。

ブレークポイントをスキップ機能無効時(デバッグ可) ブレークポイントスキップ_無効
ブレークポイントをスキップ機能有効時(デバッグ不可) ブレークポイントスキップ_有効

プロジェクトの更新

Eclipse上で認識しているプロジェクト構成と実際の構成が同期化されておらず不整合が発生している可能性があります。

プロジェクトを右クリックしてリフレッシュを実行してください。

プロジェクトのリフレッシュ

プロジェクトのクリーン

ソースの変更が正しくコンパイルされていない可能性があります。

メニューバーからプロジェクトを選択し、クリーンを実行しましょう。

プロジェクトのクリーン

WTPのクリーン

Webアプリケーションの構築にWTPを使っている場合はWTPのクリーンも実施してみましょう。

WTP上のサーバーを右クリックし、クリーンを実行。

WTPのクリーン

Eclipseの再起動

上記でも解決できな場合はEclipseを再起動しましょう。

ここまでで大抵は実行できるようになると思います。

エンハンスされたクラスのデバッグ

急に難しく特定領域の話になりますのでよくわからない人は読み飛ばしてください。

昨今Webアプリケーションを作成する場合フレームワークは欠かせません。

Struts、Struts2、SAStruts、Spring、JSFなど。

これらのフレームワークでは作成したクラスを実行時等に独自に拡張し動的にクラスを生成(更新)する機能を持つものがあります。そのように作成されたクラス(またはメソッド)をエンハンスされたクラス(またはメソッド)といいます。

AOPなどが代表的ですね。

これらのデバッグは非常に厄介です。

もともとソースはないのでブレークポイントはおけません。

何が問題かというとステップ実行していくと「行番号属性が見つからないため、ブレークポイントを・・・」というダイアログが出て意図したデバッグができなくなる場合があります。

フレームワークが実行時等に動的に生成するクラスやメソッドのため該当ソースがなく、行番号属性がないために発生します。

その場合はソース上で次に実行されるであろう箇所にブレークポイントを置き、デバッグの再開機能を用い、エンハンスされたクラス(メソッド)のデバッグをスキップさせることで対応することが可能です。

スポンサーリンク
スポンサードリンク
スポンサードリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする