executableUnit 探針片段可讓您針對符合探針目標和過濾規格,以及含有程式碼資訊的方法,執行精細的資料收集。
對這類型片段的呼叫,是插在目標方法中每一個「執行單元」的前面。 如果方法符合探針目標和過濾規格,但卻沒有程式碼資訊, 則片段會插在方法開頭一次。
除了 returnedObject、exceptionObject、isFinally 和 thisObject 之外, executableUnit 片段可以使用所有的資料項目類型。 最重要的是,它們可以使用 executableUnitNumber 資料項目, 其中含有即將執行的執行單元數目。
方法和行表中的執行單元數目,並不包含由 Probekit 插在方法中的執行單元。
執行單元是從每一個基本區塊開始, 以及從每一個程式碼行號與前一個不同的位元組碼開始。 基本區塊是一個位元組碼指示區,不能被分支出去,也不能被分支進來。 當基本區塊中的第一個指示執行時,所有的指示都會一起執行,因此指示被視為一個群組。
基本區塊是以 branch、call、throw 和 return 指示作為結尾。
有的指示(例如 "divide")雖然可以擲出異常狀況,卻不被視為執行單元的結尾。 以技術方面看來,執行單元與基本區塊並不相同。
如果 Java 方法沒有任何相關的來源資訊,則視整個方法為一個執行單元。