定義する各フラグメントで型指定が必要です。 ターゲットとなるメソッドでフラグメントが実行されるときに、型が示されます。 プローブには複数のフラグメントを含めることができますが、所定の型のフラグメントを複数含めることはできません。
フラグメント型 | メソッドまたは呼び出しサイト | 説明 |
---|---|---|
entry | メソッド | entry フラグメントは、メソッドの入り口で実行されます。 Probekit によってクラスに挿入されたメソッドについては、entry フラグメントは実行されません。 |
exit | メソッド | exit フラグメントは、メソッドの出口で実行されます。 この出口は、メソッドが例外をスローする場合、またはスローされた例外がメソッドから伝搬する場合の通常の出口です。 Probekit によってクラスに挿入されたメソッドについては、exit フラグメントは実行されません。 |
catch | メソッド | catch フラグメントは、メソッド内の catch 文節の最初、 あるいは例外の結果として実行される finally 文節の最初で実行されます。 |
staticInitializer | メソッド | staticInitializer フラグメントは、プローブされた各クラスのクラス・イニシャライザーの内部で 実行されます。 クラスに静的イニシャライザーがまだ無い場合は、作成されます。 詳しくは、『staticInitializer プローブ・フラグメント型』を参照してください。 |
executableUnit | メソッド | executableUnit フラグメントは、プローブのターゲットおよびフィルター指定と一致し、 ソース・コードが使用可能なメソッド内で、コードの各実行可能単位の前で実行されます。 メソッドにソース行情報がない場合、そのメソッドは、ゼロ番の単一の実行可能単位を持つものとして表示されます。 詳しくは、『executableUnit プローブ・フラグメント型』を参照してください。 |
beforeCall | 呼び出しサイト | beforeCall フラグメントは、ターゲット・メソッドが呼び出される直前に、メソッドの呼び出し側で実行されます。 メソッド・プローブでは無効です。 |
afterCall | 呼び出しサイト | afterCall フラグメントは、ターゲット・メソッドが終了した直後に、 メソッドの呼び出し側で実行されます。 ターゲット・メソッドの終了は、通常終了またはターゲット・メソッドが例外をスローしたときのいずれかです。 メソッド・プローブでは無効です。 |
プローブは、メソッド内の同じロケーションに適用される複数のフラグメントを持つことができます。 例えば、entry フラグメントと最初の executableUnit のロケーションなどです。 別の例としては、catch フラグメントとそれに関連した executableUnit のロケーションが挙げられます。 これは、例外処理用の catch 文節が常に新しい実行可能単位の始まりを表すためです。 このような場合、executableUnit フラグメントのコードは、entry または catch フラグメントのコード の後 で実行されます。 その結果、entry フラグメントがある場合、それは常にその他の種類のフラグメントの前に実行されます。
単一プローブ内にメソッド・フラグメントと呼び出しサイト・フラグメントを混在させることはできませんが、 同じ Probekit ソース・ファイル (probe ファイル) 内に メソッド・プローブと呼び出しサイト・プローブを含めることができます。
フラグメント型を指定するには、「プローブ」ページのツリー・ペインで 「フラグメント」エントリーを選択し、編集ペインの 「フラグメント型」リストから選択します。