B2R2


CPState<'L> Type

Constant propagation analysis state.

Record fields

Record Field Description

BinHandle

Full Usage: BinHandle

Field type: BinHandle

BinHandle of the current binary.

Field type: BinHandle

CPCore

Full Usage: CPCore

Field type: IConstantPropagationCore<'L>

CP core interface.

Field type: IConstantPropagationCore<'L>

DefaultWordSize

Full Usage: DefaultWordSize

Field type: RegType

Default word size of the current analysis.

Field type: RegType

ExecutableEdges

Full Usage: ExecutableEdges

Field type: HashSet<VertexID * VertexID>

Executable edges from vid to vid. If there's no element for an edge, that means the edge is not executable.

Field type: HashSet<VertexID * VertexID>

ExecutedEdges

Full Usage: ExecutedEdges

Field type: HashSet<VertexID * VertexID>

Executed edges from vid to vid.

Field type: HashSet<VertexID * VertexID>

FlowWorkList

Full Usage: FlowWorkList

Field type: Queue<VertexID * VertexID>

Worklist for blocks.

Field type: Queue<VertexID * VertexID>

MemState

Full Usage: MemState

Field type: Dictionary<SSAMemID, (Map<Addr, 'L> * Set<Addr>)>

SSA mem values. Only store values of constant addresses. The second set contains addresses changed throughout the analysis (after initialization).

Field type: Dictionary<SSAMemID, (Map<Addr, 'L> * Set<Addr>)>

RegState

Full Usage: RegState

Field type: Dictionary<Variable, 'L>

SSA var values.

Field type: Dictionary<Variable, 'L>

SSAEdges

Full Usage: SSAEdges

Field type: EdgeInfo

SSA edges

Field type: EdgeInfo

SSAWorkList

Full Usage: SSAWorkList

Field type: Stack<Variable>

Worklist for SSA stmt, this stack stores a list of def variables, and we will use SSAEdges to find all related SSA statements.

Field type: Stack<Variable>

UninitializedMemAddrs

Full Usage: UninitializedMemAddrs

Field type: HashSet<Addr>

Uninitialized memory addresses found during CP.

Field type: HashSet<Addr>