(私はデバッガーをコーディングしています。しかし、私の疑問はデバッガーユーザーの観点からもです)
多くの言語 (GDB、Eclipse) の多くのデバッガーは、一度に 1 つのステートメントを実行できる STEP_OVER コマンドを実装しています。STEP_INTO との違いは、スタック (つまり、呼び出された関数) でステップ ダウンを実行しないことです。これは多くの場合、良いことです。
10 : y = f1(x);
11 : z = y + 1;
ここで、上記の 10 行目にステップ オーバーしたとしますが、ブレークポイントが関数内f1
(おそらくコール スタックの数レベルの深さ) でヒットしたとします。再開時に何が起こるべきかは明確ではありません: デバッガーは 11 行目で一時停止する必要があります (実質的に「ステップ オーバー」コマンドを完了します)。それともそれを忘れるべきですか?私は、ほとんどの (すべての?) デバッガーが後者を行うと信じています。それは標準/予想される動作ですか? 私自身、これは少しイライラしました。内側のブレークポイントから外側のステップオーバーされたステートメントまで実行を再開する方法は (一部のデバッガーで) ありますか? または、ブレークポイントを無視してステップオーバーを行う方法はありますか?