N
- see IFDSSolver
D
- A data-flow abstraction that must implement the LinkedNode
interface such that data-flow values can be linked to form
reportable paths.M
- see IFDSSolver
I
- see IFDSSolver
public class BiDiIFDSSolver<N,D extends JoinHandlingNode<D>,M,I extends InterproceduralCFG<N,M>> extends BiDiIDESolver<N,D,M,IFDSSolver.BinaryDomain,I>
true
for SolverConfiguration.followReturnsPastSeeds()
.
The solver then executes both analyses in lockstep, i.e., when one of the analyses reaches an unbalanced return edge (signified
by a ZERO source value) then the solver pauses this analysis until the other analysis reaches the same unbalanced return (if ever).
The result is that the analyses will never diverge, i.e., will ultimately always only propagate into contexts in which both their
computed paths are realizable at the same time.
This solver requires data-flow abstractions that implement the LinkedNode
interface such that data-flow values can be linked to form
reportable paths.BiDiIDESolver.AbstractionWithSourceStmt, BiDiIDESolver.SingleDirectionSolver
bwSolver, fwSolver
Constructor and Description |
---|
BiDiIFDSSolver(IFDSTabulationProblem<N,D,M,I> forwardProblem,
IFDSTabulationProblem<N,D,M,I> backwardProblem)
Instantiates a
BiDiIFDSSolver with the associated forward and backward problem. |
Modifier and Type | Method and Description |
---|---|
Set<D> |
bwIFDSResultAt(N stmt) |
Set<D> |
fwIFDSResultAt(N stmt) |
createSingleDirectionSolver, solve
public BiDiIFDSSolver(IFDSTabulationProblem<N,D,M,I> forwardProblem, IFDSTabulationProblem<N,D,M,I> backwardProblem)
BiDiIFDSSolver
with the associated forward and backward problem.Copyright © 2021 Secure Software Engineering Group - University of Paderborn. All rights reserved.