package bap-std
Symbolizer maps addresses to function names
type t = symbolizer
symbolizer data type
val provide : Bap_knowledge.Knowledge.agent -> t -> unit
provide agent symbolizer
registers symbolizer
in the knowledge base.
This function enables an easy integration of the old symbolizers/information sources infrastructure into the knowledge base representation introduced with BAP 2.0.
A symbolizer is regiestered in the knowledge base through an agent which denotes the level of trustwothiness of the symbolizer.
val providing :
Bap_knowledge.Knowledge.agent ->
t ->
(unit -> 'a Bap_knowledge.knowledge) ->
'a Bap_knowledge.knowledge
providing t scope
provides the information in the specified scope
,
After the scope
function is evaluated the information source is retracted from the knowledge base.
See Bap_knowledge.Knowledge.proposing{proposing
}
.
set_path s
limits the symbolizer applicability only to addresses that belong to a file/compilation unit with the specified path.
val path : t -> string option
path s
is the path to the file that this symbolizer serves.
of_blocks
produces a symbolizer 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.
resolve symbolizer addr
returns a name of function, to which a given address belongs. If the address is not know to the symbolizer, then the name is constructed from an address
chain ss
creates a symbolizer, that will try to resolve an address using each symbolizer in order.
val empty : t
empty
is a symbolizer that knows nothing.
module Factory : Source.Factory.S with type t = t