デバッガーのステップイン ステップオーバー ステップアウトの違い

概念としては覚えてはいるけどもきっちり説明しようと思ったらちゃんと考えて文章にしないとだめ。

サンプルとして以下のコードがある(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のライブラリにたどり着いてしまう。なので通常はステップオーバーを使う。これはメソッドの呼び出しがあっても、その中には入らない。デバッガーが止まった階層でデバッグ続行が出来る。

ステップイン、オーバーの対象はプロシージャーの呼び出しで、それの中に乗り込むのがステップイン、それを乗り越えるのがステップオーバーである。それぞれの英単語の意味と結び付けた覚えよう。

で、最後のステップアウトはものすごい長いメソッドで、その処理はデバッグに関係ないので抜けたいときに使う。

通常のデバッグはステップオーバー中心で行い、精査の必要があるときはステップインでもぐってみる(本来はそこにブレークポイント貼るべきだけど)。そのメソッドがデバッグ不要なときはステップアウトを使う。

カテゴリー: Programming パーマリンク

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload the CAPTCHA.