データ・プローブ・オブジェクトには、フラグメントの Code オブジェクト内のソース・コードによって参照されるデータ項目の名前およびタイプが含まれます。
データ・オブジェクトの使用は任意です。 プローブ・フラグメントには複数のデータ・オブジェクトを含めることができますが、1 つのフラグメント内の 2 つのデータ・オブジェクトを同じタイプまたは名前にすることはできません。
プロパティー | 説明 |
---|---|
name | 必須。有効な Java 変数の名前を指定する必要があります。 |
type | 必須。使用可能なタイプを以下の表にリストします。 |
タイプ | データ型 | 説明 |
---|---|---|
className | String | プローブ済みメソッドのクラス名で、パッケージ名を含む (内部フォーマット)。 例: org/eclipse/hyades/SomeClass |
methodName | String | プローブ済みメソッドのメソッド名 (内部フォーマット)。 staticInitializer フラグメントでは無効です。 コンストラクターはメソッド名 <init> を持ち、静的クラス・イニシャライザーはメソッド名として <clinit> を持ちます。 |
methodSig | String | メソッドの引数および戻りの型のシグニチャー (内部フォーマット)。 staticInitializer フラグメントでは無効です。 例: (Ljava/lang/String;)I |
thisObject | Object | プローブ済みメソッドに渡された this オブジェクト (インスタンス・メソッド用)。 staticInitializer フラグメントでは無効です。 静的メソッド、コンストラクターに適用される entry フラグメント、および、コンストラクターが例外をスローしたときにコンストラクターに適用される exit フラグメントに対しては、thisObject は null になります。 |
args | Object[] | プローブ済みメソッドへの引数を表す、Object 参照の配列です。 この配列の中に、メソッドへの各引数ごとに 1 つの要素が含まれます (this 引数はカウントしません)。 プリミティブ型の引数は、適切な参照タイプの一時オブジェクトにバインドされます。たとえば、int に対する Integer のようになります。 メソッドに引数がない場合は、サイズがゼロの Object[] 配列になります。 非静的インナー・クラスのコンストラクターには「インナー」レベルごとに 1 つの隠し引数があるため、ソース・コードにあるより多くの要素が、引数配列に含まれていることに注意してください。 staticInitializer フラグメントでは無効です。 |
returnedObject | Object | 戻されるオブジェクトへの参照。 このタイプは、exit フラグメントに対してのみ使用可能です。 プローブ済みメソッドの戻りの型がプリミティブ型である場合、戻される値は、適切な参照タイプの一時オブジェクトにバインドされます。 メソッドが void (値を戻さない) であるか、または例外によって終了する場合は、returnedObject は null になります。 afterCall フラグメントでのみ有効です。 |
exceptionObject | Throwable | スローされる例外オブジェクトへの参照。 このタイプは、catch および exit フラグメントに対してのみ使用可能です。 メソッドが正常に終了した場合は、exceptionObject は null になります。 |
isFinally | boolean | フラグメントが finally 文節から呼び出されたのか (true)、あるいは catch 文節から呼び出されたのか (false) を示すフラグ。 catch フラグメントでのみ有効です。 |
staticField | (各種) | 静的フィールドによって参照されるオブジェクト。 このタイプは、staticField オブジェクトで宣言されたものと同じタイプです。 これは、プローブが staticField オブジェクトも持っている場合にのみ有効です。 呼び出し側プローブでは無効です。 |
classSourceFile | String | クラス・ファイルのデバッグ属性から使用可能な、ソース・ファイル名情報です。 ソース情報がない場合は、classSourceFile は null になります。 Java の場合、この値は一般的に、パス情報のないファイル名のみになります。 呼び出し側プローブでは無効です。 |
methodNames | String | メソッド名とシグニチャーの、エンコードされたリスト。 このリスト内のメソッドの順序は、methodLineTables 内のメソッドの順序と同じで、methodNumber データ項目によって反映される順序付けと同じです。 このリストには、Probekit によってクラスに挿入されたメソッドの名前は含まれません。 methodNames ストリングは、1 つ以上のメソッド名とシグニチャーがプラス記号 ("+") で区切られたもので構成されています。 メソッド・シグニチャーは Java の内部フォーマットを使用します。 たとえば、2 つのメソッドを持つクラスで、String を取り int を戻すメソッド run のデフォルト・コンストラクターの場合、この methodNames ストリングは <init>()V+run(Ljava/lang/String;)I になります。 呼び出し側プローブでは無効です。 |
methodLineTables | String | クラス内のコードの各実行可能単位に対応する行番号リストの、エンコードされたもの。 このリストには、Probekit によってクラスに挿入された実行可能単位は含まれません。 エンコード方式の説明については、『methodLineTables ストリング・フォーマット』を参照してください。 呼び出し側プローブでは無効です。 |
methodNumber | Integer | プローブ・フラグメントが挿入されたメソッドの、methodNames テーブル内の索引番号。 呼び出し側プローブまたは staticInitializer フラグメントでは無効です。 |
executableUnitNumber | Integer | プローブ・フラグメントが挿入された実行可能単位の番号。 このデータ型は、executableUnit および catch プローブ・フラグメントでのみ有効です。 メソッドにソース行情報がない場合、番号 0 の実行可能単位が 1 つのものとして表示します。 |
<data type="className" name="__class" />
上位オブジェクト
フラグメント・プローブ・オブジェクト
親トピック: Probekit 参照