Tag: bytecode manipulation

ASM中的Java方法参数值

我试图获取Java程序的方法参数的值。 我正在使用ASM来检测字节码并获取这些值。 但是,我遇到了一些麻烦。 这是用于检测代码的visitCode()方法。 它正在做的是: 创建一个空数组以存储收集的参数。 对于每个参数,将其值加载到数组中。 将此数组发送到我的代理的OnMethodEntry方法(将使用值)。 。 @Override public void visitCode() { int paramLength = paramTypes.length; // Create array with length equal to number of parameters mv.visitIntInsn(Opcodes.BIPUSH, paramLength); mv.visitTypeInsn(Opcodes.ANEWARRAY, “java/lang/Object”); mv.visitVarInsn(Opcodes.ASTORE, paramLength); // Fill the created array with method parameters int i = 0; for (Type tp : paramTypes) { mv.visitVarInsn(Opcodes.ALOAD, paramLength); mv.visitIntInsn(Opcodes.BIPUSH, […]