プローブ・フラグメント・データ項目

フラグメントのデータ項目は、そのフラグメントのソース・コードから参照できるデータ項目の名前と型です。

データ項目の指定はオプションです。 フラグメントには複数のデータ項目を含めることができますが、各項目の型が表示されるのは 1 度だけです。

データ項目には、以下のプロパティーが含まれます。
プロパティー 説明
データ型 必須です。使用可能な型については、下記の表でリストします。
名前 必須です。有効な Java™ 変数名を指定しなければなりません。 プローブ・フラグメント・ソース・コードはこの名前を使用して、指示されたデータを参照します。
以下の表で、Probekit エディターで使用可能なデータ型をリストし、説明します。
データ型 説明
className String

メソッド・プローブの場合は、プローブされたメソッドのクラス名 (パッケージ名を含む) を 内部フォーマットで指定します。呼び出しサイト・プローブの場合は、呼び出されたメソッドのクラス名です。

例: org/eclipse/hyades/SomeClass

methodName String

メソッド・プローブの場合は、プローブされたメソッドのメソッド名を 内部フォーマットで指定します。呼び出しサイト・プローブの場合は、呼び出されたメソッドのメソッド名です。

コンストラクターのメソッド名は <init> で、 静的クラスイニシャライザーのメソッド名は <clinit> です。

methodSig String

メソッド引数および戻りの型シグニチャーを内部フォーマットで指定します。 staticInitializer フラグメントでは無効です。

例: (Ljava/lang/String;)I

thisObject Object

プローブされたメソッドに渡された this オブジェクト (インスタンス・メソッドの場合) です。 staticInitializer フラグメントでは無効です。

静的メソッドの場合、コンストラクターに適用される entry フラグメントの場合、 および、コンストラクターが例外をスローしたときにコンストラクターに適用される exit フラグメントの場合は 、thisObjectnull です。

args Object[]

プローブされたメソッドに渡す引数を表す、Object 参照の配列です。 この配列には、メソッドに渡す各引数ごとに 1 つのエレメントがあります (this 引数は数えません)。 プリミティブ型の引数は、該当する参照型の一時オブジェクトになります。 例えば、int の場合は Integer です。 メソッドに引数が無い場合、Object[] 配列のサイズはゼロです。

非静的内部クラスのコンストラクターには「内部」レベルごとに 1 つの隠し引数があるため、 引数配列はソース・コードに表示されているよりも多くのエレメントを含むことに注意してください。 staticInitializer フラグメントでは無効です。

returnedObject Object 戻されたオブジェクトへの参照です。 この型は、exit および afterCall フラグメントでのみ使用可能です。 プローブされるメソッドの戻りの型がプリミティブ型の場合、戻り値は、該当する参照型の一時オブジェクトにバインドされます。 メソッドが void (値を戻さない) である場合、あるいは例外によって終了する場合 、returnedObjectnull です。
exceptionObject Throwable スローされる例外オブジェクトへの参照です。 この型は、catch および exit フラグメントでのみ使用可能です。 メソッドが正常に終了すると、exceptionObjectnull になります。
isFinally boolean フラグメントが finally 文節から呼び出されたか (true)、 あるいは catch 文節から呼び出されたか (false) を示すフラグです。 catch フラグメントでのみ有効です。
staticField (さまざまな型) 静的フィールドによって参照されるオブジェクトです。 この型は、staticField オブジェクトで宣言された型と同じです。 これは、プローブが staticField を宣言する場合にのみ有効です。 (『staticField および staticInitializer プローブの例』を参照してください。) 呼び出しサイト・プローブでは無効です。
classSourceFile String クラス・ファイルのデバッグ属性から使用可能なソース・ファイル名情報です。 ソース情報が無い場合、classSourceFilenull です。 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 プローブ・フラグメントでのみ有効です。 メソッドにソース行情報が無い場合、そのメソッドは、ゼロ番の単一の実行可能単位を持つものとして現れます。
例:

プローブ・フラグメント・データ項目を入力するには、 ツリー・ペインの「フラグメント」を選択し、「追加」および 「編集」を使用して編集ペインでデータ項目を入力および定義します。

フラグメントのデータ項目がどのように表示されるかを示す Probekit エディター

関連資料
staticInitializer プローブ・フラグメント型
プローブ静的フィールド
methodLineTables データ・ストリング・フォーマット
executableUnit プローブ・フラグメント型
フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.