[Soot-list] A flexible no-bodies option?

Marc-Andre Laverdiere-Papineau marc-andre.laverdiere-papineau at polymtl.ca
Wed Jun 27 15:46:15 EDT 2012


Hello,

I am using a whole program analysis with a lot of exclusions. Running 
spark I get this error:

Exception in thread "main" java.lang.RuntimeException: This operation 
requires resolving level HIERARCHY but sun.misc.ClassFileTransformer is 
at resolving level DANGLING
If you are extending Soot, try to add the following call before calling 
soot.Main.main(..):
Scene.v().addBasicClass(sun.misc.ClassFileTransformer,HIERARCHY);

I understand from previous mailing list messages that this would be due 
to the fact that I am allowing no bodies for excluded.

The thing is: if I disable that option, the analysis explodes in term of 
memory usage and I have to kill it.

So what compromises are there? I don't want to repeat the analysis and 
catch exceptions dynamically and try to find a way to add a basic class, 
because that is a lot of CPU wasted.
Also, trying to have a perfect list of Scene.v().addBasicClass() is 
definitely not going to happen, and I'll need to add a bunch of those 
every time I analyze a different application.

Is there a way to tell soot to load a class at the needed level rather 
than throwing that exception? If not, would you please vaguely let me 
know how I can implement that?

-- 
Marc-André Laverdière-Papineau
Étudiant au doctorat - PhD Student



More information about the Soot-list mailing list