Probekit 是 Eclipse 平台上的一个框架,可以用来编写和使用探针。探针是可以插入到程序中的 Java™ 代码段,用来提供该程序运行时的相关信息。
要了解探针,从此处所描述的样本探针开始。它是一个基本探针,它将打印一条消息,该消息标识当程序运行时所调用的每个方法。
探针是由您在 Probekit 编辑器中生成的条目定义的。此样本包含单个段;
段负责确定探针将执行的操作。段定义包括:
- 段类型的指定。此段是一个 entry 段,这意味着它将在进入方法时运行。
- 段可以访问的数据项。在此样本中,数据项允许段访问类名和方法名。
- 用来定义探针逻辑的 Java 代码段。此段通过调用 System.out.println 来显示运行的方法的类名和方法名。
在 Probekit 编辑器中,探针的外观如下所示:

在使用 Probekit 编辑器创建探针之后,就可以将该探针应用于项目的类文件和 JAR 文件。然后,当您运行该项目时,代码段就会与程序一起运行。
以下内容概述了如何创建和使用探针,还包括 Probekit 为您提供了哪些帮助功能的信息:
- 使用 Probekit 编辑器在 Probekit 源文件中创建探针。Probekit 源文件的扩展名必须是 .probe。它们可以包含一个或多个探针,每个探针可以包含一个或多个探针段。
- Probekit 将探针段组装成一组 Java 方法,然后再编译它们。当 Probekit 编译探针时,它会将探针段与标准 Java 样板文件组合起来,并且会为新的探针类生成 Java 源代码。从探针段生成的函数作为新的探针类的静态方法出现。
- 当应用探针时,指定您想要调查的目标类文件和 JAR 文件。Probekit 字节码检测(BCI)引擎引用可用探针及其目标模式的列表,并将对探针段方法的调用插入目标程序中。将调用语句插入目标方法的过程就称为检测。包含已检测方法的类就称为探测类。探针段请求的数据项(例如,方法名和类名)作为自变量来传递。
- 在应用探针之后,象往常一样运行程序。当程序运行时,探针段就会运行。
探针段
类型将确定探针段何时运行。可以指定将导致探针段在下列情况下运行的类型:
- 在进入方法时。
- 在退出方法时(正常返回,或者是因异常而导致返回)。
- 在异常处理程序时间;即,在 catch 子句的顶部,或者在因异常而调用的 finally 子句的顶部。
- 在类静态初始化程序中的原始代码前面。
- 在代码的每个可执行单元前面(当提供了源代码信息时)。
- 当调用特定方法时。(在此情况下,检测是在调用位置而不是在被调用的方法内完成的。)
探针段可以访问提供了有关插入这些探针段的方法的各种信息的数据项。例如:
- 包名、类名和方法名
- 方法特征符
- this 对象
- 自变量
- 返回值
如果您只想将探针应用于特定的类和方法,则应指定目标或设置过滤器。有关更多信息,请参阅探针目标和过滤器。