我试图在使用字节码插装调用方法之前记录传递给方法的参数。
理想情况下,我想做的只是复制整个堆栈中为方法调用推送的参数的数量。然而,jvm字节码的dup()指令只允许复制堆栈的最高值。 是否可以使用JNI一次性复制整个堆栈?
不。编译方法时,堆栈有效地消失了。JVM无法编译本机代码。因此,即使您尝试直接操作堆栈,它也会动态地更改格式(并使用寄存器)。