FaqDebugBackupJa

デバッグしているとき、実行し直さずに戻ってステップを繰り返すにはどうしたらいいですか?

デバッグ中、しばしば現在のメソッドにステップインし直せると助かることがあります。例えばこのような場合です:

  void foo() {
    int x = bar();
    int y = baz();
  }

デバッグ作業ではコードをステップ実行することがよくあり、あなたがこうなるはずだと考えることと実際に起きたことを頭の中で比較します。メソッド foo() に入ったとき、メソッド bar() にステップインするかどうか決める必要があります。もし bar() にステップインせずに済ませ、それが x に期待する値を返したのであれば、あなたはなにかしらかの時間を節約したことになります。

しかし、期待した値が間違っていた場合、戻って bar() の中で何が起きているのか見たいでしょう。このメソッドに入るためにすべての設定作業を繰り返したりたぶんデバッグセッションをやり直したりするのではなく、単純にスタックフレームの最上部を取り出し、再度ステップインしたいでしょう。そうすると foo() メソッドに戻れ、bar() にステップインすることができます。

これは、実行に影響を与える副作用がそのメソッド内にない場合に可能です。運がいいことに、多くの場合はそうです。

手順は多少厄介です。メニューから「実行」、「スタック」サブメニューを選択し、そして「最上位の呼び出しをポップ」を選択します。または、同じように不便ですが、「スタック」ビューに切り替え、二つめのフレームを右クリックし、「ここまでポップ」を選択します。

このようなことを行う「メソッドを再試行」ツールバーボタンにあるともっと便利でしょうね。「最上位の呼び出しをポップ」して、「ステップイン」するわけです。今のところは、この手動操作が使えますし、デバッグがより速やかに進むように助けてくれます。


  バージョン: NetBeans 5.5, 6.0
  プラットフォーム: すべて

---

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo