[Soot-list] SPARK and use-original-names

Phil Pratt-Szeliga pcpratts at trifort.org
Sat Mar 23 10:45:11 EDT 2013


Hi Rohan,

If you can get a full example that we can run that fails, I can try to
get it fixed for you.

Sincerely,
Phil Pratt-Szeliga
Syracuse University
http://trifort.org/

On Thu, Mar 21, 2013 at 3:41 AM, Zhoulai <zell08v at orange.fr> wrote:
> Hi,
>
>  I think it might be a bug if there is a conflict between '-app' and
> '-use-original-names'. You  might want to show us a small and complete
> example that reproduces it.
>
> My personal feeling is that, ' use-original-names' does not always go well
> with Jimple analysis. Unwanted imprecise results, or confusing exception
> might be caused due to that option. Anyway, imho,  "use-original-names"  are
> mostly useful for us people, but the idea of static analysis lies in
> reasoning program behaviors with programs. Voila.
>
> Zell.
>
>
>> This is the equivalent command-line (exception thrown with this usage
>> too):
>> java -jar soot.jar -cp <DIR> -pp -w -app -p jb use-original-names:true
>> -keep-bytecode-offset -f none -p cg.spark enabled -p cg implicit-entry:false
>> <MAIN_CLASS>
>>
>> Interestingly, it works fine if I give the "-no-bodies-for-excluded"
>> option, so I get the variable-named Jimple for my own classes, but it does
>> not work when all bodies are loaded.
>>
>> Have you managed to get both working together when library classes are
>> loaded too?
>>
>> Thanks,
>>
>> Rohan
>>
>>
>>
>> On Wednesday 20 March 2013 11:24 PM, Zhoulai wrote:
>>
>>
>> Hi,
>>
>> I guess the error should be due to your SOOT settings. For me most of time
>> they work well together.
>>
>> Could you show us your source code part?
>>
>> Zell.
>>
>> On Wed, Mar 20, 2013 at 6:18 PM, Rohan Padhye <rohanpadhye at cse.iitb.ac.in>
>> wrote:
>>>
>>> Hello,
>>>
>>> I am not able to use SPARK with the "use-original-names" option to the
>>> Jimple-body pack. I keep getting this exception:
>>>
>>> Exception in thread "main" java.lang.RuntimeException: failed to handle 0
>>>      at
>>>
>>> soot.jimple.spark.builder.MethodNodeFactory.defaultCase(MethodNodeFactory.java:288)
>>>      at
>>>
>>> soot.jimple.AbstractJimpleValueSwitch.caseIntConstant(AbstractJimpleValueSwitch.java:55)
>>>      at soot.jimple.IntConstant.apply(IntConstant.java:196)
>>>      at
>>>
>>> soot.jimple.spark.builder.MethodNodeFactory$1.caseAssignStmt(MethodNodeFactory.java:74)
>>>      at soot.jimple.internal.JAssignStmt.apply(JAssignStmt.java:221)
>>>      at
>>>
>>> soot.jimple.spark.builder.MethodNodeFactory.handleStmt(MethodNodeFactory.java:67)
>>>      at soot.jimple.spark.pag.MethodPAG.buildNormal(MethodPAG.java:181)
>>>      at soot.jimple.spark.pag.MethodPAG.build(MethodPAG.java:147)
>>>      at
>>>
>>> soot.jimple.spark.solver.OnFlyCallGraph.processReachables(OnFlyCallGraph.java:64)
>>>      at
>>> soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:56)
>>>      at
>>>
>>> soot.jimple.spark.solver.PropWorklist.handleVarNode(PropWorklist.java:123)
>>>      at
>>> soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:53)
>>>      at
>>>
>>> soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:152)
>>>      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)
>>>      at soot.PackManager.runWholeProgramPacks(PackManager.java:460)
>>>      at soot.PackManager.runPacksNormally(PackManager.java:369)
>>>      at soot.PackManager.runPacks(PackManager.java:335)
>>>      at soot.Main.run(Main.java:198)
>>>      at soot.Main.main(Main.java:141)
>>>
>>> I see that this has been reported before
>>> (http://www.sable.mcgill.ca/pipermail/soot-list/2012-August/004706.html),
>>> but
>>> no solution seems to have been found. Does anybody know the reason why
>>> these two do not work together? And is there a fix possible? I *require*
>>> both these to work together because I need to generate information that
>>> uses variable names, but uses whole-program analysis.
>>>
>>> --
>>> Regards,
>>> Rohan Padhye
>>>
>>> _______________________________________________
>>> Soot-list mailing list
>>> Soot-list at sable.mcgill.ca
>>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>
>>
>>
>> --
>> Regards,
>> Rohan Padhye
>
>


More information about the Soot-list mailing list