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

フラグメントのデータ項目は、そのフラグメントのソース・コードが参照できるデータ項目の名前およびタイプです。

データ項目の仕様はオプションです。フラグメントには、複数のデータ項目を組み込むことができます。ただし、項目のそれぞれのタイプが表示されるのは 1 度のみです。

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

メソッド・プローブの場合、パッケージ名を含む内部フォーマットのプローブ済みメソッドのクラス名。Callsite プローブの場合、呼び出し先メソッドのクラス名。

例: org/eclipse/tptp/SomeClass

methodName String

メソッド・プローブの場合、内部フォーマットのプローブ済みメソッドのメソッド名。Callsite プローブの場合、呼び出し先メソッドのメソッド名。

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

methodSig String

メソッドの引数および戻りの型シグニチャー (内部フォーマット)。 静的イニシャライザーの場合は無効です。

例: (Ljava/lang/String;)I

thisObject Object

プローブ済みメソッドに渡された this オブジェクト (インスタンス・メソッド用)。 静的イニシャライザーの場合は無効です。

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

args Object[]

プローブ済みメソッドへの引数を表す、Object 参照の配列です。この配列の中に、メソッドへの各引数ごとに 1 つの要素が含まれます (this 引数はカウントしません)。 プリミティブ型の引数は、適切な参照タイプの一時オブジェクトに格納されます。例えば、int に対応する Integer に格納されます。メソッドに引数がない場合は、Object[] 配列のサイズはゼロです。

非静的インナー・クラスのコンストラクターには「インナー」レベルごとに 1 つの隠し引数があるため、ソース・コードにあるより多くの要素が、引数配列に含まれていることに注意してください。 静的イニシャライザーの場合は無効です。

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 の内部フォーマットを使用します。例えば、デフォルト・コンストラクターと、String を受け入れて int を戻すメソッド run の 2 つのメソッドを持つクラスでは、methodNames ストリングは <init>()V+run(Ljava/lang/String;)I になります。

呼び出し側プローブでは無効です。

methodLineTables String クラス内のコードの各実行可能ユニットに対応する行番号リストの、エンコードされたもの。 このリストには、Probekit によってクラスに挿入された実行可能ユニットは含まれません。 エンコード方式の説明については、『methodLineTables データ・ストリング・フォーマット』を参照してください。 呼び出し側プローブでは無効です。
methodNumber Integer プローブ・フラグメントが挿入されたメソッドの、methodNames テーブル内の索引番号。 Callsite プローブまたは staticInitializer フラグメントでは無効です。
executableUnitNumber Integer プローブ・フラグメントが挿入された実行可能ユニットの番号。 このデータ型は、executableUnit および catch プローブ・フラグメントでのみ有効です。メソッドにソース行情報がない場合、番号 0 の実行可能ユニットを 1 つ持つものとして表されます。
例:

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

フラグメントのデータ項目の表示方法を示す Probekit エディター

関連参照
プローブ・フラグメントの Java ソース・コード
プローブ・フラグメント型