Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add TaintAnalyzer and remove CpaRun classes
Together with the already available `ValueAnalyzer` this allows to remove completely the `CpaRun` hierarchy. There are different ideas behind this refactor: - since the intermediate hierarchy for `CpaRun` is not useful, since in practice it just make everything difficult to understand with an improvement in code reuse that is insignificant, this flattens all components of `JvmTaintMemoryLocationBamCpaRun` in a unique utility - configuration options that are in practice not very useful have been removed. In case of more advanced use cases these options can either be reintroduced in the future, or the analysis can be run directly with the CPA classes without the need for a utility - the old CpaRun code made not possible, or at best clunky and not clear, running different analyses while using the same cache to share the results. These changes allow explicitly to either build a new analyzer with a fresh cache, or to run the same analyzer several times with the same cache The behavior that is not too clean at the moment is how all results use the same cache (without a snapshot) and so subsequent run will also update past results. For the same reason at the moment, if multiple runs happen on the same `TaintAnalyzer`, it would be better to reconstruct traces just once in the end to not repeat work. Both these behaviors have been extensively documented.
- Loading branch information