SourceDebugExtensionこのドキュメントの以降では、これらの追加の詳細について説明します。
SourceDebugExtension 属性SourceDebugExtension 属性は、ClassFile 構造体の attributes テーブル内のオプション属性です。 与えられた ClassFile 構造体の attributes テーブル内の SourceDebugExtension 属性は、複数存在することができます。
SourceDebugExtension 属性には次の形式があります。
SourceDebugExtension_attribute {u2 attribute_name_index;u4 attribute_length;u1 debug_extension[attribute_length];}
SourceDebugExtension_attribute 構造体の項目は次のとおりです。
attribute_name_index
attribute_name_index 項目の値は、constant_pool テーブルへの有効なインデックスである必要があります。 そのインデックスの constant_pool エントリは、文字列「SourceDebugExtension」を表す CONSTANT_Utf8_info 構造体である必要があります。
attribute_length
attribute_length 項目の値は、属性の長さを示します (最初の 6 バイトを除く)。 したがって、attribute_length 項目の値は、debug_extension[] 項目内のバイト数です。
debug_extension[]
debug_extension 配列は文字列を保持します。文字列は UTF-8 形式である必要があります。 終了文字 0 バイトはありません。
debug_extension 内の文字列は、拡張デバッグ情報として解釈されます。 この文字列の内容は、Java 仮想マシンのセマンティックに影響しません。
jvmdiError GetSourceDebugExtension(jclass clazz, char **sourceDebugExtensionPtr)
clazz で指示されたクラスについて、sourceDebugExtensionPtr を介してデバッグ拡張機能を返します。 返される UTF-8 文字列には、clazz ファイルに存在するデバッグ拡張情報がそのまま含まれます。
パラメータ:
- clazz
- 照会するクラス
- sourceDebugExtensionPtr
- 戻ったとき、クラスのデバック拡張機能名 (UTF-8) へのポインタを参照する。 返されたシグニチャーの文字列は、
Deallocateを使って解放する必要がある
この関数は、汎用エラー、または次のエラーのどれかを返します。
JVMDI_ERROR_NULL_POINTER- 無効なポインタ
JVMDI_ERROR_INVALID_CLASSclazzが無効JVMDI_ERROR_ABSENT_INFORMATION- クラス情報に、デバッグ拡張が含まれていない
ReferenceType コマンドセット) に、次のコマンドが追加されました。
| referenceTypeID | refType | 参照型 ID | ||||
| string | sourceDebugExtension | デバッグ拡張文字列 | ||||
ReferenceType の Java Debug Interface (JDI) に、次のメソッドが追加されました。
public String sourceDebugExtension()
AbsentInformationException をスロー
AbsentInformationException - デバック拡張文字列が指定されていない場合ObjectCollectedException - この参照型がロードされていない場合| Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved.
コメントの送付先: java-debugger@java.sun.com |