概念としては覚えてはいるけどもきっちり説明しようと思ったらちゃんと考えて文章にしないとだめ。
サンプルとして以下のコードがある(VBAだけと基本概念はEclipseでも同じ)
Sub StepOver
MsgBox “1”
‘ ステップインだとStepInの中へ移動する、ステップオーバーだと中へは行かない
Call stepin
MsgBox “2”
‘ ステップアウトするとEndSub まで飛ぶ(Subを抜ける)
MsgBox “3”
MsgBox “4”
MsgBox “5”
MsgBox “6”
End Sub
Sub StepIn
MsgBox “StepIn”
End Sub
上記のサンプルをまずは念頭において
ステップインはインの単語のとおり、デバッグ中にプロシージャー(メソッド)があれば、そちらに移ってデバッグを続行する。JavaなんかでステップインしているとすぐにJDKのライブラリにたどり着いてしまう。なので通常はステップオーバーを使う。これはメソッドの呼び出しがあっても、その中には入らない。デバッガーが止まった階層でデバッグ続行が出来る。
ステップイン、オーバーの対象はプロシージャーの呼び出しで、それの中に乗り込むのがステップイン、それを乗り越えるのがステップオーバーである。それぞれの英単語の意味と結び付けた覚えよう。
で、最後のステップアウトはものすごい長いメソッドで、その処理はデバッグに関係ないので抜けたいときに使う。
通常のデバッグはステップオーバー中心で行い、精査の必要があるときはステップインでもぐってみる(本来はそこにブレークポイント貼るべきだけど)。そのメソッドがデバッグ不要なときはステップアウトを使う。