プローブ・フラグメント型

定義するそれぞれのフラグメントには、タイプ指定が必要です。タイプは、フラグメントをターゲット・メソッドでいつ実行するかを示します。プローブには、複数のフラグメントを組み込むことができます。ただし、特定のタイプの複数のフラグメントを組み込むことはできません。

以下のテーブルは、フラグメント型のリストとその説明、および各フラグメント型がメソッドまたは Callsite プローブ用に使用できるかどうかを示しています。 (メソッド・プローブと Callsite プローブの違いについては、 『メソッド・プローブと Callsite プローブ』を参照してください。)
フラグメント型 メソッドまたは呼び出しサイト 説明
entry メソッド entry フラグメントは、メソッド入り口で実行します。entry フラグメントは、Probekit によってクラスに挿入されたメソッドでは実行されません。
exit メソッド exit フラグメントは、メソッドの終了時、すなわち、 正常終了したとき、メソッドが例外をスローしたとき、またはスローされた例外がメソッドの外に波及したときに実行されます。exit フラグメントは、Probekit によってクラスに挿入されたメソッドでは実行されません。
catch メソッド catch フラグメントは、メソッド内の catch 文節の最初、または例外の結果として実行される finally 文節の最初で実行されます。
staticInitializer メソッド staticInitializer フラグメントは、各プローブ済みクラスのクラス・イニシャライザーの内部で実行されます。クラスにまだ静的イニシャライザーがない場合は、新たに作成されます。詳しくは、『staticInitializer プローブ・フラグメント型』を参照してください。
executableUnit メソッド executableUnit フラグメントは、 プローブのターゲットおよびフィルター指定と一致してソース・コードが使用可能なメソッド内の、 各実行可能ユニットコードより先に実行されます。メソッドにソース行情報がない場合、番号 0 の実行可能ユニットを 1 つ持つものとして表されます。詳しくは、『executableUnit プローブ・フラグメント型』を参照してください。
beforeCall Callsite beforeCall フラグメントは、ターゲット・メソッドが呼び出される直前に、呼び出し元メソッドで実行されます。メソッド・プローブでは無効です。
afterCall Callsite afterCall フラグメントは、ターゲット・メソッドが終了した直後、すなわち、正常終了時、またはターゲット・メソッドが例外をスローした直後に、呼び出し元メソッドで実行されます。メソッド・プローブでは無効です。
注:

プローブには、メソッド内の同じロケーションに適用する複数のフラグメントを持たせることができます。例えば、entry フラグメントと最初の executableUnit のロケーションです。また、例外処理の catch 文節は常に新しい実行可能ユニットの始まりを表すため、catch フラグメントとその関連の executableUnit のロケーションも、もう 1 つの例として挙げられます。これらの場合、executableUnit フラグメントのコードは、entry または catch フラグメントのコードの後で実行されます。これにより、entry フラグメントがある場合、それは常に、その他の種類のフラグメントの前に実行されます。

1 つのプローブ内でメソッド・フラグメントと呼び出しサイト・フラグメントの両方を使用することはできません。 ただし、同一の Probekit ソース・ファイル (プローブ・ファイル) にメソッド・プローブおよび Callsite プローブを入れることはできます。

例:

フラグメント型を指定するには、 「プローブ」ページのツリー・ペインでフラグメント・エントリーを選択し、 編集ペインの「フラグメント型 (Fragment Type)」リストから選択します。

フラグメント型の選択を強調表示する Probekit エディター

以下のプローブ・フラグメント型に関する追加情報があります。
関連参照
プローブ・フラグメントの Java ソース・コード
プローブ・フラグメント・データ項目