Environment:
4 Intel(R) Xeon(R) CPU E5-2603 0 @ 1.80GHz
16GB with -Xmx14000M -Xms12000M Oracle java 1.7 x64
Ubuntu 14.04 LTS
time java -Xmx14000M -Xms12000M -cp soot-trunk.jar:soot-infoflow.jar:soot-infoflow-android.jar:slf4j-api-1.7.5.jar:slf4j-simple-1.7.5.jar:axml-2.0.jar soot.jimple.infoflow.android.TestApps.Test ~/apks/com.alawar.dragonisle.apk ~/android-sdk-linux/platforms
hugorunner.apk:
time java -Xmx14000M -Xms12000M -cp FlowDroid.jar soot.jimple.infoflow.android.TestApps.Test ~/hugorunner.apk ~/android-sdk-linux/platforms
com.alawar.dragonisle.apk:
[pool-1-thread-3] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Collections.singleton(Collections.java:3296)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:281)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
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:745)
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:70)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:203)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.awaitCompletionComputeValuesAndShutdown(IFDSSolver.java:184)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.solve(IFDSSolver.java:160)
at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.solve(InfoflowSolver.java:108)
at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:440)
at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:285)
at soot.jimple.infoflow.android.SetupApplication.runInfoflow(Unknown Source)
at soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Unknown Source)
at soot.jimple.infoflow.android.TestApps.Test.main(Unknown Source)
Exception in thread "pool-1-thread-3" Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Collections.singleton(Collections.java:3296)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:281)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
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:745)
java.lang.RuntimeException: There were exceptions during IFDS analysis. Exiting.
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:209)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.awaitCompletionComputeValuesAndShutdown(IFDSSolver.java:184)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.solve(IFDSSolver.java:160)
at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.solve(InfoflowSolver.java:108)
at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:440)
at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:285)
at soot.jimple.infoflow.android.SetupApplication.runInfoflow(Unknown Source)
at soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Unknown Source)
at soot.jimple.infoflow.android.TestApps.Test.main(Unknown Source)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Collections.singleton(Collections.java:3296)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:281)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
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:745)
real 66m10.010s
user 244m35.297s
sys 0m50.491s
time java -Xmx14000M -Xms12000M -cp FlowDroid.jar soot.jimple.infoflow.android.TestApps.Test ~/apks/com.alawar.dragonisle.apk ~/android-sdk-linux/platforms --aplength 2
[pool-2-thread-3] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
[pool-2-thread-1] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.LinkedList.addAll(LinkedList.java:422)
at java.util.LinkedList.addAll(LinkedList.java:385)
at soot.jimple.infoflow.data.SourceContextAndPath.clone(SourceContextAndPath.java:69)
at soot.jimple.infoflow.data.SourceContextAndPath.extendPath(SourceContextAndPath.java:41)
at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:324)
at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:332)[pool-2-thread-2] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.LinkedList.addAll(LinkedList.java:422)
at java.util.LinkedList.addAll(LinkedList.java:385)
at soot.jimple.infoflow.data.SourceContextAndPath.clone(SourceContextAndPath.java:69)
at soot.jimple.infoflow.data.SourceContextAndPath.extendPath(SourceContextAndPath.java:41)
at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:324)
at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:332)
at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:323)
at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:323)
at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:332)
at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:323)
at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:332)
at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:323)
[pool-2-thread-4] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
[pool-2-thread-5] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "pool-2-thread-1" java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "pool-2-thread-2" java.lang.OutOfMemoryError: GC overhead limit exceeded
[main] ERROR soot.jimple.infoflow.Infoflow - Could not wait for path executor completion: {0}
Exception in thread "pool-2-thread-3" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "pool-2-thread-5"
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:67)
at soot.jimple.infoflow.Infoflow.computeTaintPaths(Infoflow.java:516)Exception in thread "pool-2-thread-4" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
pop_candy.apk http://play.mob.org/game/pop_candy.html [ANDROID 2.3]
time java -Xmx14000M -Xms12000M -cp FlowDroid.jar soot.jimple.infoflow.android.TestApps.Test ~/pop_candy.apk ~/android-sdk-linux/platforms
[main] INFO soot.jimple.infoflow.Infoflow - Callgraph has 4546 edges
[main] INFO soot.jimple.infoflow.Infoflow - Looking for sources and sinks...
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.ArrayList.iterator(ArrayList.java:814)
at java.util.Collections$UnmodifiableCollection$1.<init>(Collections.java:1064)
at java.util.Collections$UnmodifiableCollection.iterator(Collections.java:1063)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:277)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
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:745)
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 soot.jimple.infoflow.problems.InfoflowProblem$1$2.createNewTaintOnAssignment(InfoflowProblem.java:600)
at soot.jimple.infoflow.problems.InfoflowProblem$1$2.computeTargetsInternal(InfoflowProblem.java:494)
at soot.jimple.infoflow.problems.InfoflowProblem$1$NotifyingNormalFlowFunction.computeTargets(InfoflowProblem.java:285)
at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:76)
at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:35)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:434)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:589)
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:745)
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:70)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:203)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.awaitCompletionComputeValuesAndShutdown(IFDSSolver.java:184)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.solve(IFDSSolver.java:160)
at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.solve(InfoflowSolver.java:108)
at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:440)
at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:285)
at soot.jimple.infoflow.android.SetupApplication.runInfoflow(Unknown Source)
at soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Unknown Source)
at soot.jimple.infoflow.android.TestApps.Test.main(Unknown Source)
Exception in thread "main" java.lang.RuntimeException: There were exceptions during IFDS analysis. Exiting.
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:209)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.awaitCompletionComputeValuesAndShutdown(IFDSSolver.java:184)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.solve(IFDSSolver.java:160)
at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.solve(InfoflowSolver.java:108)
at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:440)
at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:285)
at soot.jimple.infoflow.android.SetupApplication.runInfoflow(Unknown Source)
at soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Unknown Source)
at soot.jimple.infoflow.android.TestApps.Test.main(Unknown Source)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
at soot.util.HashChain.iterator(HashChain.java:362)
at soot.SootClass.getFieldUnsafe(SootClass.java:236)
at soot.AbstractSootFieldRef.resolve(AbstractSootFieldRef.java:100)
at soot.AbstractSootFieldRef.resolve(AbstractSootFieldRef.java:81)
at soot.jimple.internal.AbstractInstanceFieldRef.getField(AbstractInstanceFieldRef.java:93)
at soot.jimple.infoflow.data.AccessPath.<init>(AccessPath.java:124)
at soot.jimple.infoflow.data.AccessPath.<init>(AccessPath.java:87)
at soot.jimple.infoflow.data.AccessPath.<init>(AccessPath.java:78)
at soot.jimple.infoflow.problems.InfoflowProblem$1$2.createNewTaintOnAssignment(InfoflowProblem.java:600)
at soot.jimple.infoflow.problems.InfoflowProblem$1$2.computeTargetsInternal(InfoflowProblem.java:494)
at soot.jimple.infoflow.problems.InfoflowProblem$1$NotifyingNormalFlowFunction.computeTargets(InfoflowProblem.java:285)
at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:76)
at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:35)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:434)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:589)
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:745)
real 51m26.166s
user 192m38.264s
sys 0m33.571s
time java -cp FlowDroid.jar soot.jimple.infoflow.android.TestApps.Test ~/pop_candy.apk ~/android-sdk-linux/platforms
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.ArrayList.iterator(ArrayList.java:814)
at java.util.Collections$UnmodifiableCollection$1.<init>(Collections.java:1064)
at java.util.Collections$UnmodifiableCollection.iterator(Collections.java:1063)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:277)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
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:745)
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 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOf(Arrays.java:2367)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
at java.lang.StringBuffer.append(StringBuffer.java:232)
at soot.SootMethod.getSubSignatureImpl(SootMethod.java:603)
at soot.SootMethod.getSubSignature(SootMethod.java:573)
at soot.jimple.infoflow.android.AndroidSourceSinkManager.isSink(Unknown Source)
at soot.jimple.infoflow.problems.InfoflowProblem$1.getCallToReturnFlowFunction(InfoflowProblem.java:1219)
at soot.jimple.infoflow.problems.InfoflowProblem$1.getCallToReturnFlowFunction(InfoflowProblem.java:256)
at heros.FlowFunctionCache$4.load(FlowFunctionCache.java:57)
at heros.FlowFunctionCache$4.load(FlowFunctionCache.java:55)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
... 11 more
com.google.common.util.concurrent.ExecutionError: java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2261)
at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4880)
at heros.FlowFunctionCache.getCallToReturnFlowFunction(FlowFunctionCache.java:75)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:299)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
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:745)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOf(Arrays.java:2367)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
at java.lang.StringBuffer.append(StringBuffer.java:232)
at soot.SootMethod.getSubSignatureImpl(SootMethod.java:603)
at soot.SootMethod.getSubSignature(SootMethod.java:573)
at soot.jimple.infoflow.android.AndroidSourceSinkManager.isSink(Unknown Source)
at soot.jimple.infoflow.problems.InfoflowProblem$1.getCallToReturnFlowFunction(InfoflowProblem.java:1219)
at soot.jimple.infoflow.problems.InfoflowProblem$1.getCallToReturnFlowFunction(InfoflowProblem.java:256)
at heros.FlowFunctionCache$4.load(FlowFunctionCache.java:57)
at heros.FlowFunctionCache$4.load(FlowFunctionCache.java:55)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
... 11 more
real 14m44.782s
user 54m36.009s
sys 0m10.492s