[Soot-list] Hi All,

ASHISH MISHRA ashish123.mishragkp at gmail.com
Thu Apr 25 09:46:26 EDT 2013


I am trying to use the Jimple files as input to Paddle Call graph
construction, for this I am setting jimple as the "-src-prec" option and
change the soot-class path appropriately. When I run the soot as
Pack.v().PackMnager(); I get the following exception.

library
path/usr/share/jdk1.7.0_01/jre/lib/i386/server:/usr/share/jdk1.7.0_01/jre/lib/i386:/usr/share/jdk1.7.0_01/jre/../lib/i386:/usr/share/jdk1.6.0_35/jre/lib/i386/client:/usr/share/jdk1.6.0_35/jre/lib/i386::/usr/java/packages/lib/i386:/lib:/usr/lib
[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:162)
*
* at
soot.jimple.toolkits.typing.fast.AugEvalFunction.eval(AugEvalFunction.java:41)
*
* at
soot.jimple.toolkits.typing.fast.TypeResolver.applyAssignmentConstraints(TypeResolver.java:407)
*
* at
soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:113)
*
* at
soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:101)
*
* 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.JimpleMethodSource.getBody(JimpleMethodSource.java:49)*
* at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:89)*
* at soot.SootMethod.retrieveActiveBody(SootMethod.java:322)*
* at
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:531)
*
* at
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:426)
*
* 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:49)
*
* at soot.Pack.apply(Pack.java:114)*
* at soot.PackManager.runWholeProgramPacks(PackManager.java:417)*
* at soot.PackManager.runPacks(PackManager.java:336)*
* at callgraph.PaddleTest.main(PaddleTest.java:290)*
*
*
*
*
After debugging a little further I find out that , No active Body is
present for the Entry Method OnCreate(). This looks odd , as I can see the
body present in the JimpleMethodSource's mTree field, I am sure the problem
occurs during Walking this tree to get the Body, but I am not sure Whats
the reason.

NOTE - The problem exists only when I pass the Jimple Body as Input, To
validate the jimple body, I called validate() after any instrumentation
made to the Jimple earlier. and it returns fine.

Please provide the probable cause of the problem.









-- 
Regards,
Ashish Mishra
Graduate Student,
Computer Science and Automation Department,IISc
Cell : +91-9611194714
Mailto : ashishmishra at csa.iisc.ernet.in
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20130425/a91e8ee0/attachment.html 


More information about the Soot-list mailing list