[Soot-list] RuntimeException when using Spark with -no-bodies-for-excluded

Michael Faes rolve at trick17.ch
Wed Mar 6 05:46:33 EST 2013


In this case, could someone explain to me what it takes to get a nightly 
binary of Soot *AND* the corresponding sources?

Since the sources are not distributed along with nightly builds (or at 
least I wasn't able to find them), it seems to me that I have to build 
Soot myself to get matching sources and binaries. After cloning soot and 
jasmin and heros from Github, there still seem to be endless 
complications and dependencies like Jast-something and Eclipse and ...

Is all this really necessary? I simply want to use Soot as a library and 
be able to look at the source code when something goes wrong...

Thanks for your help.
Michael

-------- Original-Nachricht --------
Betreff: Re: [Soot-list] RuntimeException when using Spark with 
-no-bodies-for-excluded
Von: Eric Bodden <eric.bodden at ec-spride.de>
An: Michael Faes <rolve at trick17.ch>
Datum: 05.03.2013 17:06

> Hi Michael.
>
> 2.5.0 is outdated. You could try the nightly build....
>
> Eric
>
> On 5 March 2013 15:57, Michael Faes <rolve at trick17.ch> wrote:
>> Hi everyone,
>>
>> I'm trying to switch from CHA to Spark and getting the following exception:
>>
>> Exception in thread "main" java.lang.RuntimeException: This operation
>> requires resolving level HIERARCHY but
>> javax.security.auth.callback.Callback is at resolving level DANGLING
>> If you are extending Soot, try to add the following call before calling
>> soot.Main.main(..):
>> Scene.v().addBasicClass(javax.security.auth.callback.Callback,HIERARCHY);
>> Otherwise, try whole-program mode (-w).
>>     at soot.SootClass.checkLevel(SootClass.java:125)
>>     at soot.FastHierarchy.canStoreClass(FastHierarchy.java:280)
>>     at soot.FastHierarchy.canStoreType(FastHierarchy.java:215)
>>     at soot.FastHierarchy.canStoreType(FastHierarchy.java:261)
>>     at
>> soot.jimple.spark.internal.TypeManager.castNeverFails(TypeManager.java:113)
>>     at
>> soot.jimple.spark.internal.TypeManager.makeTypeMask(TypeManager.java:92)
>>     at
>> soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:91)
>>     at soot.SceneTransformer.transform(SceneTransformer.java:39)
>>     at soot.Transform.apply(Transform.java:89)
>>     at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
>>     at
>> soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:49)
>>     at soot.Pack.apply(Pack.java:114)
>>     ...
>>
>> I'm using custom entry points and therefore setting up Soot in a custom way:
>>
>> ----
>> final soot.options.Options opts = soot.options.Options.v();
>> opts.set_output_format(soot.options.Options.output_format_none);
>> opts.set_via_shimple(true);
>> opts.set_whole_program(true);
>> opts.set_whole_shimple(true);
>> opts.set_omit_excepting_unit_edges(true);
>> opts.set_allow_phantom_refs(true);
>> opts.set_no_bodies_for_excluded(true);
>> opts.set_include_all(true);
>> opts.set_exclude(myOptions.excludedPackages());
>> final List<String> included = new ArrayList<String>(myOptions
>>           .includedPackages());
>> included.add("java.util.concurrent.locks.");
>> opts.set_include(included);
>> opts.setPhaseOption("cg", "verbose:true");
>> opts.setPhaseOption("cg.cha", "enabled:false");
>> opts.setPhaseOption("cg.spark", "enabled:true");
>> opts.parse(myOptions.classes().toArray(new String[0]));
>>
>> final Scene scene = Scene.v();
>> for(final String name : myOptions.classes())
>>       scene.forceResolve(name, SootClass.BODIES);
>> scene.loadNecessaryClasses();
>> scene.setEntryPoints(SootUtils.allLibraryMethods());
>>
>> ...
>>
>> PackManager.v().runPacks();
>> ----
>>
>> Does anyone have an idea what the problem here could be? I'm using
>> soot-2.5.0. Many thanks in advance.
>>
>> Best regards,
>> Michael
>> _______________________________________________
>> 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