[Soot-list] Disable output for certain app classes

Mario Mendez-Lojo marioml at ices.utexas.edu
Wed May 13 19:22:47 EDT 2009


I found an alternative, which would be to run Soot twice: if the first pass, we 
discover which classes are really needed, and a second one that receives those 
as application classes. In this way, we save time by not even bringing them to 
memory.

However, invoking Main.main(args) twice (within the same execution) results on 
all kinds of errors because the state is not reset prior to the second 
execution. Is there any way to safely reset the state of Soot so I can run it 
twice within the same program? Output to a file the 1st and then restart the JVM 
  is not an option, since it would be too slow

Eric Bodden wrote:
> Hi Mario. I think you should be able to set the classes as library
> classes from within a SceneTransformer. You would need to insert that
> transformer into a w* pack, e.g. wjtp.
> 
> Eric
> 
> 2009/5/13 Mario Mendez-Lojo <marioml at ices.utexas.edu>:
>> Hi,
>>
>> Because I don't know until runtime which classes of package 'x' I'm interested
>> in transforming, I add the whole thing as a dynamic package
>>
>>     Options.v().set_dynamic_package(Collections.singletonList("x"));
>>
>> The transformation only affects a few of the classes in 'x': how can I specify
>> that I only want to output those ones? I tried to set the rest as library
>> classes, but then I get a concurrent modification exception because of modifying
>> the chain of application classes while iterating over it.
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>
> 
> 
> 


More information about the Soot-list mailing list