[Soot-list] Problem on analyzing SPECjvm2008

Jae-Woo Lee lee575 at purdue.edu
Thu Nov 13 14:39:54 EST 2008


Hi Eric,

I need to analyze the whole SPECjvm2008 benchmark class files and inintially I 
just wanted to run soot.Main and create jimple code. Whenever I run, I meet 
some library problems so I turned on -use-phantom-refs, which I think create 
another problem. It seems soot.Main tries to resolve all the libraries which 
are used by SPECjvm2008 and creates exceptions when I don't have the libraries. 
For the time being, I want to ignore all the system libraries which are outside 
the SPECjvm2008. Is there a better way other than whenever I meet the 
exception, I try to find what's the missing class belongs and find and add the 
libraries which are not contained in the SPECjvm2008 packages ? 
Thank you.

Sincerely,
Jaewoo

Quoting Eric Bodden <eric.bodden at mail.mcgill.ca>:

> Apparently, Soot cannot resolve the code correctly. Usually this
> should only happen when the code is invalid. However, in your case I
> assume that the problem may arise from using -use-phantom-refs. This
> leads Soot to creating "dummy classes" and Soot may actually end up
> being confused by that. Why are you using this option?
> 
> Eric
> 
> 2008/11/12 Jae-Woo Lee <lee575 at purdue.edu>:
> > Hi.
> >
> > I want to analyze SPECjvm2008 benchmark but when I ran soot, I get the
> > following Exception. Any idea what it is about ?
> > Thank you.
> >
> > Jaewoo
> >
> > Command:
> > java -Xmx1024m -classpath .:bin/:${CLASSPATH} soot.Main -w
> -allow-phantom-refs -
> > f j -i org.apache.derby. -i spec.benchmarks.derby. -x spec. -x org. -x com.
> -x
> > sun. -app -print-tags -
> > cp .:${spec_classpath}:${jre_classpath}:${derby_classpath} -process-
> > dir ../MyBenchmarks/derby/ -process-dir ../MyBenchmarks/SPECjvm2008/
> -main-
> > class spec.benchmarks.derby.Main
> >
> > Exception:
> > Exception in thread "main" java.lang.RuntimeException: Trying to create
> > interface invoke expression for non-interface type. Use JVirtualInvokeExpr
> or
> > JSpecialInvokeExpr instead!
> >        at soot.jimple.internal.JInterfaceInvokeExpr.<init>
> > (JInterfaceInvokeExpr.java:46)
> >        at soot.jimple.Jimple.newInterfaceInvokeExpr(Jimple.java:463)
> >        at soot.coffi.CFG.generateJimple(CFG.java:4562)
> >        at soot.coffi.CFG.jimplify(CFG.java:1259)
> >        at soot.coffi.CFG.jimplify(CFG.java:947)
> >        at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:100)
> >        at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:82)
> >        at soot.SootMethod.retrieveActiveBody(SootMethod.java:329)
> >        at
> soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod
> > (OnFlyCallGraphBuilder.java:181)
> >        at
> > soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables
> > (OnFlyCallGraphBuilder.java:81)
> >        at soot.jimple.toolkits.callgraph.CallGraphBuilder.build
> > (CallGraphBuilder.java:84)
> >        at soot.jimple.toolkits.callgraph.CHATransformer.internalTransform
> > (CHATransformer.java:43)
> >        at soot.SceneTransformer.transform(SceneTransformer.java:39)
> >        at soot.Transform.apply(Transform.java:89)
> >        at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
> >        at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply
> > (CallGraphPack.java:47)
> >        at soot.Pack.apply(Pack.java:114)
> >        at soot.PackManager.runWholeProgramPacks(PackManager.java:406)
> >        at soot.PackManager.runPacks(PackManager.java:327)
> >        at soot.Main.run(Main.java:202)
> >        at soot.Main.main(Main.java:145)
> >
> > _______________________________________________
> > Soot-list mailing list
> > Soot-list at sable.mcgill.ca
> > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >
> 
> 
> 
> -- 
> Eric Bodden
> Sable Research Group, McGill University, Montréal, Canada
> Got an interesting job offer? http://www.bodden.de/hire-me/
> 




More information about the Soot-list mailing list