我正在使用daikon Chicory进行不变检测,但遇到了java.lang.VerifyError

时间:2012-09-26 20:41:40

标签: java detect invariants

我正在学习如何使用daikon.Chicory做一些不变的检测。但是在java-examples部分,我在这个命令之后遇到了这个错误

java daikon.Chicory --daikon DataStructures.StackArTester

我在Windows 7上使用cygwin shell。

-ea -Xmx128M -javaagent:C:\cygwin\home\Will\daikonparent\daikon\java\ChicoryPremain.jar=--daikon --dtrace-file=StackArTester.dtrace.gz DataStructures.StackArTester
entered daikon.chicory.Runtime.setDtrace(.\StackArTester.dtrace.gz, false)...
java.lang.VerifyError: StackMapTable error: bad offset in method DataStructures.StackArTester.push(I)V
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
        at java.lang.Class.getMethod0(Class.java:2685)
        at java.lang.Class.getMethod(Class.java:1620)
        at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:492)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:484)
Chicory warning: no records were printed
Exception in thread "main" Warning: Did not run Daikon because target exited with 1 status

1 个答案:

答案 0 :(得分:2)

如评论中所述,它需要针对特定​​版本的Java或JVM版本5生成/编译.class文件

这就是我为了让它发挥作用所做的事情:

javac -g -source 5 -target 5 DataStructures/*.java
java daikon.Chicory --daikon DataStructures.StackArTester

快乐测试!