[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