package bap-std
Reconstructor is responsible for reconstructing symbol table from a CFG. It should partition a CFG into a set of possibly intersecting functions. See Symtab
module for more information about symbol table and functions.
type t = reconstructor
default name roots
builds a reconstructor from a given function, that maps addresses to function names (see Symbolizer
) and a list of known function starts. The reconstructor will extend the list of function starts with destinations of call instructions found in the CFG. Also, the reconstructor treats every node without input edges as a function start. For each function start builds a function using the following definition of a function:
Function is built from the entry block and every block that is reachable from it without using calls.
of_blocks
produces a reconstructor from a serialized sequence of blocks. Each element of the sequence is deconstructed as (name,ba,ea)
, where name
is a subroutine name, ba
is a virtual address of a block start, and ea
is an address of the block end.
module Factory : Source.Factory.S with type t = t
a factory of reconstructors