データ・プローブ・オブジェクトには、フラグメントの コード・オブジェクト内のソース・コードで参照されるデータ項目の名前とタイプを指定します。
データ・オブジェクトはオプションです。1 つのプローブ・フラグメントに、複数のデータ・オブジェクトを指定することはできますが、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 フラグメントでは無効です。 thisObject は、静的メソッド、コンストラクターに適用される entry フラグメント、コンストラクターが例外をスローするときにコンストラクターに適用される exit フラグメントでは、null になります。 |
args | Object[] | プローブ実行済みメソッドに対する引き数を表す Object 参照の配列。この配列には、メソッドに対する引き数ごと (this 引き数をカウントしない) に 1 つのエレメントがあります。プリミティブ型の引き数は、適切な参照型の一時オブジェクトにバインドされます (例: 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 の内部形式です。 例えば、デフォルト・コンストラクターと String をとり、int を戻すメソッド run の 2 つのメソッドを持つクラスには、この methodNames ストリング <init>()V+run(Ljava/lang/String;)I があります。 呼び出しサイト・プローブでは無効です。 |
methodLineTables | String | クラス内のすべての実行可能コード単位に対応する行番号のエンコード済みリスト。このリストには、Probekit によってクラスに挿入された実行可能単位は含まれません。エンコードの説明については、methodLineTables ストリング・フォーマットを参照してください。呼び出しサイト・プローブでは無効です。 |
methodNumber | Integer | プローブ・フラグメントが挿入されたメソッドの methodNames テーブル内の索引番号。呼び出しサイト・プローブまたは staticInitializer フラグメントでは無効です。 |
executableUnitNumber | Integer | プローブ・フラグメントが挿入された実行可能単位の番号。このデータ・タイプは、executableUnit および catch プローブ・フラグメントでのみ有効です。 メソッドにソース行情報が含まれない場合、メソッドは番号ゼロの 1 つの実行可能単位を持つものとみなされます。 |
<data type="className" name="__class" />
Contained by
フラグメント・プローブ・オブジェクト