[Soot-list] Is there any way to get Soot to save the jimplified representations of the classes?

Rhodes H. F. Brown rhodesb at cs.uvic.ca
Tue Mar 28 20:03:51 EST 2006


Jimple output:
soot -f J <class name>

Jimple input:
soot -src-prec J ... <class name>

>> Could you tell me why it doesn't save time?

Well, even if the input is in Jimple, you still need to resolve all  
the references to other classes (which may not be in Jimple, eg. the  
standard library classes).

>> I mean, what's the time mainly spent in when calling  
>> retrieveActiveBody()?

Someone correct me if I'm wrong, but I believe all of the transforms  
in the 'jb' pack need to be run even if you load from .jimple

>> And, is it possible to cache the JimpleBody through, say,
>> ObjectOutputStream, that I can load it from file in the future?

I think you might run in to trouble attempting this. Most Soot  
constructs seem to implement Serializable, however a cursory  
inspection reveals that some probably aren't really serializable. For  
example, soot.Type has a member arrayType (of type soot.ArrayType)  
which has a member baseType. Clearly this creates a circular  
reference pattern that cannot be deserialized without special  
treatment (and there is none).

-Rhodes



More information about the Soot-list mailing list