Probekit 是可编制脚本的字节码检测(BCI)框架,可以使用该框架编写可插入程序的 Java 代码片段,以提供有关程序在运行时的信息。
一个 Probekit 文件可以包含一个或多个探测,每个探测可以包含一个或多个探测片段。您可以指定希望在给定的程序上使用的探测,以及这些探测片段的执行时间。
探测片段被合成一组 Java 方法,然后编译这些方法。编译探测时,将探测代码片段与标准的样板文件组合,并且生成新类的 Java 源代码。从探测片段生成的函数显示为已生成的探测类的静态方法。
当应用探测时,BCI 引擎引用探测列表以及它们的目标模式,并将对探测片段方法的调用插入目标程序中。将调用语句插入目标方法的过程称为“检测”。探测片段请求的数据项(例如方法名称和实参)按实参传送。此系统的一项好处是可以使用较小的开销将探测插入大量目标方法。
如果类中的任何方法满足过滤规则并且符合检测条件,则称该类为“已探测的类”。