Fragment 探針物件是探針邏輯的規格。 它含有即將執行的 Java 程式碼。
至少需要一個 Fragment 物件。 它含有 Code 物件,以及 Code 物件中程式碼所參照的所有資料項目。 探針可以包含一個以上的 Fragment 物件,但是兩個 Fragment 物件不能同時具有同樣的類型。
內容 | 說明 |
---|---|
type | 必要的項目。 如果是 Method 探針,則必須是 entry、exit、catch、 staticInitializer 或 executableUnit。 如果是 Callsite 探針,則必須是 beforeCall 或 afterCall。 一個探針當中,不可以混雜 Method 片段和 Callsite 片段。 |
片段類型 | 探針類型 | 說明 |
---|---|---|
entry | 方法 | entry 片段是針對方法項目而執行。 entry 片段不會針對被 Probekit 插在類別當中的方法而執行。 |
exit | 方法 | exit 片段是針對方法結束而執行; 不管是正常結束、方法擲出異常狀況、還是當擲出異常狀況延伸到方法之外而結束都一樣。 exit 片段不會針對由 Probekit 插進類別當中的方法而執行。 |
catch | 方法 | catch 片段是在方法的 catch 子句開頭時執行, 或是在因為發生異常狀況而執行的 finally 子句開頭時執行。 |
staticInitializer | 方法 | staticInitializer 片段是在每一個被探測之類別的類別初值設定內執行。 如果該類別還沒有靜態初值設定,則會建立一個。 其他詳細資訊,請參閱 staticInitializer 探針片段。 |
executableUnit | 方法 | executableUnit 片段會在方法中符合探針目標和過濾規格、 而且程式碼可以運用的每一個程式碼執行單元之前執行。 如果這個方法沒有程式碼行資訊,則會出現一個編號為零的執行單元。 其他詳細資訊,請參閱 executableUnit 探針片段。 |
beforeCall | Callsite | 就在目標方法被呼叫之前,會在呼叫方法中立即執行 beforeCall 片段。 它不適用於 Method 探針。 |
afterCall | Callsite | afterCall 片段會在目標方法結束之後,在呼叫方法中立即執行; 不管它是正常結束,或是在目標方法擲出異常狀況時結束都一樣。 它不適用於 Method 探針。 |
<fragment type="entry"> <data . . . /> <code> . . . </code> </fragment>
母主題: Probekit 參照