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

Michael Faes rolve at trick17.ch
Wed Mar 6 11:55:44 EST 2013


Hi Eric,

Thanks for the answer. I just wanted to make sure that the two really 
are corresponding. Ok, I could have checked the date and time of the 
nightly jar and then find the code of that point in time on Github (and 
make an educated guess which branch is used to build the nightlies).

Well, I managed to build the jars now, so everything is fine. But I 
think it would be convenient for users to have a sources jar for the 
nightly builds as well.

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: 06.03.2013 17:29

> Hi Michael.
>
> The nightly builds are on the respective web page and the
> corresponding source code is on Github. Isn't that sufficient for your
> needs?
>
> Eric
>
> On 6 March 2013 11:46, Michael Faes <rolve at trick17.ch> 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