State<'L, 'ExeCtx> Type
Represents a state used in LowUIR-based sensitive dataflow analysis.
Constructors
| Constructor |
Description
|
|
Instance members
| Instance member |
Description
|
|
The given binary handle.
|
Full Usage:
this.ClearPendingEdges
|
Clear the pending vertices. |
Full Usage:
this.ClearRemovalVertices
|
Clear the vertices to be removed. |
|
|
Full Usage:
this.DefUseMap
Returns: Dictionary<SensitiveVarPoint<'ExeCtx>, Set<SensitiveVarPoint<'ExeCtx>>>
|
Mapping from a variable def to its uses.
|
|
Sub-state for the user's domain.
|
|
|
|
A setter for the evaluator.
|
|
|
Full Usage:
this.GetSSAStmts
Parameters:
IVertex<LowUIRBasicBlock>
exeCtx : 'ExeCtx
Returns: Stmt[]
|
|
|
Return the array of StmtInfos of the given vertex.
|
|
|
|
Invalidate the given vertex, which means that all the information associated with the vertex is removed from the state. The order of the removal is important, and it should be done in the current order.
|
Full Usage:
this.IsEdgePending
Parameters:
IVertex<LowUIRBasicBlock>
dst : IVertex<LowUIRBasicBlock>
Returns: bool
|
Check if the given vertex is pending for processing.
|
Full Usage:
this.MarkEdgeAsPending
Parameters:
IVertex<LowUIRBasicBlock>
d : IVertex<LowUIRBasicBlock>
|
Mark the given vertex as pending, which means that the vertex needs to be processed.
|
|
Mark the given vertex as removal, which means that the vertex needs to be removed. Returns false if the vertex is already marked for removal.
|
Full Usage:
this.PendingEdges
Returns: IEnumerable<IVertex<LowUIRBasicBlock> * IVertex<LowUIRBasicBlock>>
|
Currently pending vertices for processing.
|
Full Usage:
this.PerVertexIncomingDefs
Returns: Dictionary<(IVertex<LowUIRBasicBlock> * 'ExeCtx), Map<VarKind, Set<SensitiveVarPoint<'ExeCtx>>>>
|
Mapping from a CFG vertex to its incoming definitions.
|
Full Usage:
this.PerVertexOutgoingDefs
Returns: Dictionary<(IVertex<LowUIRBasicBlock> * 'ExeCtx), Map<VarKind, Set<SensitiveVarPoint<'ExeCtx>>>>
|
Mapping from a CFG vertex to its outgoing definitions.
|
Full Usage:
this.PerVertexPossibleExeCtxs
Returns: Dictionary<IVertex<LowUIRBasicBlock>, HashSet<'ExeCtx>>
|
|
Full Usage:
this.PerVertexStackPointerInfos
Returns: Dictionary<(IVertex<LowUIRBasicBlock> * 'ExeCtx), (Lattice * Lattice)>
|
|
Full Usage:
this.Reset
|
Reset this state. |
|
|
|
|
|
|
|
Mapping from a program point to `StmtOfBBL`, which is a pair of a Low-UIR statement and its corresponding vertex that contains the statement.
|
|
|
Full Usage:
this.UseDefMap
Returns: Dictionary<SensitiveVarPoint<'ExeCtx>, Set<SensitiveVarPoint<'ExeCtx>>>
|
Mapping from a variable use to its definition.
|
|
Returns a sequence of vertices that are pending for removal.
|
B2R2