Eclipseでのデバッグ方法~プロジェクトの削除と復活
20年経ってもデファクトスタンダードIDEのEclipse入門 第3回
デバッグ実行の活用
ブレークポイントとデバッグ実行の基礎を理解してもらえたところで、応用させていきましょう。
ブレークポイントは複数設置できる
ブレークポイントは、いくつも設置することが可能です。例えば、図10は、7行目(リスト1では(3))だけでなく、9行目(リスト1では(5))にもブレークポイントを設置した画面です。
この状態でデバッグ実行をすると、図6と同様に1カ所目のブレークポイント(7行目)で処理が一時停止されます。その状態で、
ボタン(再開ボタン)をクリックすると、次のブレークポイントまで実行され、そこで一時停止します(図11)。
図8の変数ビューとは違い、7行目(リスト1では(3))や8行目(リスト1では(4))で用意した変数addや変数ansが増えているのが確認できます。このように複数のブレークポイントを設置し、それぞれで処理を一時停止→再開を繰り返し、変数の値を確認することで、より効率よくデバッグが行えます。
ブレークポイントの除去
設置したブレークポイントを除去する場合は、ブレークポイントを表す
アイコンをダブルクリックするだけです。ただし、さまざまなファイルのありとあらゆる箇所にブレークポイントを設置した場合、どこに設置したかわからなくなることも多々あります。
場合によっては、ブレークポイントを除去し忘れて、デバッグ実行時に思わぬところで処理が一時停止されてしまうこともあります。そのような場合に便利なのが、ブレークポイントビューです。デバッグパースペクティブでは、デフォルトで変数ビューの横にタブが配置されています(図12)。
このビューでは、現在のワークスペース中に存在するブレークポイントが一覧表示されます。リストからブレークポイントを選択し、
ボタン(選択ブレークポイントの除去ボタン)をクリックすると、そのブレークポイントが除去されます。さらに、
ボタン(全ブレークポイントの除去ボタン)をクリックすると、全てのブレークポイントが除去されます。
処理を1行ずつ実行するステップオーバー
処理の一時停止→再開の究極形は、1行ずつ処理を行うことです。場合によっては、そのようなデバッグ実行をしたい場合もあります。となると、各行にブレークポイントを設置しなければならないように思いますが、Eclipseには1行ずつ処理を行う機能があります。それが、ステップ実行です。
例えば、図13は6行目(リスト1では(2))にブレークポイントを設置し、そこで処理が一時停止されている状態です。
この状態で、ツールバー上の
ボタン(ステップオーバーボタン)をクリックすると、6行目(リスト1では(2))の処理が実行され、7行目(リスト1では(3))で処理が一時停止します(図14)。
変数タブでは、図13にはなかった変数num2の値が表示されています。このように、コード1行ずつ処理を行いながら、変数の値を確認できるのがステップオーバーです。
メソッド内部の処理をステップ実行できるステップイン
このステップオーバーを繰り返していき、8行目(リスト1では(4))で一時停止している状態でステップオーバーボタンをクリックすると、8行目の処理が実行されて、9行目で一時停止となります。これは、正常な動作です。
一方、8行目ではAdditionクラスのplus()メソッドを呼び出しています。つまり、この行での実際の処理は、plus()メソッド内に処理が移管されているということであり、そこでさらに複数行の処理が行われていることになります。この呼び出し先メソッドでもステップ実行をしたい場合に利用するのが、
ボタンのステップインです。実際に行ってみましょう。図15は、8行目(リスト1では(4))で一時停止している状態です。
ここで、
ボタン(ステップインボタン)をクリックします。すると、画面が図16のように変わり、Additionクラスのplus()メソッド内をステップ実行している画面になります。
もちろん、この画面でステップオーバーを行うことで、メソッド内の処理を1行ずつ行うことが可能です。試しに、図16の状態で
ボタン(ステップオーバーボタン)をクリックすると、図17の画面になります。
これは、plus()メソッド内の最終行で一時停止している状態です。ここでさらにステップオーバーを実行すると、図15の画面に戻ります。これで、処理が元のmain()メソッドに戻ったことがわかります。
このようにして、ブレークポイントとステップ実行を活用することで、非常に効率よくデバッグできるようになります。
この記事は参考になりましたか?
- 20年経ってもデファクトスタンダードIDEのEclipse入門連載記事一覧
- この記事の著者
-
WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
