[Soot-list] SPARK and use-original-names

Rohan Padhye rohanpadhye at cse.iitb.ac.in
Wed Mar 20 14:04:31 EDT 2013


Hello Zell,

This is the equivalent command-line (exception thrown with this usage too):
java -jar soot.jar -cp <DIR> -pp -w -app -p jb use-original-names:true  
-keep-bytecode-offset -f none -p cg.spark enabled -p cg 
implicit-entry:false <MAIN_CLASS>

Interestingly, it works fine if I give the "-no-bodies-for-excluded" 
option, so I get the variable-named Jimple for my own classes, but it 
does not work when all bodies are loaded.

Have you managed to get both working together when library classes are 
loaded too?

Thanks,

Rohan


On Wednesday 20 March 2013 11:24 PM, Zhoulai wrote:
>
> Hi,
>
> I guess the error should be due to your SOOT settings. For me most of 
> time they work well together.
>
> Could you show us your source code part?
>
> Zell.
>
> On Wed, Mar 20, 2013 at 6:18 PM, Rohan Padhye 
> <rohanpadhye at cse.iitb.ac.in <mailto:rohanpadhye at cse.iitb.ac.in>> wrote:
>
>     Hello,
>
>     I am not able to use SPARK with the "use-original-names" option to the
>     Jimple-body pack. I keep getting this exception:
>
>     Exception in thread "main" java.lang.RuntimeException: failed to
>     handle 0
>          at
>     soot.jimple.spark.builder.MethodNodeFactory.defaultCase(MethodNodeFactory.java:288)
>          at
>     soot.jimple.AbstractJimpleValueSwitch.caseIntConstant(AbstractJimpleValueSwitch.java:55)
>          at soot.jimple.IntConstant.apply(IntConstant.java:196)
>          at
>     soot.jimple.spark.builder.MethodNodeFactory$1.caseAssignStmt(MethodNodeFactory.java:74)
>          at soot.jimple.internal.JAssignStmt.apply(JAssignStmt.java:221)
>          at
>     soot.jimple.spark.builder.MethodNodeFactory.handleStmt(MethodNodeFactory.java:67)
>          at
>     soot.jimple.spark.pag.MethodPAG.buildNormal(MethodPAG.java:181)
>          at soot.jimple.spark.pag.MethodPAG.build(MethodPAG.java:147)
>          at
>     soot.jimple.spark.solver.OnFlyCallGraph.processReachables(OnFlyCallGraph.java:64)
>          at
>     soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:56)
>          at
>     soot.jimple.spark.solver.PropWorklist.handleVarNode(PropWorklist.java:123)
>          at
>     soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:53)
>          at
>     soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:152)
>          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:460)
>          at soot.PackManager.runPacksNormally(PackManager.java:369)
>          at soot.PackManager.runPacks(PackManager.java:335)
>          at soot.Main.run(Main.java:198)
>          at soot.Main.main(Main.java:141)
>
>     I see that this has been reported before
>     (http://www.sable.mcgill.ca/pipermail/soot-list/2012-August/004706.html),
>     but
>     no solution seems to have been found. Does anybody know the reason why
>     these two do not work together? And is there a fix possible? I
>     *require*
>     both these to work together because I need to generate information
>     that
>     uses variable names, but uses whole-program analysis.
>
>     --
>     Regards,
>     Rohan Padhye
>
>     _______________________________________________
>     Soot-list mailing list
>     Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
>     http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
>

-- 
Regards,
Rohan Padhye

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20130320/316f2f3b/attachment.html 


More information about the Soot-list mailing list