Header menu logo B2R2

B2R2.MiddleEnd.ControlFlowGraph Namespace

Type/Module Description

AbstractBlockAccessException

This exception is thrown when an abstract basic block is accessed as if it is a regular block.

CallBasicBlock

Basic block type for a call graph (CallCFG).

CallCFG

Call graph, where each node represents a function. This is essentially a wrapper class of `IDiGraph`, which provides a uniform interface for both imperative and persistent graphs.

CFGEdgeKind (Module)

CFGEdgeKind (Type)

CFG edge types. We distinguish CFG edges by classifying them into several different kinds.

DisasmBasicBlock

Basic block type for a disassembly-based CFG (DisasmCFG).

DisasmCFG

Disassembly-based CFG, where each node contains disassembly code. This is the most user-friendly CFG, although we do not use this for internal analyses. Therefore, this class does not provide ways to modify the CFG.

FunctionAbstraction<'Stmt>

An abstract information about a function to be used in an intra-procedural CFG. This exists per function call, not per function definition. Therefore, one function can have multiple `FunctionAbstraction` instances.

IAbstractable<'Stmt>

Interface for an abstractable basic block.

IAddressable

Interface for an addressable basic block.

ICallBasicBlock

IDisasmBasicBlock

Interface for a basic block containing disassembled instructions.

IInstructionAccessible

Interface for a basic block containing a sequence of instructions.

ILowUIRAccessible

Interface for a basic block, which contains a sequence of lifted IR statements.

ILowUIRBasicBlock

Interface for a basic block containing a sequence of lifted LowUIR statements.

ISSAAccessible

Interface for a basic block containing a sequence of SSA statements.

ISSABasicBlock

Interafce for a basic block containing a sequence of SSA statements.

IVisualizable

Interface for a visualizable basic block.

LiftedInstruction

A lifted instruction.

LowUIRBasicBlock

Basic block type for IR-level CFGs.

LowUIRCFG

CFG where each node is an IR-level basic block. This is the main data structure that we use to represent the control flow graph of a function. This is essentially a wrapper class of `IDiGraph`, which provides a uniform interface for both imperative and persistent graphs.

NonReturningStatus

The result of non-returning function analysis.

Rundown<'Stmt>

A rundown of a function is really just an array of statements, summarizing the function.

SSABasicBlock

Basic block type for an SSA-based CFG (SSACFG). It holds an array of (ProgramPoint * Stmt).

SSACFG

SSA-based CFG, where each node contains SSA-based basic blocks. This is a wrapper class of `IDiGraph`, which provides a uniform interface for both imperative and persistent graphs.

Type something to start searching.