B2R2


B2R2.MiddleEnd.BinGraph Namespace

Type/Module Description

DiGraph<'D, 'E>

Directedg graph inehrited from Graph. This type is mostly used by primary graph algorithms, such as the dominator algorithm. We only expose static members here to make code consistent for both persistent and imperative graphs.

Dominator

DummyDataAccessException

Trying to access dummy node's data

DummyEntry

E<'E>

Edge<'E>

An edge in a directed graph.

EdgeID

Edge ID is a tuple of two node IDs (source node ID, destination node ID).

EdgeNotFoundException

Missing edge.

Graph<'D, 'E, 'G>

The top-level graph data type. This one can be both directed or undirected.

GraphCore<'D, 'E, 'G>

GraphCore is an internal representation for the core graph operations, and this should not be directly accessed by the user.

GraphImplementationType

Either persistent or imperative graph.

ImperativeCore<'D, 'E>

Imperative GraphCore for directed graph (DiGraph).

ImperativeRangedCore<'D, 'E>

Imperative GraphCore for directed graph (DiGraph) that uses AddrRange as key for each vertex, which is useful for managing CFGs of a binary.

ImpVertex<'D>

Imperative vertex.

Loop

MultipleVerticesFoundException

Multiple vertices found when looking for a vertex containing certain data

PersistentCore<'D, 'E>

Persistent GraphCore for directed graph (DiGraph).

PersistentRangedCore<'D, 'E>

Persistent GraphCore for directed graph (DiGraph) that uses AddrRange as a key for each vertex. This is useful for handling CFGs of a binary.

PerVertex<'D>

Persistent vertex.

RangedDiGraph

RangedDiGraph<'D, 'E>

RangedVertexData

SCC

Traversal

V<'V>

Vertex<'V>

A vertex of a graph. The vertex data (v) is optional, and if it is None, we will consider the vertex as a dummy node. Dummy nodes are useful for representing entry/exit node in a CFG.

VertexData (Module)

VertexData (Type)

A data type for vertex. A VertexData should have an ID.

VertexID

A unique ID for a vertex.

VertexNotFoundException

Missing vertex.