デバッグ時のクラスの再定義

デバッグ中にHotSwap機能を使用すると、アプリケーションを停止したり再起動せずに、エラーを修正し、修正されたクラス定義を置き換えることができます。HotSwapは、Java 2 SDK v1.4のJava Platform Debugger Architecture(JPDA)の拡張機能で、JDeveloperのJava Virtual Machine(OJVM)に実装されています。

デバッガの一時停止中に、クラスを再コンパイルできます。コードがホットスワップされた後にデバッガが再開すると、古いメソッド定義を現在実行しているスレッドは、そのメソッドが戻るまで実行を続行します。後続のメソッド・コールでは、クラス定義が使用されます。ただし、クラスの既存のインスタンスは変更されず、クラス変数もリセットされません。クラス・メソッドのロジックを変更するには、HotSwapを使用してください。フィールドやメソッドの追加または削除など大幅な変更を行う場合は、ほとんどの場合、HotSwapは使用できません。

デバッグ中にクラスを再定義するには、次のようにします。

  1. クラスのソース・コードを編集します。

  2. 次の手順でクラスを再コンパイルします。メイン・メニューから「実行」次の選択「メイク<classname>を選択するか、ソース・エディタでクラスを右クリックして「メイク」を選択します。

    デバッガのログ・ウィンドウに、再定義が正常に終了したかどうかを示すメッセージが表示されます。

  3. デバッガのツールバーで 「再開」アイコン をクリックして、実行を再開します。

    古いメソッド定義を現在実行しているスレッドは、そのメソッドが戻るまで実行を続行します。後続のメソッド・コールでは、新しいクラス定義を使用して実行が再開されます。


プログラムのデバッグ
実行スタックからフレームを戻す