secure-software-engineering / FlowDroid

FlowDroid Static Data Flow Tracker
GNU Lesser General Public License v2.1
1.03k stars 293 forks source link

How to check the progress of FlowDroid's data flow solver solution? #511

Closed jimmy66688 closed 1 year ago

jimmy66688 commented 1 year ago

Hi @StevenArzt , I am using FlowDroid to perform static taint analysis on some medium sized databases and from the logs I have been at Source lookup done, found 30 sources and 2000 sinks. It has been going on for about a week and I see that the java process is still running using the top command, is there any other way to see what stage the dataflow solver is currently at? Or how should I evaluate the time it takes to analyze a program with FlowDroid?

My processor is 24 core Intel Xeon Silver 4116 @ 2.10GHz and I set the jvm parameter -Xmx80g -Xms60g.

jimmy66688 commented 1 year ago

Hi @StevenArzt , I get errors about GC when I run flowdroid, I think it's due to the fact that my hardware can't support the large-scale software analysis, is there a mechanism for early termination of FlowDroid?

Source lookup done, found 30 sources and 1983 sinks.

ERROR heros.solver.CountingThreadPoolExecutor - Worker thread execution failed: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded

Even if there are many Sources and sinks to construct paths, is it possible to construct only a part of them according to the hardware resource limit and terminate them early when the resources are exhausted?

jimmy66688 commented 1 year ago

The problem has been solved, tuning JVM can speed up FlowDroid.