JavaTM Platform Debugger Architecture
既知のバグと制限
- デバッグ中の VM で大量のイベントが生成されると、クラッシュする可能性があります。 この現象は、大きなアプリケーションのメソッドに入るイベントおよびメソッドから出るイベントをすべて有効にした場合に発生する可能性が高くなります。
- 同じ場所で発生したイベントは、イベントセットに正しく結合されず、単一要素のイベントセットとして個別にレポートされます。 この現象は、複数の種類のイベントが同じスレッドおよび位置で発生したときに起こります。
- 転送先の Field、LocalVariable、または ArrayReference 要素が配列型のときは、不正な ClassNotLoadedException が発生し、setValue メソッドが正常終了しないことがあります。
- 既に無効になっている StackFrame (スレッドが取得済みで再開された状態) を使用しようとすると、ターゲット VM でクラッシュする可能性があります。
- JDB 用に生成されたパーサファイルでは、Java 2 プラットフォームライブラリから推奨されていない API が使用されます。
-
合成フィールドおよび合成メソッドは、抑制されていません。また、非合成メンバと区別されません。
- JDI では、インプロセスデバッグはサポートされていません。
- コンストラクタには、「<init>」という名前およびメソッド形式のシグニチャーが追加されます。たとえば、デフォルトのコンストラクタには、「()V」というシグニチャーが追加されます。
現在の Win32 を使用している従来の VM の JVMDI 実装および Solaris リファレンス VM 実装には、次のバグが存在します。
これらのバグは、Java 2 SDK の最初の保守リリースで修正される予定です。
- -g オプションを指定しないでクラスをコンパイルした場合は、JDI に対してローカル変数を問い合わせると、適切な AbsentInformationException 例外が生成されずに、空のリストが返されます。
- メソッドの開始位置にブレークポイントを指定した場合は、メソッド呼び出しをステップオーバしてもレポートされません。
- ローカル変数の値が不正な場合は、メソッドから出るイベント中にレポートされます。
- 命令が最初に高速命令をステップ実行するときに、重複したステップ実行イベントが生成されます。
現在の製品リリースの Sun SolarisTM VM は、このリリースとともに使用することはできません。 Solaris リファレンス実装は使用できますが、上記の制限が適用されます。