美文网首页
如果在方法中准确的访问局部变量的index

如果在方法中准确的访问局部变量的index

作者: 孔祥子看天下 | 来源:发表于2017-07-24 17:19 被阅读10次

    本篇不是正文,只是简单记录一下感想,比较短。

    通常使用ASM 在方法中插入方法调用的时候,会拦截visitMethod方法,然后覆盖visitMethodInsn方法,在这个方法中,假设要实现一个插入的操作。

    这个操作呢,恰好用到了所插入方法的前一个操作的结果或者参数!怎么办!

    我们知道,局部变量的需要一般是 P0、arg1、arg2.。。。。
    这里P0 代表当前class对象,它的局部变量编号固定为0
    arg1代表方法方法中第一个参数,它的局部变量编号为1
    arg2.。。。以此类推

    但是呢,我们的方法内部有很多代码,我们如何做到精确的访问我们想访问的本地变量呢?

    这个时候,nextLocal 就起到了作用,它代表当前所处位置的下一个寄存器位置,对应的还有一个叫做 firstLoacal变量。。。
    然后loadLocal(index)

    找到了位置,怎么用不用我说了吧!

    欢迎留言!

    相关文章

      网友评论

          本文标题:如果在方法中准确的访问局部变量的index

          本文链接:https://www.haomeiwen.com/subject/bowbkxtx.html