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に更新されています。

再起動

デバッグ実行を終了し、再度実行します。

停止・切断

デバッグ実行を中断します。

おわり

いかがだったでしょうか?

ステップ系の各操作については、

  • 関数に入る → ステップイン
  • 関数をまたぐ → ステップオーバー
  • 関数から出る → ステップアウト

とすると覚えやすいかもです!

サンプルコードでは様々な状況で実行できるようになっているので、ぜひご活用ください!💪