[Soot-list] IFDSReachingDefinitions

Bodden, Eric eric.bodden at sit.fraunhofer.de
Fri Apr 10 12:56:50 EDT 2015


Hmm, this is odd.

This looks like you are processing a call site for which the call site itself has actually an argument while the resolved callee method does not. Can you set a breakpoint or add a println to see which method call Soot processes when throwing the exception?

Cheers,
Eric

> On 10.04.2015, at 18:37, ochipara at gmail.com wrote:
> 
> Hi,
> 
> I am trying to run the IFDSReachingDefinitions analysis on a trivial example. However, I am getting the exception included below. I suspect that this is an issue with how I configure soot. I have to apologize if the question is naive, I am just getting started with soot.
> 
> Thanks,
> — Octav
> 
> [Thread-1] ERROR heros.solver.IDESolver - Worker thread execution failed: Index: 0, Size: 0
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> 	at java.util.ArrayList.rangeCheck(ArrayList.java:635)
> 	at java.util.ArrayList.get(ArrayList.java:411)
> 	at java.util.Collections$UnmodifiableList.get(Collections.java:1211)
> 	at soot.SootMethod.getParameterType(SootMethod.java:266)
> 	at soot.jimple.toolkits.ide.exampleproblems.IFDSReachingDefinitions$1$2.computeTargets(IFDSReachingDefinitions.java:111)
> 	at soot.jimple.toolkits.ide.exampleproblems.IFDSReachingDefinitions$1$2.computeTargets(IFDSReachingDefinitions.java:1)
> 	at heros.ZeroedFlowFunctions$ZeroedFlowFunction.computeTargets(ZeroedFlowFunctions.java:58)
> 	at heros.solver.IDESolver.computeCallFlowFunction(IDESolver.java:397)
> 	at heros.solver.IDESolver.processCall(IDESolver.java:330)
> 	at heros.solver.IDESolver.access$0(IDESolver.java:313)
> 	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:856)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:744)
> Exception in thread "Thread-1" java.lang.InterruptedException
> 	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
> 	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
> 	at heros.solver.CountLatch.awaitZero(CountLatch.java:75)
> 	at heros.solver.CountingThreadPoolExecutor.awaitCompletion(CountingThreadPoolExecutor.java:79)
> 	at heros.solver.IDESolver.runExecutorAndAwaitCompletion(IDESolver.java:258)
> 	at heros.solver.IDESolver.awaitCompletionComputeValuesAndShutdown(IDESolver.java:233)
> 	at heros.solver.IDESolver.solve(IDESolver.java:207)
> 	at soot.jimple.toolkits.ide.JimpleIFDSSolver.solve(JimpleIFDSSolver.java:54)
> 	at ReachingDefinitions$1.internalTransform(ReachingDefinitions.java:40)
> 	at soot.SceneTransformer.transform(SceneTransformer.java:39)
> 	at soot.Transform.apply(Transform.java:90)
> 	at soot.ScenePack.internalApply(ScenePack.java:40)
> 	at soot.Pack.apply(Pack.java:116)
> 	at soot.PackManager.runWholeProgramPacks(PackManager.java:564)
> 	at soot.PackManager.runPacksNormally(PackManager.java:456)
> 	at soot.PackManager.runPacks(PackManager.java:391)
> 	at soot.Main.run(Main.java:244)
> 	at soot.Main.main(Main.java:152)
> 	at ReachingDefinitions.main(ReachingDefinitions.java:46)
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> 	at java.util.ArrayList.rangeCheck(ArrayList.java:635)
> 	at java.util.ArrayList.get(ArrayList.java:411)
> 	at java.util.Collections$UnmodifiableList.get(Collections.java:1211)
> 	at soot.SootMethod.getParameterType(SootMethod.java:266)
> 	at soot.jimple.toolkits.ide.exampleproblems.IFDSReachingDefinitions$1$2.computeTargets(IFDSReachingDefinitions.java:111)
> 	at soot.jimple.toolkits.ide.exampleproblems.IFDSReachingDefinitions$1$2.computeTargets(IFDSReachingDefinitions.java:1)
> 	at heros.ZeroedFlowFunctions$ZeroedFlowFunction.computeTargets(ZeroedFlowFunctions.java:58)
> 	at heros.solver.IDESolver.computeCallFlowFunction(IDESolver.java:397)
> 	at heros.solver.IDESolver.processCall(IDESolver.java:330)
> 	at heros.solver.IDESolver.access$0(IDESolver.java:313)
> 	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:856)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:744)
> java.lang.RuntimeException: There were exceptions during IDE analysis. Exiting.
> 	at heros.solver.IDESolver.runExecutorAndAwaitCompletion(IDESolver.java:264)
> 	at heros.solver.IDESolver.awaitCompletionComputeValuesAndShutdown(IDESolver.java:233)
> 	at heros.solver.IDESolver.solve(IDESolver.java:207)
> 	at soot.jimple.toolkits.ide.JimpleIFDSSolver.solve(JimpleIFDSSolver.java:54)
> 	at ReachingDefinitions$1.internalTransform(ReachingDefinitions.java:40)
> 	at soot.SceneTransformer.transform(SceneTransformer.java:39)
> 	at soot.Transform.apply(Transform.java:90)
> 	at soot.ScenePack.internalApply(ScenePack.java:40)
> 	at soot.Pack.apply(Pack.java:116)
> 	at soot.PackManager.runWholeProgramPacks(PackManager.java:564)
> 	at soot.PackManager.runPacksNormally(PackManager.java:456)
> 	at soot.PackManager.runPacks(PackManager.java:391)
> 	at soot.Main.run(Main.java:244)
> 	at soot.Main.main(Main.java:152)
> 	at ReachingDefinitions.main(ReachingDefinitions.java:46)
> Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> 	at java.util.ArrayList.rangeCheck(ArrayList.java:635)
> 	at java.util.ArrayList.get(ArrayList.java:411)
> 	at java.util.Collections$UnmodifiableList.get(Collections.java:1211)
> 	at soot.SootMethod.getParameterType(SootMethod.java:266)
> 	at soot.jimple.toolkits.ide.exampleproblems.IFDSReachingDefinitions$1$2.computeTargets(IFDSReachingDefinitions.java:111)
> 	at soot.jimple.toolkits.ide.exampleproblems.IFDSReachingDefinitions$1$2.computeTargets(IFDSReachingDefinitions.java:1)
> 	at heros.ZeroedFlowFunctions$ZeroedFlowFunction.computeTargets(ZeroedFlowFunctions.java:58)
> 	at heros.solver.IDESolver.computeCallFlowFunction(IDESolver.java:397)
> 	at heros.solver.IDESolver.processCall(IDESolver.java:330)
> 	at heros.solver.IDESolver.access$0(IDESolver.java:313)
> 	at heros.solver.IDESolver$PathEdgeProcessingTask.run(IDESolver.java:856)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:744)
> 
> 
> _______________________________________________
> Soot-list mailing list
> Soot-list at CS.McGill.CA
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list

--
Prof. Eric Bodden, Ph.D., http://sse.ec-spride.de/ http://bodden.de/
Head of Secure Software Engineering at Fraunhofer SIT, TU Darmstadt and EC SPRIDE
Tel: +49 6151 16-75422    Fax: +49 6151 869-127
Room B5.11, Fraunhofer SIT, Rheinstraße 75, 64295 Darmstadt

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
Url : https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20150410/7cfdb56d/attachment.bin 


More information about the Soot-list mailing list