Module Std.Symtab

Reconstructed symbol table.

This data structure holds information about functions that were found in the executable.

type t = symtab

symbol table

val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
type fn = string * block * cfg

(name,entry,graph) a simple representation of a function

val sexp_of_fn : fn -> Ppx_sexp_conv_lib.Sexp.t
val empty : t

empty symbol table

create disasm calls creates the symbol table given the disassembly state disasm and callgraph calls.

  • since 2.6.0
val add_symbol : t -> fn -> t

add_symbol table name entry blocks extends table with a new symbol with a given name, entry block and body blocks.

val remove : t -> fn -> t

remove table fn removes symbol fn from table

val find_by_name : t -> string -> fn option

find_by_name symbols name finds a symbol with a given name.

val find_by_start : t -> addr -> fn option

find_by_start symbols addr finds a symbol that starts from a given address

val owners : t -> addr -> fn list

owners addr return a list of functions that owns addr

val dominators : t -> mem -> fn list

dominators syms mem returns a list of functions that dominates over provided memory region mem

val intersecting : t -> mem -> fn list

intersecting_mem syms mem returns a list of functions, that resides in memory region mem

val to_sequence : t -> fn seq

to_sequence symtab returns a sequence of functions

val span : fn -> unit memmap

span fn returns a memory map of a region occupied by a function fn

val callee : t -> addr -> string option

callee symtab address returns a callee which is called from a block with the given address.

  • since 2.5.0