126
163

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【初心者向け】Eclipseでのデバッグ方法

Last updated at Posted at 2018-11-15

1.はじめに

IDE(統合開発環境) がIntegrated なのはエディタ上で「デバッグ」ができるから。
IDEでデバッグができることで、生産性が上がる。
デバッグすることが勉強になる。

1.1.この文章の対象

  • 対象環境: Eclipse。バージョンは気にしない。
  • 対象者: Eclipseとデバッグの初心者。
  • 対象言語: Java。バージョンは気にしない。

1.2.デバッグ、デバッガって何

バグの原因を調査し、修正するのが「デバッグ」。

プログラムにバグがあったときにの原因調査のために利用するツールが「デバッガ(debugger)」。

デバッガは、

  • 「ブレークポイント」でプログラムを一時停止し
  • その時点の変数などの値を見たり、1行ずつなど動かして、プログラムの動作を見て
  • どこで想定と違う動きとなるか、といった調査を行う
    というように利用する。

1.3.なぜ、デバッガがいるの?

バグがあるから。
全部想定どおり動けば要らない。

プログラムを動かすと、想定と異なるデータ、考慮不足の設計、
コーディングミスなど様々な原因でバグが発生する。
(想定どおり動いているよね、という確認に利用することもあります。)

2. 使い方

2.1.「ブレークポイント」 と その設定

「ブレークポイント」とは、一時停止させるプログラムの行のこと。
プログラムの「エディター」ウィンドウの一番左側をダブルクリックすると、ブレークポイントとして設定され、○が表示される。
BreakPoint.png

  • 停止できる行にしか設定できない。(空白行、クラスやメソッドの定義の行などには停止しない。)
  • 複数の行をブレークポイントに設定できる。
  • その行に来た時点で一時停止する。
  • ブレークポイントに条件を設定し、設定条件の場合にのみ一時停止することも可能。

「ここら辺が怪しい、この変数の値を見たい、ここら辺の動作をみたい」というところに設定する。

ブレークポイントを解除したい場合、○をダブルクリックする。

2.2.「実行(Run)」/「デバッグ」

IDEでのプログラムの実行方法は次の2つがある。

  • 「実行」: ブレークポイントで一時停止しない。
  • 「デバッグ」: ブレークポイントで一時停止する。

デバッグでブレークポイントに到達すると、そこで一時停止し、Eclipseの「デバッグパースペクティブ」上のエディタが開き、停止している行が矢印で示される。
BreakPoint2.png

尚、main関数で引数を設定する場合は、右クリック→「構成(run configuration, debug configuration)」の「引数(Argument)」で設定できる。

2.3.デバッグ 停止中にできること

2.3.1.値の確認

下記で、値を確認できる。
メソッド戻り値や、クラスのフィールドも見れる。

2.3.2.インスペクション(Inspect): 一回だけ見たい場合

フィールドを選択した状態で、右クリック -> インスペクション

2.3.3.監視(Watch): 継続的に見たい場合

フィールドを選択した状態で、右クリック -> 監視

変数であれば、「変数(Variable)」タブで変数の値を確認できる。

2.4.一時停止から動かす

デバッグの一時停止中に「処理が次の行に進むとどうなるのかな?」といった場合に以下のように動作させる。
(よく使うもののみ記載。)

ステップオーバーなど、ショートカットを使うと手間が減る。

日本語コマンド English 挙動 ショートカット
再開 Resume プログラムの終了まで実行する。※ F8
終了 Terminate 処理を中断(アプリケーションを終了)する。 Ctrl+2
ステップイン Step Into 一時停止している次の行に進んで一時停止する。対象行でメソッドを呼び出す場合、呼び出し先のメソッドに入って先頭で一時停止する。 F5
ステップオーバー Step Over 一時停止している次の行に進んで一時停止する。対象行でメソッドを呼び出している場合などは、それらの処理を行って次の行に進む。※ F6
ステップリターン Step Return 実行中のメソッドのreturnまで行い、呼び出し元のメソッドに戻った時点で一時停止する。※ F7

※ それまでにブレークポイントに進んだ場合は、そこで一時停止する。

ショートカットについては、ボタンの押し間違いに注意!
「やっと再現した!」 → トレースしているときに、F7とF8を押し間違える → ( ゚Д゚) ( ゚Д゚) ( ゚Д゚)

126
163
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
126
163

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?