[Soot-list] Soot and Heros : getting OutOfMemoryError : HeapSpace

Utsav Chokshi uvc.smart.29 at gmail.com
Tue Mar 4 07:20:13 EST 2014


Hello Eric,
You were right . I was making silly mistake.

Instead of writing ,
Options.v().set_no_bodies_for_excluded(true)
, I was writing Options.v().no_bodies_for_exculded.

Now it is building call graph and solving tabulation problem in fraction of
seconds.

Thank you for your support and patience.

Next time I will double chexk before posting.

- Utsav Chokshi
[ Intern ,TCS Innovation Labs , Pune, India]
On Mar 4, 2014 12:41 PM, "Utsav Chokshi" <uvc.smart.29 at gmail.com> wrote:

> Hello Eric,
>
> Below is my code for setting options :
>
> //Setting options for soot
>
> Options.v().set_verbose(
>
> false);
> Options.v().set_keep_line_number(true);
> Options.v().set_output_format(Options.output_format_jimple);
> Options.v().set_whole_program(true);
> Options.v().set_exclude(Arrays.asList("java", "sun"));
> Options.v().no_bodies_for_excluded();
>
> // Setting jimple phase options for soot
> PhaseOptions.v().setPhaseOption("jb","enabled:true");
> PhaseOptions.v().setPhaseOption("jb","use-original-names:true");
> PhaseOptions.v().setPhaseOption("jtp", "enabled:true");
>
> // Setting call-graph i.e. cg phase options for soot
> PhaseOptions.v().setPhaseOption("cg", "enabled:true");
> PhaseOptions.v().setPhaseOption("cg.spark","enabled:true");
>
> Below is code written under MySceneTransformer class's InternalTransform
> method :
>
> SootMethod mainMethod=mainClass.getMethod("void main(java.lang.String[])");
> JimpleBasedInterproceduralCFG icfg=newJimpleBasedInterproceduralCFG();
> IFDSTabulationProblem<Unit,Pair<Value,Set<DefinitionStmt>>,SootMethod,InterproceduralCFG<Unit,SootMethod>>
> problem=
> new IFDSReachingDefinitions(icfg);
> System.out.println("Number of threads :" + problem.numThreads());
>
> JimpleIFDSSolver<Pair<Value, Set<DefinitionStmt>>,
> InterproceduralCFG<Unit, SootMethod>> solver =
> new JimpleIFDSSolver<Pair<Value, Set<DefinitionStmt>>,
> InterproceduralCFG<Unit, SootMethod>>(problem,true);
>
> System.out.println("Started Solving....");
> solver.solve();
> System.out.println("Completed Solving....");
>
> For code having single class and single method :
> Call-Graph generation takes : 30.7 secs
> Solver takes : almost 3 minutes
> Number of threads : 16
>
> - Utsav Chokshi
> [ Intern ,TCS Innovation Labs , Pune, India]
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20140304/f9ba0520/attachment.html 


More information about the Soot-list mailing list