pub struct DysymtabCommand {
Show 20 fields pub cmd: u32, pub cmdsize: u32, pub ilocalsym: u32, pub nlocalsym: u32, pub iextdefsym: u32, pub nextdefsym: u32, pub iundefsym: u32, pub nundefsym: u32, pub tocoff: u32, pub ntoc: u32, pub modtaboff: u32, pub nmodtab: u32, pub extrefsymoff: u32, pub nextrefsyms: u32, pub indirectsymoff: u32, pub nindirectsyms: u32, pub extreloff: u32, pub nextrel: u32, pub locreloff: u32, pub nlocrel: u32,
}
Expand description

This is the second set of the symbolic information which is used to support the data structures for the dynamically link editor.

The original set of symbolic information in the symtab_command which contains the symbol and string tables must also be present when this load command is present. When this load command is present the symbol table is organized into three groups of symbols:

  • local symbols (static and debugging symbols) - grouped by module
  • defined external symbols - grouped by module (sorted by name if not lib)
  • undefined external symbols (sorted by name if MH_BINDATLOAD is not set, and in order the were seen by the static linker if MH_BINDATLOAD is set)

In this load command there are offsets and counts to each of the three groups of symbols.

This load command contains a the offsets and sizes of the following new symbolic information tables:

  • table of contents
  • module table
  • reference symbol table
  • indirect symbol table

The first three tables above (the table of contents, module table and reference symbol table) are only present if the file is a dynamically linked shared library. For executable and object modules, which are files containing only one module, the information that would be in these three tables is determined as follows:

  • table of contents - the defined external symbols are sorted by name
  • module table - the file contains only one module so everything in the file is part of the module.
  • reference symbol table - is the defined and undefined external symbols

For dynamically linked shared library files this load command also contains offsets and sizes to the pool of relocation entries for all sections separated into two groups:

  • external relocation entries
  • local relocation entries

For executable and object modules the relocation entries continue to hang off the section structures.

Fields

cmd: u32cmdsize: u32ilocalsym: u32

index to local symbols

nlocalsym: u32

number of local symbols

iextdefsym: u32

index to externally defined symbols

nextdefsym: u32

number of externally defined symbols

iundefsym: u32

index to undefined symbols

nundefsym: u32

number of undefined symbols

tocoff: u32

file offset to table of contents

ntoc: u32

number of entries in table of contents

modtaboff: u32

file offset to module table

nmodtab: u32

number of module table entries

extrefsymoff: u32

offset to referenced symbol table

nextrefsyms: u32

number of referenced symbol table entries

indirectsymoff: u32

file offset to the indirect symbol table

nindirectsyms: u32

number of indirect symbol table entries

extreloff: u32

offset to external relocation entries

nextrel: u32

number of external relocation entries

locreloff: u32

offset to local relocation entries

nlocrel: u32

number of local relocation entries

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.