我正在使用 BCEL 生成字节码,我只想在输入类的静态方法中的每一行之前打印出 (println)。我尝试使用 BCEL 进行检测,但会导致不同形式的错误。它说
Exception in thread "main" java.lang.VerifyError: StackMapTable error: bad offset in method C.max(Ljava/lang/String;II)I
有时,如果我在任何指令上放置一些静态方法调用,它就会开始工作,有时它不会。任何帮助将非常感激...
更新:我修好了。这与 BCEL 库无关,它是 JDK 版本(1.7),它没有验证我的检测类。因此,如果有人遇到此类问题,请使用 JDK 1.6 或使用 JVM 选项“-XX:-UseSplitVerifier”。
干杯