Summary
ClassFileApiBackend (the instrumentation backend for Java 26+ class files using the JDK ClassFile API) currently skips handlers that use @TargetInstance or Kind.CALL with a DEBUG-level log message. These two features are already supported by the ASM-based backend (AsmInstrumentationBackend).
This issue tracks the work needed to bring ClassFileApiBackend to feature parity for:
@TargetInstance — om.getTargetInstanceParameter() != -1: inject the target object reference before the INVOKEDYNAMIC call.
Kind.CALL — Kind.CALL location: inject probe calls around method call sites within the instrumented method, matching ClassFile API's instruction-level code transform.
Context
PR #843 implemented @Return and @Duration support in ClassFileApiBackend. The guard for @TargetInstance and Kind.CALL was intentionally left in place with a skip-log, pending this issue.
This issue must be resolved before ClassFileApiBackend is considered fully feature-equivalent to AsmInstrumentationBackend.
Acceptance criteria
Summary
ClassFileApiBackend(the instrumentation backend for Java 26+ class files using the JDK ClassFile API) currently skips handlers that use@TargetInstanceorKind.CALLwith aDEBUG-level log message. These two features are already supported by the ASM-based backend (AsmInstrumentationBackend).This issue tracks the work needed to bring
ClassFileApiBackendto feature parity for:@TargetInstance—om.getTargetInstanceParameter() != -1: inject the target object reference before theINVOKEDYNAMICcall.Kind.CALL—Kind.CALLlocation: inject probe calls around method call sites within the instrumented method, matchingClassFileAPI's instruction-level code transform.Context
PR #843 implemented
@Returnand@Durationsupport inClassFileApiBackend. The guard for@TargetInstanceandKind.CALLwas intentionally left in place with a skip-log, pending this issue.This issue must be resolved before
ClassFileApiBackendis considered fully feature-equivalent toAsmInstrumentationBackend.Acceptance criteria
@TargetInstancefire correctly for non-static method probesKind.CALLhandlers fire around method call sites@EnabledForJreRange/assumeTruefor JDK 26+ClassFileApiBackendupdated (move features from unsupported list to supported list)