我正在使用 ASM 将一些简单的跟踪指令注入到我的 Java 程序中的方法中,方法输入,方法退出,时间戳等......
这一切都很好。
我现在想扩充它并注入指令来捕获方法参数值和方法返回值,使用 ASM 以一种可以普遍应用于任何方法的方式。
非常感谢任何可以为我指明正确方向的代码示例。
Type.getArgumentType(desc) // get arguments types. return Type[]
mv.visitVarInsn(Opcodes.ILOAD, index) // load parameter to stack
public void visitInsn(int opcode) {
if ((opcode >= IRETURN && opcode <= RETURN)) {
//return value is on the top stack
}
mv.visitInsn(opcode);
}