maat::SymbolManager class

Manager for all symbols in an engine.

❱   Base classes

class Serializable
Virtual interface that serializable classes must implement.

❱   Public functions

void add_symbol(Symbol symbol)
Add a symbol.

auto has_symbol(addr_t addr) -> bool
Return true if address addr has a symbol.

auto is_callback_emulated_function(addr_t addr) -> bool

auto is_missing_function(addr_t addr) -> bool
Return true if addr corresponds to a function that was not loaded and can't be emulated.

auto name(addr_t addr) -> const std::string&
Get symbol name for address addr

auto addr(const std::string& name) -> addr_t
Get address for symbol name

auto get_by_name(const std::string& name) -> const Symbol&
Get symbol name

auto get_by_addr(addr_t addr) -> const Symbol&
Get symbol for address addr

void add_function(addr_t addr, const std::string& name, std::optional<Symbol::args_spec_t> args = std::nullopt)
Add a user defined function symbol.

auto class_uid() const -> serial::uid_t virtual
Return the class uid (see ClassId enum)

void dump(serial::Serializer&) const virtual
Dump the object contents in a serializer stream.

void load(serial::Deserializer&) virtual
Restore an object from a deserializer stream.

❱   Friends

auto operator<<(std::ostream&, const SymbolManager&) -> std::ostream&
Print all symbols to a stream.

❱   Function documentation

bool maat::SymbolManager::is_callback_emulated_function(addr_t addr)

Return true if address addr is actually a callback-emulated function