[][src]Module goblin::mach::symbols

"Nlist" style symbols in this binary - beware, like most symbol tables in most binary formats, they are strippable, and should not be relied upon, see the imports and exports modules for something more permanent.

Symbols are essentially a type, offset, and the symbol name

Structs

Nlist
Nlist32
Nlist64
SymbolIterator
Symbols

A zero-copy "nlist" style symbol table ("stab"), including the string table

SymbolsCtx

Constants

MAX_SECT

1 thru 255 inclusive

NLIST_TYPE_GLOBAL
NLIST_TYPE_LOCAL
NLIST_TYPE_MASK
NO_SECT

symbol is not in any section

N_ABS

absolute, n_sect == NO_SECT

N_AST
N_BCOMM
N_BINCL
N_BNSYM
N_DESC_DISCARDED

Sometimes used by the dynamic linker at runtime in a fully linked image. Do not set this bit in a fully linked image.

N_ECOML
N_ECOMM
N_EINCL
N_ENSYM
N_ENTRY
N_EXCL
N_EXT

external symbol bit, set for external symbols

N_FNAME
N_FUN
N_GSYM
N_INDR

indirect

N_LBRAC
N_LCSYM
N_LENG
N_LSYM
N_NO_DEAD_STRIP

When set in a relocatable object file (file type MH_OBJECT) on a defined symbol, indicates to the static linker to never dead-strip the symbol.

N_OLEVEL
N_OPT
N_OSO
N_PARAMS
N_PBUD

prebound undefined (defined in a dylib)

N_PC
N_PEXT

private external symbol bit

N_PSYM
N_RBRAC
N_RSYM
N_SECT

defined in section number n_sect

N_SLINE
N_SO
N_SOL
N_SSYM
N_STAB

if any of these bits set, a symbolic debugging entry

N_STSYM
N_TYPE

mask for the type bits

N_UNDF

undefined, n_sect == NO_SECT

N_VERSION
N_WEAK_DEF

Indicates that this symbol is a weak definition. If the static linker or the dynamic linker finds another (non-weak) definition for this symbol, the weak definition is ignored. Only symbols in a coalesced section can be marked as a weak definition.

N_WEAK_REF

Indicates that this undefined symbol is a weak reference. If the dynamic linker cannot find a definition for this symbol, it sets the address of this symbol to 0. The static linker sets this symbol given the appropriate weak-linking flags.

REFERENCED_DYNAMICALLY

Must be set for any defined symbol that is referenced by dynamic-loader APIs (such as dlsym and NSLookupSymbolInImage) and not ordinary undefined symbol references. The strip tool uses this bit to avoid removing symbols that must exist: If the symbol has this bit set, strip does not strip it.

REFERENCE_FLAG_DEFINED

This symbol is defined in this module.

REFERENCE_FLAG_PRIVATE_DEFINED

This symbol is defined in this module and is visible only to modules within this shared library.

REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY

This symbol is defined in another module in this file, is a lazy (function) symbol, and is visible only to modules within this shared library.

REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY

This symbol is defined in another module in this file, is a non-lazy (data) symbol, and is visible only to modules within this shared library.

REFERENCE_FLAG_UNDEFINED_LAZY

This symbol is a reference to an external lazy symbol—that is, to a function call.

REFERENCE_FLAG_UNDEFINED_NON_LAZY

This symbol is a reference to an external non-lazy (data) symbol.

REFERENCE_TYPE

Mask for reference flags of n_desc field.

SIZEOF_NLIST_32
SIZEOF_NLIST_64

Functions

n_type_to_str