The present invention is directed to a system and method for modifying a
class file for the purpose of instrumenting without requiring separate
files to correlate the instrumentation. A class file is instrumented with
hooks. Each hook is injected in a method at a critical point in the code
for tracking path flow, such as where the method will be entered or
exited. Each hook includes an identifier to identify the method in which
it is injected. Rather than using the method's name, hooks use unique
major and minor codes to identify the method. Static initializers are
declared for the class to output other hooks identifying the methods being
instrumented. When a class is loaded, the static initializers are executed
and hooks identifying the method name and the major and minor codes for
each instrumented method are output to, for instance, a trace record.
Then, when a method is entered or exited, the hooks identifying the entry
or exit are also outputted to a trace record. When postprocessing the
trace records, class and instrumentation correlation information is
available for merging from trace records in the trace stream.