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 对象
- 参数
- 返回值
如果要让探针仅应用于某些类和方法,请指定目标或设置过滤器。要了解更多信息,请参阅探针目标和过滤器。