Header menu logo B2R2

State<'Lattice> Type

Represents a state used in LowUIR-based sparse dataflow analysis.

Constructors

Constructor Description

State(hdl, lattice, scheme)

Full Usage: State(hdl, lattice, scheme)

Parameters:
Returns: State<'Lattice>
hdl : BinHandle
lattice : ILattice<'Lattice>
scheme : IScheme<'Lattice>
Returns: State<'Lattice>

Instance members

Instance member Description

this.BinHandle

Full Usage: this.BinHandle

Returns: BinHandle

Binary handle associated with this state.

Returns: BinHandle

this.ClearPendingVertices

Full Usage: this.ClearPendingVertices

Clear the pending vertices.

this.DefUseMap

Full Usage: this.DefUseMap

Returns: Dictionary<VarPoint, HashSet<VarPoint>>

Mapping from a variable def to its uses.

Returns: Dictionary<VarPoint, HashSet<VarPoint>>

this.DequeueVertexForRemoval

Full Usage: this.DequeueVertexForRemoval

Returns: bool * IVertex<LowUIRBasicBlock>

Dequeue the vertex for removal. When there is no vertex to remove, it returns `false`.

Returns: bool * IVertex<LowUIRBasicBlock>

this.DomainSubState

Full Usage: this.DomainSubState

Returns: ISubstate<'Lattice>

Sub-state for the user's domain.

Returns: ISubstate<'Lattice>

this.EvaluateStackPointerExpr

Full Usage: this.EvaluateStackPointerExpr

Parameters:
Returns: Lattice

Evaluate the given expression at the given program point in the stack-pointer domain in order to retrieve a concrete stack pointer value if exists.

pp : ProgramPoint
e : Expr
Returns: Lattice

this.GetAbsValue

Full Usage: this.GetAbsValue

Parameters:
Returns: 'Lattice
v : Variable
Returns: 'Lattice

this.GetStmtInfos

Full Usage: this.GetStmtInfos

Parameters:
Returns: StmtInfo[]

Return the array of StmtInfos of the given vertex.

v : IVertex<LowUIRBasicBlock>
Returns: StmtInfo[]

this.GetTerminatorInSSA

Full Usage: this.GetTerminatorInSSA

Parameters:
Returns: Stmt

Return the terminator statment of the given vertex in an SSA form.

v : IVertex<LowUIRBasicBlock>
Returns: Stmt

this.IsVertexPending

Full Usage: this.IsVertexPending

Parameters:
Returns: bool

Check if the given vertex is pending for processing.

v : IVertex<LowUIRBasicBlock>
Returns: bool

this.MarkVertexAsPending

Full Usage: this.MarkVertexAsPending

Parameters:

Mark the given vertex as pending, which means that the vertex needs to be processed.

v : IVertex<LowUIRBasicBlock>

this.MarkVertexAsRemoval

Full Usage: this.MarkVertexAsRemoval

Parameters:

Mark the given vertex as removal, which means that the vertex needs to be removed.

v : IVertex<LowUIRBasicBlock>

this.PendingVertices

Full Usage: this.PendingVertices

Returns: IEnumerable<IVertex<LowUIRBasicBlock>>

Currently pending vertices for processing.

Returns: IEnumerable<IVertex<LowUIRBasicBlock>>

this.PerVertexIncomingDefs

Full Usage: this.PerVertexIncomingDefs

Returns: Dictionary<IVertex<LowUIRBasicBlock>, Map<VarKind, VarPoint>>

Mapping from a CFG vertex to its incoming definitions.

Returns: Dictionary<IVertex<LowUIRBasicBlock>, Map<VarKind, VarPoint>>

this.PerVertexOutgoingDefs

Full Usage: this.PerVertexOutgoingDefs

Returns: Dictionary<IVertex<LowUIRBasicBlock>, Map<VarKind, VarPoint>>

Mapping from a CFG vertex to its outgoing definitions.

Returns: Dictionary<IVertex<LowUIRBasicBlock>, Map<VarKind, VarPoint>>

this.PhiInfos

Full Usage: this.PhiInfos

Returns: Dictionary<IVertex<LowUIRBasicBlock>, PhiInfo>

Mapping from a CFG vertex to its phi information.

Returns: Dictionary<IVertex<LowUIRBasicBlock>, PhiInfo>

this.Reset

Full Usage: this.Reset

Reset this state.

this.SSAVarToVp

Full Usage: this.SSAVarToVp

Returns: Dictionary<Variable, VarPoint>

Mapping from a SSA variable to its corresponding variable point.

Returns: Dictionary<Variable, VarPoint>

this.Scheme

Full Usage: this.Scheme

Returns: IScheme<'Lattice>

Scheme used for this data flow analysis.

Returns: IScheme<'Lattice>

this.StmtOfBBLs

Full Usage: this.StmtOfBBLs

Returns: Dictionary<ProgramPoint, StmtOfBBL>

Mapping from a program point to `StmtOfBBL`, which is a pair of a Low-UIR statement and its corresponding vertex that contains the statement.

Returns: Dictionary<ProgramPoint, StmtOfBBL>

this.TryGetSSADef

Full Usage: this.TryGetSSADef

Parameters:
Returns: Stmt option

Try to get the definition of the given SSA variable in an SSA form.

v : Variable
Returns: Stmt option

this.UseDefMap

Full Usage: this.UseDefMap

Returns: Dictionary<VarPoint, VarPoint>

Mapping from a variable use to its definition.

Returns: Dictionary<VarPoint, VarPoint>

Type something to start searching.