[Soot-list] A problem when analysing BCEL

Phung Hua Nguyen nhp at cse.unsw.edu.au
Mon Mar 28 00:27:00 EST 2005


Dear all,

I try to use Soot to analyse a library. I created a NullClass with an empty 
body of main function. I used option --dynamic-package to load all classes in 
the package I want to analyse. By this way, I can analyse all packages in 
rt.jar, but when I try to analyse some other packages such org.apache.bcel I 
got a problem. The following is the command and the error message:

~/j2sdk1.4.2_07/bin/java -Xmx800m-classpath 
~/soot-2.0.1/soot/classes:~/j2sdk1.4.2_07/jre/lib/rt.jar:~/soot-2.0.1/jasmin/classes 
soot.Main -app -W -p cg 
all-reachable:true,safe-forname:true,safe-newinstance:true,trim-clinit:true 
-include org.apache.bcel --dynamic-package org.apache.bcel -p cg.spark 
enabled:true,propagator:worklist,simulate-natives:true,on-fly-cg:false,dump-solution:false 
-p wjop.si enabled:false -soot-class-path 
~/j2sdk1.4.2_07/jre/lib/rt.jar:~/benchmark/bcel-5.1:~/testscript/runlib:~/benchmark/jakarta-regexp-1.3/jakarta-regexp-1.3.jar 
-f none NullClass
Exception in thread "main" java.lang.RuntimeException: Exception range does not 
coincide with jimple instructions
         at soot.coffi.CFG.jimplify(CFG.java:1506)
         at soot.coffi.CFG.jimplify(CFG.java:1099)
         at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
         at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
         at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)
         at 
soot.jimple.toolkits.callgraph.CallGraphBuilder.processNewMethod(CallGraphBuilder.java:114)
         at 
soot.jimple.toolkits.callgraph.CallGraphBuilder.processWorklist(CallGraphBuilder.java:93)
         at 
soot.jimple.toolkits.callgraph.CallGraphBuilder.build(CallGraphBuilder.java:81)
         at 
soot.jimple.spark.builder.ContextInsensitiveBuilder.build(ContextInsensitiveBuilder.java:77)
         at 
soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:64)
         at soot.SceneTransformer.transform(SceneTransformer.java:39)
         at soot.Transform.apply(Transform.java:79)
         at soot.RadioScenePack.internalApply(RadioScenePack.java:60)
         at 
soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:36)
         at soot.Pack.apply(Pack.java:104)
         at soot.PackManager.runWholeProgramPacks(PackManager.java:255)
         at soot.PackManager.runPacks(PackManager.java:238)
         at soot.Main.run(Main.java:172)
         at soot.Main.main(Main.java:152)

I tried with java 1.4.1 but I got another problem:

Soot started on Sun Mar 27 18:00:02 EST 2005
[Call Graph] For information on where the call graph may be incomplete, use the 
verbose option to the cg phase.

Unexpected Signal : 11 occurred at PC=0x402FBFF8
Function=oop_follow_contents__13objArrayKlassP7oopDesc+0x38
Library=/home/nhp/j2sdk1.4.1/jre/lib/i386/client/libjvm.so


Dynamic libraries:
08048000-0804d000 r-xp 00000000 09:01 4161922    /home/nhp/j2sdk1.4.1/bin/java
0804d000-0804e000 rw-p 00004000 09:01 4161922    /home/nhp/j2sdk1.4.1/bin/java
40000000-40012000 r-xp 00000000 09:01 3604482    /lib/ld-2.2.93.so
40012000-40013000 rw-p 00012000 09:01 3604482    /lib/ld-2.2.93.so
...


Is there any suggestion?

Thanks in advance,

Phung


More information about the Soot-list mailing list