[Soot-list] PackManager.writeOutput() and using Soot classes outside soot.Main

Eric Bodden eric.bodden at mail.mcgill.ca
Fri Dec 5 19:16:26 EST 2008


I agree that it does not really make much sense to release the bodies.
I am not quite sure why this was implemented; maybe somebody was just
being overly tidy.

On the other hand I am not sure what it would buy you even if you
could turn off the release of bodies. Still, you would have to keep
the VM from terminating so that you can still have access to the
bodies later on. The only difference I could see is that with the
current setup your server code would constantly run within the control
flow of soot.Main, while without the release of bodies you could have
it run "outside". Why would that matter to you?

Eric

2008/12/5 Joe Roback <robackja at cs.arizona.edu>:
> So the real problem with using SootClasses outside soot.Main() is when
> PackManager.writeOutput() is called. PackManager.java, line 394:
>
> releaseBodies( reachableClasses() ); which in turn calls
> m.releaseActiveBody() on each SootMethod... Which set's the activeBody
> = null for all methods. This makes using these classes after soot.Main
> impossible, since they have no active bodies. Soot is exiting, is
> there any reason to set the activeBodies to null? Is there some soot
> option I can use to prevent this?
>
> thanks.
> _______________________________________________
> 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