Intellij 8内でJavaデバッガーを使用していて、「ドロップフレーム」というラベルの付いたボタンに気付きましたが、これがどのような目的に役立つのか誰かが知っていますか?これはどのように/なぜ使われる/役に立つのでしょうか?
Intellij 8内でJavaデバッガーを使用していて、「ドロップフレーム」というラベルの付いたボタンに気付きましたが、これがどのような目的に役立つのか誰かが知っていますか?これはどのように/なぜ使われる/役に立つのでしょうか?
回答:
アプリケーションのコールスタックはデバッガーで表示できます。「ドロップフレーム」機能を使用すると、ある時点で前のスタックフレームに「フォールバック」できます。これは、もう一度見たい重要な場所を逃した場合に、関数を再入力するのに役立ちます。
「スタックフレーム」という名前が示すように、グローバル状態にすでに加えられた変更(静的変数、フィールド値の変更など)は取り消されず、ローカル変数のみがリセットされます。これにより、最初にブレークポイントに至ったものとは異なる実行パスが生じる可能性があります。これに注意する必要があります。アプリケーションを再起動したり、現在のスタックにつながった特定の時間のかかるプロセスを実行したりすることなく、さまざまな実行パスを探索することは、便利な機能であるとよく考えます。デバッガーからも利用できる変数値の変更と組み合わせると、あらゆる種類の興味深いことができます。
もちろん、ネットワークトラフィック、ファイル操作、コンソール出力など、発生した可能性のある副作用は巻き戻すことはできません。