Fragment 探針物件是探針的邏輯規格。其中包含將會被執行的 Java 程式碼。
需要至少一個 Fragment 物件。它包含 Code 物件,以及 Code 物件中的程式碼所參照的所有資料項目。探針可以包含多個 Fragment 物件,但是兩個 Fragment 物件不能有相同的 type。
內容 | 說明 |
---|---|
type | 必要。如果是方法探針,它必須為 entry、exit、catch、staticInitializer 或 executableUnit。如果是 Callsite 探針,它必須為 beforeCall 或 afterCall。您不能在單一探針中混合使用方法片段和 Callsite 片段。 |
片段類型 | 探針類型 | 說明 |
---|---|---|
entry | 方法 | entry 片段是在方法進入時執行。對於 Probekit 所插入類別中的方法,將不會執行 entry 片段。 |
exit | 方法 | exit 片段是在方法結束時執行;可能是正常結束(當方法擲出異常狀況),或是擲出的異常狀況傳送到方法之外。對於 Probekit 所插入類別中的方法,將不會執行 exit 片段。 |
catch | 方法 | catch 片段是在方法中的 catch 子句開頭執行,或是在執行為異常狀況結果的 finally 子句開頭執行。 |
staticInitializer | 方法 | staticInitializer 片段在每個探測類別的類別起始設定程式內執行。如果類別還沒有靜態起始設定程式,將會建立起始設定程式。如果需要詳細資訊,請參閱 staticInitializer 探針片段。 |
executableUnit | 方法 | executableUnit 片段是在符合探針的目標和過濾條件規格並且有程式碼的方法中的每一個可執行程式碼單元之前執行。如果方法沒有指令行資訊,將會出現為單一可執行單元,編號為零。如果需要詳細資訊,請參閱executableUnit 探針片段。 |
beforeCall | Callsite | beforeCall 片段是先在呼叫方法中執行,緊接著才呼叫目標方法。對方法探針無效。 |
afterCall | Callsite | afterCall 片段是在目標方法結束之後,立即在呼叫端方法中執行;有可能是正常結束,或是當目標方法擲出異常狀況時。對方法探針無效。 |
<fragment type="entry"> <data . . . /> <code> . . . </code> </fragment>