Class TaintAnalyzerResult

    • Method Detail

      • getTraceReconstructionResult

        public TraceExtractor<SetAbstractState<TaintSource>> getTraceReconstructionResult()
        Get the result of trace reconstruction.

        Trace reconstruction is a very expensive operation and does not run if not explicitly requested, calling this method for the first time on a specific TaintAnalyzerResult triggers running the witness traces creation.

        The witness trace is based uniquely on the taint analysis cache, and at the moment the cache has no capability to remember a snapshot of the last run of TaintAnalyzer.analyze(MethodSignature). Until this holds true, if the same TaintAnalyzer has been used to analyze several methods (to exploit block abstraction memoization with the cache), the results of the trace reconstruction should be retrieved only once for the last call of TaintAnalyzer.analyze(MethodSignature), since doing otherwise would result in computing the same traces all over again.