探针段类型

定义的每个段都需要指定 type。type 表明段何时将在目标方法中运行。一个探针可以包含多个段,但是不能包含任何给定类型的多个段。

下表列示和描述了段类型,并且指出了每种类型是可用于方法探针还是调用位置探针。(有关方法探针与调用位置探针之间的区别,请参阅方法探针与调用位置探针。)
段类型 方法或调用位置 描述
entry 方法 entry 段在方法进入时运行。对于由 Probekit 插入到类中的方法,将不会运行 entry 段。
exit 方法 exit 段在方法退出时运行(无论是正常退出、方法抛出异常时退出还是抛出的异常传播到方法外部时退出)。对于由 Probekit 插入到类中的方法,将不会运行 exit 段。
catch 方法 catch 段在方法中的 catch 子句的开头运行,或者在由于发生异常而运行的 finally 子句的开头运行。
staticInitializer 方法 staticInitializer 段在每个探测类的类初始化方法中运行。如果类还没有静态初始化方法,则将创建一个。有关更多信息,请参阅 staticInitializer 探针段类型
executableUnit 方法 executableUnit 段在符合下列条件的方法中的代码的每个可执行单元之前运行:符合探针的目标和过滤器规范并且为其提供了源代码。如果该方法没有源代码行信息,则它将显示为具有单个可执行单元,编号为零。有关更多信息,请参阅 executableUnit 探针段类型
beforeCall 调用位置 刚好在调用目标方法之前在调用方法中运行 beforeCall 段。对于方法探针无效。
afterCall 调用位置 在目标方法退出(无论是正常退出还是当目标方法抛出异常时退出)之后立即在调用方法中运行 afterCall 段。对于方法探针无效。
注:

一个探针可以具有应用于方法中的同一位置的多个段;例如,entry 段和第一个 executableUnit 位置。另一个示例是 catch 段及其相关联的 executableUnit 位置,因为用于异常处理的 catch 子句总是表示新的可执行单元的开始。在这些情况下,executableUnit 段的代码将在 entrycatch 段的代码之后运行。一种结果是,如果存在 entry 段,则它将总是在其它类型的段之前运行。

不能将方法段和调用位置段混用在单个探针中,但是在同一个 Probekit 源文件(probe 文件)中可以同时具有方法探针和调用位置探针。

示例:

要指定段类型,在“探针”页面的树窗格中选择条目,然后从编辑窗格中的“段类型”列表中进行选择。

Probekit 编辑器突出显示选择的段类型

提供了有关下列探针段类型的更多信息:
反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.