[Soot-list] Exception running soot in whole-program mode

Syed Albiz s.s.albiz at gmail.com
Wed Mar 25 15:27:07 EDT 2009


Hi,

I am trying to run soot on the AspectJ benchmark suite (using abc),
but when running in whole program mode, soot throws the following
exception:

Soot started on Tue Mar 24 01:36:16 EDT 2009
No main class given. Inferred 'certrevsim.Simulator' as main class.
[Call Graph] For information on where the call graph may be
incomplete, use the verbose option to the cg phase.
Exception in thread "main" java.lang.RuntimeException: Exception
reference used other than as the first statement of an exception
handler.
       at soot.jimple.toolkits.typing.fast.AugEvalFunction.eval_(AugEvalFunction.java:156)
       at soot.jimple.toolkits.typing.fast.AugEvalFunction.eval(AugEvalFunction.java:41)
       at soot.jimple.toolkits.typing.fast.TypeResolver.applyAssignmentConstraints(TypeResolver.java:402)
       at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:113)
       at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:93)
       at soot.BodyTransformer.transform(BodyTransformer.java:51)
	at soot.Transform.apply(Transform.java:104)
	at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:66)
	at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:89)
	at soot.Pack.apply(Pack.java:124)
	at soot.jimple.toolkits.invoke.StaticInliner.internalTransform(StaticInliner.java:144)
	at soot.SceneTransformer.transform(SceneTransformer.java:39)
	at soot.Transform.apply(Transform.java:89)
	at soot.ScenePack.internalApply(ScenePack.java:43)
	at soot.Pack.apply(Pack.java:114)
	at soot.PackManager.runWholeProgramPacks(PackManager.java:408)
	at soot.PackManager.runPacks(PackManager.java:327)
	at soot.Main.run(Main.java:202)
	at soot.Main.main(Main.java:145)


Is this a problem with soot, or is it simply not being invoked correctly?

To reproduce the problem, using the DCM benchmark:

1. Grab the aspectJ benchmarks from
http://www.sable.mcgill.ca/benchmarks/ & extract tarball
2. copy or symlink:
abc-complete.jar  abc-for-ajc-ant.jar  abc-runtime.jar
into the "lib" sub-directory of the benchmark suite. Obtained from
http://abc.comlab.ox.ac.uk/download
3. in the DCM sub-directory of the benchmark suite, run:

#/bin/bash

# replace with correct paths
ASPECTJ_ROOT=/home/albiz/dev/soot/aspectjBenchmarkSuite
SOOT_HOME=/home/albiz/dev/soot/
OUTPUT_DIR=/home/albiz/dev/soot/sootOutput
JAVA_HOME=/opt/sun-jdk-1.6.0.12

/usr/bin/java -Xmx2048m -cp
$SOOT_HOME/soot-2.3.0/classes/:$SOOT_HOME/jasmin-2.3.0/classes/:$SOOT_HOME/polyglot-1.3.5/classes:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/resources.jar:$JAVA_HOME/jre/lib/jce.jar:$ASPECTJ_ROOT/lib/abc-complete.jar$ASPECTJ_ROOT/lib/abc-runtime.jar:$ASPECTJ_ROOT/lib/abc-for-ajc-ant.jar:$ASPECTJ_ROOT/DCM/src/
soot.Main -W -p wjtp enabled:true --d $OUTPUT_DIR -pp --cp
$JAVA_HOME/jre/lib/rt.jar:$ASPECTJ_ROOT/lib/abc-complete.jar$ASPECTJ_ROOT/lib/abc-runtime.jar:$ASPECTJ_ROOT/lib/abc-for-ajc-ant.jar:$ASPECTJ_ROOT/DCM/src/
--src-prec java certrevsim.Simulator


More information about the Soot-list mailing list