【发布时间】:2012-07-03 20:50:27
【问题描述】:
我想在我使用的测试用例中找到不同方法的偏移量。我可以找到方法的开始和结束位置,我查找操作码 RETURN 和 ARETURN(我在一个扩展方法 visitInsn() 中的 methodVisitor 的类中这样做),但我无法找到这些发生在字节码。有什么想法吗?
以防万一: 我正在使用 ASM 的核心 API,我知道树 API 可以帮助我找到我需要的东西,但是树 API 使一切变得缓慢并使用内存,而我负担不起任何这些,所以我使用核心API
【问题讨论】:
-
为什么需要知道偏移量?您不直接使用这些,可能应该尝试。
-
我需要它们,因为我运行其他代码来分析代码的特定部分使用偏移量,但我必须搜索它们我自己运行的 javap 和东西,所以我只是不想这样做不再...
-
我建议你有一个字节码分析工具,比如 ASM 或 BCEL 或 Javaassist。这些旨在使编写这样的工具变得更容易,并且您不需要知道偏移量。
标签: java assembly bytecode offset