Skip to content

Write an instrumentation agent to modify JCL code #3

@r30shah

Description

@r30shah

Write an instrumentation agent in java that can modify JCL code in [1] and redirect it to [2]. You use either ASM[3] or javassist[4] to achieve that.
Aim of this work item is to get familiar with such Instrumentation API and prepare a foundation for our tool that will be attached to JVM and when sees the failure in the test, starts limiting down to the failing method and optimization.

For this issue, currently we can use the same demo code that we tried out in the code-sprint and produced a failure that throws Null Pointer Exception and debug the issue without need to recompile the JCL code.

[1]. https://github.com/ibmruntimes/openj9-openjdk-jdk11/blob/ddc29ca76069082bf6b57e52628e3c2ae05d7694/src/java.base/share/classes/java/lang/reflect/Method.java#L566
[2].

public static Object invoke(MethodAccessor ma, Object obj, Object[] args) throws InvocationTargetException {

[3]. https://asm.ow2.io
[4]. https://www.javassist.org/

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions