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

Marc-Andre Laverdiere-Papineau marc-andre.laverdiere-papineau at polymtl.ca
Wed Mar 6 10:44:26 EST 2013


Hello Michael,

I personally just build soot from the source, though I must admit that 
it is more work than just running ant and be done with it.

But the good news is that Quentin created an automated script to make it 
easier!
https://gist.github.com/quentin/5099059

Marc-André Laverdière-Papineau
Doctorant - PhD Candidate

On 13-03-06 05:46 AM, Michael Faes wrote:
> 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
>>
>>
>>
> _______________________________________________
> 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