ASM通过代码查找偏移量

我想在我使用的测试用例中找到不同方法的偏移量。 我可以找到方法开始和结束的位置,我查找操作码RETURN和ARETURN(我在方法visitInsn()中扩展一个methodVisitor的类中这样做),但是我无法找到那些在那里发生的偏移量字节码。 有任何想法吗?

为了以防万一:我正在使用ASM的核心API,我知道树API可以帮助我找到我需要的东西,但树API使一切都变得缓慢并使用内存,我买不起任何这些,所以我使用核心API

我找到了一种方法来获得每条指令的偏移,这不是一种常见的方式,但它对我有用。 ASM没有给你每条指令的偏移量,因为通常你不需要它,但是你仍然可以得到它,我不得不在ASM中修改类以使我的想法有效。

我修改了Label类和ClassReader类,在第二个中,有一个部分只在特殊场合创建并添加标签到标签数组,所以我只是告诉它为每个指令添加一个标签,然后我只是调用getOffset在一个methodVisitor里面的visitInsn中,标签将被解析并具有偏移量。