executableUnit 探针段类型允许您为符合探针的目标规范、并且提供了源代码信息的方法执行细粒度的数据收集。
在目标方法中的每个可执行单元前面插入对这种类型的段的调用。对于符合探针的目标规范但是没有源代码信息的方法,将仅在这些方法的开头插入段一次。
executableUnit 段可以使用除了 returnedObject、exceptionObject、isFinally 和 thisObject 之外的所有数据项类型。最重要的是,它可以使用 executableUnitNumber 数据项,该数据项包含要运行的可执行单元数。
方法和行表中的可执行单元数不包括由 Probekit 插入到方法中的可执行单元。
可执行单元在每个基本块的开始处以及每个源代码行号与先前的字节码不同的字节码处开始。基本块是一定范围的字节码指令,既不能对它进行分支,也不能将它作为分支添加。当基本块中的第一个指令运行时,就会执行所有这些指令,因此将这些指令看作是单个组。
基本块以诸如 branch、call、throw 和 return 等指令结束。
不会将某些指令(例如,divide)认为是可执行单元的结束,尽管它们可能会抛出异常。这是可执行单元与基本块在技术上存在的一点区别。
如果 Java™ 方法没有任何相关联的源代码信息,则认为整个方法只有一个可执行单元。