見出し画像

【Javaお勉強日記】VS CodeでJavaのデバッグ実行をして、変数の中身を確認する

VScodeを使い、デバッグ実行をして、変数の中身が変わることを確認します。

前提

・VScodeがインストールされている

・VScodeでJavaが実行できるようになっている

必要なエクステンション

Java Test Runner

Debugger for Java

VScodeのエクステンションタブから検索すればすぐ見つかります。

ブレークポイントを作る

画像1

行番号の左側をクリックすると、赤丸が表示されます。ブレークポイントにしたい行にカーソルを合わせてF9でもOK。

赤丸が付いている箇所は、デバッグ実行したときにそこで一旦停止します。変数がどのように変更されて行っているかを確認したい箇所にブレークポイントを設定します。

実行する

mainの引数に String[] args を設定しないと実行出来ないので注意。

で、次のいずれかの方法でデバッグ実行します。

・mainメソッドの上に表示される「Debug」をクリック

画像2

・画面右上の再生ボタンの隣にある、虫マーク付き再生ボタン

画像3

・F5キーを押す

デバッグ実行すると、ブレークポイントを設定した箇所で実行が止まってくれるので、変数の中身をじっくり確認できます。

変数の中身の確認

画像4

デバッグタブ(画面左端の

画像5

これを押す)を開いて、一番上のVARIABLES欄を開くと変数の中身が表示されます。

特に注目したい変数がある場合、その下のWATCH欄を使うと便利。
WATCH欄にカーソルを合わせると右上に+マークが出てくるので、そこをクリックして監視したい変数名を入力すると監視してくれます。

ブレークポイントで一時停止した後の動作

デバッグ実行を開始すると表示される

画像8

このツールバーを使って操作が可能です。

左から、

コンティニュー(次のブレークポイントまで実行)

ステップオーバー(このクラス内の次の行まで実行(現在の行が関数を呼び出す場合、関数内の処理は停止せず実行されて、現在のクラスファイルの次の行でストップする))

ステップイン(実際の処理上の次の行まで実行(現在の行が関数を呼び出す場合、呼び出された関数内へ移動する))

ステップアウト(ステップインにより元の関数が呼びだした関数内で一時停止しているとき、呼び出し元の関数へ戻るところまで実行。一番外側の関数でステップアウトしたら、次のブレークポイントまで実行)

リスタート

ストップ

ホットコードリプレイス(デバッグ中にコードを変更した際、その変更をリスタート不要で即座に反映できるらしいんだけど、思った様に動かない?)

main関数に引数を渡す

String[] argsにテスト文字列を渡して実行したい場合、launch.jsonを編集する必要があります。

画像6

デバッグタブを開いて、設定ボタンを押します。

launch.jsonが作成されていない場合、デバッグタブを開いた時に作るよう求められるので、作るボタンを押せば自動で作られます。

画像7

launch.jsonを開いたら、テストしたいクラスの所(今回はTestApp)に、

"args": ["hoge","huga"]

を追記します。これで、デバッグ時に自動的にString[] args に["hoge","huga"]を渡して実行してくれます。

Springbootアプリのデバッグ

各クラスの、止めて確認したい箇所にブレークポイントを作成してから、

SpringApplication.run(DemoApplication.class, args);

が書いてあるクラスをデバッグ実行し、Springbootアプリをデバッグ状態でローカル実行。

その状態で該当のクラスが呼ばれるページへアクセスしようとすると、デバッグウインドウに変数の中身が表示されるので内容を確認できます。

以上、かなり簡単に変数の中身を確認することが出来ました。

launch.jsonを用意することと、メインメソッドの引数にString[] argsを忘れずに設定することだけ気をつければ大丈夫そうです。

この記事が気に入ったらサポートをしてみませんか?