Probekit overview

Probekit is a scriptable, byte-code instrumentation (BCI) framework that you can use to write Java code fragments that can be inserted into a program to provide information about the program as it runs.

A Probekit file can contain one probe or multiple probes, each probe can contain one or more probe fragments. You can specify which probes you want to use on a given program, and when you want the probe fragments to be executed.

Probe fragments are assembled into a set of Java methods which are then compiled. When a probe is compiled, the probe code fragments are combined with standard boilerplate, and Java source code for a new class is generated. The functions generated from the probe fragments appear as static methods of the generated probe class.

When probes are applied, the BCI engine refers to the list of probes and their target patterns and inserts calls to probe fragment methods into the target programs. The process of inserting call statements into target methods is referred to as "instrumentation". The data items requested by a probe fragment (for example, the method name and arguments) are passed as arguments. One benefit of this system is that a probe can be inserted into a large number of target methods with small overhead.

If any of the methods in a class satisfy the filter rules and are eligible for instrumentation, the class is said to be a "probed class".

Probe fragments can be executed (for the complete list of fragment types, see The Fragment probe object.):
Probe fragments can access the following types of information about the methods they are inserted into:

Parent topic: Collecting runtime data with user-defined probes

Related concepts
Method probes versus callsite probes

Related reference
Probekit Examples

Terms of use | Feedback
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.