Fragment 探针对象是探针逻辑的说明。它包含将执行的 Java 源代码。
至少需要具有一个 Fragment 对象。它包含 Code 对象以及该 Code 对象中的源代码引用的所有数据项。一个探针可以包含多个 Fragment 对象,但是任何两个 Fragment 对象都不能具有相同的类型。
属性 | 描述 |
---|---|
类型 | 必需。对于方法探针,它必须是 entry、exit、catch、staticInitializer 或 executableUnit。对于调用位置探针,它必须是 beforeCall 或 afterCall。 不能将方法段和调用位置段混用在单个探针中。 |
段类型 | 探针类型 | 描述 |
---|---|---|
entry | 方法 | entry 段在方法进入时执行。不会对由 Probekit 插入到类中的方法执行 entry 段。 |
exit | 方法 | exit 段在方法退出时执行,无论是正常退出、方法抛出异常还是抛出的异常传播到方法外部时。不会对由 Probekit 插入到类中的方法执行 exit 段。 |
catch | 方法 | catch 段在方法中的 catch 子句的开头执行,或者在由于发生异常而执行的 finally 子句的开头执行。 |
staticInitializer | 方法 | staticInitializer 段在每个被探测类的类初始化方法内执行。如果该类没有静态初始化方法,则将创建一个静态初始化方法。有关更多信息,请参阅 staticInitializer 探针段。 |
executableUnit | 方法 | executableUnit 段在符合下列条件的方法中的代码的每个可执行单元之前执行:符合探针的目标和过滤器规范并且为其提供了源代码。如果该方法没有源代码行信息,它将以具有单个可执行单元(编号为零)的形式出现。有关更多信息,请参阅 executableUnit 探针段。 |
beforeCall | 调用位置 | 在调用方法中刚好在调用目标方法之前执行 beforeCall 段。这种段类型对于方法探针无效。 |
afterCall | 调用位置 | 在调用方法中在目标方法退出(无论是正常退出还是当目标方法抛出异常时退出)之后立即执行 afterCall 段。这种段类型对于方法探针无效。 |
<fragment type="entry"> <data . . . /> <code> . . . </code> </fragment>
上级主题: Probekit 参考
相关概念
方法探针与调用位置探针