VSCodeでのデバッグ操作解説(Ruby編)
目次
概要
デバッグにはいくつかの操作が用意されており、それらを適切に実行することで効率よく実装を進めることができます。
各操作で何ができるのかをまとめましたので、一緒に学んでいきましょう! 😊
アイコン紹介
VSCodeでデバッグを実行すると、以下のようなアイコンが表示されます。
これらは左から、
- 続行
- ステップオーバー
- ステップイン
- ステップアウト
- 1つ戻る
- 本記事では解説しません
- 反転
- 同上
- 再起動
- 停止・切断
となります。
サンプルコード
こちらのサンプルコードを使用して解説を進めます。
def main puts '処理を開始します。' first_method(5, 9) second_method(3) puts '処理を終了します。' end def first_method(x, y) puts '1つ目の関数です。' z = x + y puts "zの値は#{z}です。" z = double_method(z) puts "zの値は#{z}です。" end def double_method(x) x * 2 end def second_method(x) puts '2つ目の関数です。' x.times do |count| puts "#{count}回目の処理です。" end end # main関数の実行 main
ブレークポイントについて
各種機能解説の前に、デバッグに必要不可欠な ブレークポイント を解説します。
ブレークポイントとは、確認したい処理につける目印のことです。 📌
目印をつけることで、その箇所で強制的に処理が一時停止され、実行内容を確認することができます。
また、ブレークポイントではどのような操作(再起動や中断を除く)を行ったとしても、処理が一時停止されます。
実際にデバッグ実行してみよう
ブレークポイントを設定しデバッグ実行すると、画像のように処理が一時停止されます。
また、一時停止時の変数の状態などを確認できます。
ブレークポイントを設定せずにデバッグ実行すると、一時停止することなく最後まで処理が進みます。
機能解説
(赤枠の箇所については解説を省きます。)
続行
次のブレークポイントまで処理を進めます。
次のブレークポイントがない場合は、最後まで処理が実行されます。
before
この状態で続行
すると、次のブレークポイントである26行目まで一気に進みます。
after
ステップイン
1行づつ処理を進めます。
関数があった場合、その関数の内部の1行目に移行します。
関数がない場合
before
after
変数z
の値が14に更新されています。
関数がある場合
before
after
double_method
の1行目に移動していることがわかります。👀
ステップオーバー
1行ずつ処理を進めます。
関数があった場合、その関数を実行して次の行に移行します。
ステップインと間違えやすいので注意です!🚨
関数がない場合
before
after
関数がある場合
before
after
double_method
が実行され、変数z
の値が28に更新されています。
ステップアウト
実行している関数の外(呼び出し元)に出るまで処理を進めます。
before
after
first_method
の最終行まで処理が進んでいることがわかります。
また、double_method
が実行され、変数z
の値が28に更新されています。
再起動
デバッグ実行を終了し、再度実行します。
停止・切断
デバッグ実行を中断します。
おわり
いかがだったでしょうか?
ステップ系の各操作については、
- 関数に入る → ステップイン
- 関数をまたぐ → ステップオーバー
- 関数から出る → ステップアウト
とすると覚えやすいかもです!
サンプルコードでは様々な状況で実行できるようになっているので、ぜひご活用ください!💪