代码之家  ›  专栏  ›  技术社区  ›  pdeva

可以使用JNI复制当前java堆栈

  •  2
  • pdeva  · 技术社区  · 15 年前

    我试图在使用字节码插装调用方法之前记录传递给方法的参数。

    理想情况下,我想做的只是复制整个堆栈中为方法调用推送的参数的数量。然而,jvm字节码的dup()指令只允许复制堆栈的最高值。 是否可以使用JNI一次性复制整个堆栈?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Tom Hawtin - tackline    15 年前

    不。编译方法时,堆栈有效地消失了。JVM无法编译本机代码。因此,即使您尝试直接操作堆栈,它也会动态地更改格式(并使用寄存器)。