【Javaお勉強日記】VS CodeでJavaのデバッグ実行をして、変数の中身を確認する
VScodeを使い、デバッグ実行をして、変数の中身が変わることを確認します。
前提
・VScodeがインストールされている
・VScodeでJavaが実行できるようになっている
必要なエクステンション
VScodeのエクステンションタブから検索すればすぐ見つかります。
ブレークポイントを作る
行番号の左側をクリックすると、赤丸が表示されます。ブレークポイントにしたい行にカーソルを合わせてF9でもOK。
赤丸が付いている箇所は、デバッグ実行したときにそこで一旦停止します。変数がどのように変更されて行っているかを確認したい箇所にブレークポイントを設定します。
実行する
mainの引数に String[] args を設定しないと実行出来ないので注意。
で、次のいずれかの方法でデバッグ実行します。
・mainメソッドの上に表示される「Debug」をクリック
・画面右上の再生ボタンの隣にある、虫マーク付き再生ボタン
・F5キーを押す
デバッグ実行すると、ブレークポイントを設定した箇所で実行が止まってくれるので、変数の中身をじっくり確認できます。
変数の中身の確認
デバッグタブ(画面左端の
これを押す)を開いて、一番上のVARIABLES欄を開くと変数の中身が表示されます。
特に注目したい変数がある場合、その下のWATCH欄を使うと便利。
WATCH欄にカーソルを合わせると右上に+マークが出てくるので、そこをクリックして監視したい変数名を入力すると監視してくれます。
ブレークポイントで一時停止した後の動作
デバッグ実行を開始すると表示される
このツールバーを使って操作が可能です。
左から、
コンティニュー(次のブレークポイントまで実行)
ステップオーバー(このクラス内の次の行まで実行(現在の行が関数を呼び出す場合、関数内の処理は停止せず実行されて、現在のクラスファイルの次の行でストップする))
ステップイン(実際の処理上の次の行まで実行(現在の行が関数を呼び出す場合、呼び出された関数内へ移動する))
ステップアウト(ステップインにより元の関数が呼びだした関数内で一時停止しているとき、呼び出し元の関数へ戻るところまで実行。一番外側の関数でステップアウトしたら、次のブレークポイントまで実行)
リスタート
ストップ
ホットコードリプレイス(デバッグ中にコードを変更した際、その変更をリスタート不要で即座に反映できるらしいんだけど、思った様に動かない?)
main関数に引数を渡す
String[] argsにテスト文字列を渡して実行したい場合、launch.jsonを編集する必要があります。
デバッグタブを開いて、設定ボタンを押します。
launch.jsonが作成されていない場合、デバッグタブを開いた時に作るよう求められるので、作るボタンを押せば自動で作られます。
launch.jsonを開いたら、テストしたいクラスの所(今回はTestApp)に、
"args": ["hoge","huga"]
を追記します。これで、デバッグ時に自動的にString[] args に["hoge","huga"]を渡して実行してくれます。
Springbootアプリのデバッグ
各クラスの、止めて確認したい箇所にブレークポイントを作成してから、
SpringApplication.run(DemoApplication.class, args);
が書いてあるクラスをデバッグ実行し、Springbootアプリをデバッグ状態でローカル実行。
その状態で該当のクラスが呼ばれるページへアクセスしようとすると、デバッグウインドウに変数の中身が表示されるので内容を確認できます。
以上、かなり簡単に変数の中身を確認することが出来ました。
launch.jsonを用意することと、メインメソッドの引数にString[] argsを忘れずに設定することだけ気をつければ大丈夫そうです。
この記事が気に入ったらサポートをしてみませんか?