Module panopticon_core::function [] [src]

Functions are a graph of BasicBlocks connected with conditional jumps.

Functions have an entry point, a (non-unique) name and an unique identifier. Functions do not share basic blocks. In case functions overlap in the binary, the basic blocks are copied by the disassembler.

Functions have the concept of unresolved basic blocks. These are inserted into the graph if a indirect branch could not be resolved. If disassembly failes for example because an unknown instruction was found, an error node is inserted into the graph to allow displaying a message on the front-end.

Structs

BasicBlockIterator

An iterator over every BasicBlock in a Function

Function

A set of basic blocks connected by conditional jumps

Enums

ControlFlowTarget

Node of the function graph.

FunctionKind

The kind of function this is, to distinguish plt stubs from regular functions.

Type Definitions

ControlFlowEdge

Stable reference to an edge in the ControlFlowGraph

ControlFlowGraph

Graph of basic blocks and jumps

ControlFlowRef

Stable reference to a node in the ControlFlowGraph