データ・プローブ・オブジェクト

データ・プローブ・オブジェクトには、フラグメントの コード・オブジェクト内のソース・コードで参照されるデータ項目の名前とタイプを指定します。

データ・オブジェクトはオプションです。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 (値を戻さない) の場合、または例外により終了する場合、 returnedObjectnull になります。afterCall フラグメントでのみ有効です。
exceptionObject Throwable スローされる例外オブジェクトの参照。このタイプは、catch フラグメントおよび exit フラグメントでのみ使用可能です。 メソッドが正常に終了する場合、exceptionObjectnull になります。
isFinally Boolean フラグメントが finally 文節から呼び出されたか (true)、catch 文節から呼び出されたか (false) を示すフラグ。catch フラグメントでのみ有効です。
staticField (場合により異なる) 静的フィールドによって参照されるオブジェクト。このタイプは、staticField オブジェクトで宣言されたものと同じタイプです。 これは、プローブに staticField オブジェクトが含まれている場合にのみ有効です。呼び出しサイト・プローブでは無効です。
classSourceFile String クラス・ファイルのデバッグ属性から使用可能なソース・ファイル名情報。ソース情報がない場合は、classSourceFilenull になります。 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" />

親トピック: Probekit エレメント参照

関連資料
staticInitializer プローブ・フラグメント
StaticField プローブ・オブジェクト
methodLineTables ストリング・フォーマット
executableUnit プローブ・フラグメント

使用条件 | フィードバック
(C) Copyright IBM Corporation 2004. All Rights Reserved. (C) Copyright IBM Japan 2004