|
enum class | CATEGORY : uint32_t {
NONE = 0
, LOCAL
, EXTERNAL
, UNDEFINED
,
INDIRECT_ABS
, INDIRECT_LOCAL
} |
| Category of the symbol when the symbol comes from the LC_SYMTAB command. The category is defined according to the LC_DYSYMTAB (DynamicSymbolCommand) command.
|
|
enum class | ORIGIN : uint32_t { UNKNOWN = 0
, DYLD_EXPORT = 1
, DYLD_BIND = 2
, LC_SYMTAB = 3
} |
|
enum class | TYPE : uint32_t {
UNDEFINED = 0x0u
, ABSOLUTE_SYM = 0x2u
, SECTION = 0xeu
, PREBOUND = 0xcu
,
INDIRECT = 0xau
} |
|
template<class T > |
using | output_t = add_pointer_t<decay_t<T>> |
|
template<class T > |
using | output_const_t = add_pointer_t<add_const_t<decay_t<T>>> |
|
|
| Symbol (const details::nlist_32 &cmd) |
|
| Symbol (const details::nlist_64 &cmd) |
|
Symbol & | operator= (Symbol other) |
|
| Symbol (const Symbol &other) |
|
void | swap (Symbol &other) noexcept |
|
uint8_t | raw_type () const |
| Raw value of nlist_xx.n_type
|
|
TYPE | type () const |
| Type as defined by nlist_xx.n_type & N_TYPE
|
|
uint8_t | numberof_sections () const |
| It returns the number of sections in which this symbol can be found. If the symbol can't be found in any section, it returns 0 (NO_SECT)
|
|
uint16_t | description () const |
| Return information about the symbol (SYMBOL_DESCRIPTIONS)
|
|
bool | has_export_info () const |
| True if the symbol is associated with an ExportInfo This value is set when the symbol comes from the Dyld Export trie.
|
|
const ExportInfo * | export_info () const |
| Return the ExportInfo associated with this symbol (or nullptr if not present)
|
|
ExportInfo * | export_info () |
|
bool | has_binding_info () const |
| True if the symbol is associated with a BindingInfo This value is set when the symbol comes from the Dyld symbol bindings.
|
|
const BindingInfo * | binding_info () const |
| Return the BindingInfo associated with this symbol (or nullptr if not present)
|
|
BindingInfo * | binding_info () |
|
std::string | demangled_name () const |
| Try to demangle the symbol or return an empty string if it is not possible.
|
|
bool | is_external () const |
| True if the symbol is defined as an external symbol.
|
|
const DylibCommand * | library () const |
| Return the library in which the symbol is defined. It returns a null pointer if the library can't be resolved.
|
|
DylibCommand * | library () |
|
ORIGIN | origin () const |
| Return the origin of the symbol: from LC_SYMTAB command or from the Dyld information.
|
|
CATEGORY | category () const |
| Category of the symbol according to the LC_DYSYMTAB command.
|
|
void | raw_type (uint8_t type) |
|
void | numberof_sections (uint8_t nbsections) |
|
void | description (uint16_t desc) |
|
void | accept (Visitor &visitor) const override |
|
| Symbol (std::string name) |
|
| Symbol (std::string name, uint64_t value) |
|
| Symbol (std::string name, uint64_t value, uint64_t size) |
|
| Symbol (const Symbol &)=default |
|
Symbol & | operator= (const Symbol &)=default |
|
void | swap (Symbol &other) noexcept |
|
virtual const std::string & | name () const |
| Return the symbol's name.
|
|
virtual std::string & | name () |
|
virtual void | name (std::string name) |
| Set symbol name.
|
|
virtual uint64_t | value () const |
|
virtual void | value (uint64_t value) |
|
virtual uint64_t | size () const |
| This size of the symbol (when applicable)
|
|
virtual void | size (uint64_t value) |
|
void | accept (Visitor &visitor) const override |
| Method so that the visitor can visit us.
|
|
| Object (const Object &other) |
|
Object & | operator= (const Object &other) |
|
template<class T > |
output_t< T > | as () |
|
template<class T > |
output_const_t< T > | as () const |
|
virtual bool | operator== (const Object &other) const |
|
virtual bool | operator!= (const Object &other) const |
|
Class that represents a Symbol in a Mach-O file.
A Mach-O symbol can come from:
- The symbols command (LC_SYMTAB / SymbolCommand)
- The Dyld Export trie
- The Dyld Symbol bindings