【问题标题】:JVM bytecode jump instructionsJVM字节码跳转指令
【发布时间】:2014-02-19 23:45:45
【问题描述】:

JVM 如何确保跳​​转指令(jsrgoto)跳转到指令而不是数据或指令参数?

【问题讨论】:

    标签: bytecode goto


    【解决方案1】:

    这是字节码验证器的一部分。

    在 Java 字节码中,指令都具有已知长度,并且必须从偏移量 0 开始一个接一个地出现,因此您始终可以静态地判断每条指令的开头在哪里。因此,只需确保跳转目标是有效指令的开头即可。与 Dalvik 或 x86 不同,您不能跳到指令的中间。

    You can find the source code for the verifier here.实际上有两个验证者。这是经典的验证器,用于没有 StackMapTable 的代码(包括所有包含 jsr 的代码)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多