CodeGym /コース /Frontend SELF JA /IntelliJ IDEA Debug

IntelliJ IDEA Debug

Frontend SELF JA
レベル 38 , レッスン 3
使用可能

10.1 デバッガの起動

IntelliJ IDEAを使ってデバッグのプロセスを学んでいくよ、論理的で楽しいからね。今から確認してみて。

IntelliJ IDEA(Ultimate Editionが必要)は、プログラムを2つのモードで起動できるんだ:

プログラムの起動モード パネルのアイコン ショートカットキー
通常の実行 bug Shift+F10
デバッグモードでの起動 bug Shift+F9

通常モードでは、プログラムが起動して、実行されて、終了するよね。それに対して、デバッグモードは驚きがいっぱいだよ。

デバッグモード

デバッグモードでは、プログラムを1行ずつ実行することができる。つまり、1行ごとにストップして、変数の値を確認したり変更したりできるんだ!

デバッグのスキルを最低限マスターするには、以下の3つを学ぶ必要があるよ:

  • ブレークポイント
  • ステップ実行
  • 変数の値を確認

10.2 ブレークポイント (Break Points)

IDEを使うと、コードに特別なマークを置くことができるんだ、それがブレークポイント (break point)。デバッグモードでプログラムがこのマークのある行に達すると、一時停止するんだ。

break pointを置くには、IntelliJ IDEAでその行の左側をクリックするだけでいい。例:

break point

すると、その行にブレークポイントがついて、IntelliJ IDEAがその行を赤くハイライトするよ:

break point

もう一度クリックすると、その設定を解除できる。

また、Ctrl+F8を使って、現在の行に簡単にbreak pointを置くことができる。同じキーで解除もできるよ。

10.3 デバッグモードでのプログラム起動

プログラムに最低でも1つのブレークポイントがあれば、デバッグモードでの起動が可能だよ(Shift+F9 または「バグのアイコン」)。

デバッグモードで起動すると、プログラムは通常通りに実行される。でもbreak pointに達すると、一時停止するんだ。例:

break point

スクリーンショットの上半分には、2つのブレークポイントがあるプログラムコードが見える。プログラムは 2行目で止まって、青い線でマークされているんだ。2行目はまだ実行されていないので、コンソールには何も表示されていない。

画面の下半分には、デバッグモードのパネルが見えるよ:Thread & variables パネル、Console(スクリーン出力)、そしてデバッグ用のボタンセットだ。

Resume Programのボタンを左下のパネルで押す(またはF9キーを押す)ことで、プログラムを再開できる。

breakpoint

このボタンを押す(またはF9)と、プログラムは次のブレークポイントまたは終了まで実行される。ボタンを押した後の画面がこれ:

breakpoint

プログラムは2番目のブレークポイントで停止して、コンソールに「Hello」と「and」が表示されている。つまり、3つの出力行のうち、2行だけが実行されたってことですね。

10.4 ステップ実行

デバッグモードでプログラムが動作しているなら、1ステップ=1行でステップ実行することもできる。 ステップ実行にはF7とF8のショートカットがある—どちらも現在の行を実行する。 でも、その前にプログラムをbreak pointで停止させないとね。

プログラムを行ごとに実行したいなら、break pointを最初のコード行に置いて、デバッグモードで起動してみて。

プログラムが停止したら、ステップ実行を始めることができるよ。F8キーを1回押すと、1行実行。

これは、ストップしてF8を1回押した後のプログラムの見え方:

breakpoint

1行目のprint(“Hello”)はもう実行されたので、現在の行は2行目。スクリーンショットの下部では、"Hello"がすでに出力されているのが見えるね。

10.5. 関数内へ入るステップ実行

自分のプログラムにオリジナルの関数があって、デバッグモードでその中身も確認したい場合は、「関数に入る」ためにF7キーを押す必要があるよ。

例えば、プログラムをステップ実行していて、今5行目で止まっているとしよう。この状態でF8を押すと、Intellij IDEAは単に5行目を実行して6行目に進むだけだ。

debug

でも、ここでF7を押すと、Intellij IDEAはhello()関数をステップ実行してくれるんだ。

debug

とても簡単だよね。メソッドの内部で何が行われているかあまり気にしないならF8を押せばいいし、気になるならF7を押して全部のコードをステップ実行するんだ。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION