Struct SymbolTable

struct SymbolTable<'data, R = &'data [u8], Coff = pe::ImageFileHeader> { ... }
where
    R: ReadRef<'data>,
    Coff: CoffHeader

A table of symbol entries in a COFF or PE file.

Also includes the string table used for the symbol names.

Returned by CoffHeader::symbols and ImageNtHeaders::symbols.

Implementations

impl<'data, R: ReadRef<'data>, Coff: CoffHeader> SymbolTable<'data, R, Coff>

fn parse(header: &Coff, data: R) -> Result<Self>

Read the symbol table.

fn strings(self: &Self) -> StringTable<'data, R>

Return the string table used for the symbol names.

fn is_empty(self: &Self) -> bool

Return true if the symbol table is empty.

fn len(self: &Self) -> usize

The number of symbol table entries.

This includes auxiliary symbol table entries.

fn iter<'table>(self: &'table Self) -> SymbolIterator<'data, 'table, R, Coff>

Iterate over the symbols.

fn symbol(self: &Self, index: SymbolIndex) -> Result<&'data <Coff as >::ImageSymbol>

Return the symbol table entry at the given index.

fn aux_function(self: &Self, index: SymbolIndex) -> Result<&'data ImageAuxSymbolFunction>

Return the auxiliary function symbol for the symbol table entry at the given index.

Note that the index is of the symbol, not the first auxiliary record.

fn aux_section(self: &Self, index: SymbolIndex) -> Result<&'data ImageAuxSymbolSection>

Return the auxiliary section symbol for the symbol table entry at the given index.

Note that the index is of the symbol, not the first auxiliary record.

fn aux_file_name(self: &Self, index: SymbolIndex, aux_count: u8) -> Result<&'data [u8]>

Return the auxiliary file name for the symbol table entry at the given index.

Note that the index is of the symbol, not the first auxiliary record.

fn get<T: Pod>(self: &Self, index: SymbolIndex, offset: usize) -> Result<&'data T>

Return the symbol table entry or auxiliary record at the given index and offset.

fn map<Entry: SymbolMapEntry, F: Fn(&'data <Coff as >::ImageSymbol) -> Option<Entry>>(self: &Self, f: F) -> SymbolMap<Entry>

Construct a map from addresses to a user-defined map entry.

impl<'data, R, Coff> Debug for SymbolTable<'data, R, Coff>

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl<'data, R, Coff> Freeze for SymbolTable<'data, R, Coff>

impl<'data, R, Coff> RefUnwindSafe for SymbolTable<'data, R, Coff>

impl<'data, R, Coff> Send for SymbolTable<'data, R, Coff>

impl<'data, R, Coff> Sync for SymbolTable<'data, R, Coff>

impl<'data, R, Coff> Unpin for SymbolTable<'data, R, Coff>

impl<'data, R, Coff> UnsafeUnpin for SymbolTable<'data, R, Coff>

impl<'data, R, Coff> UnwindSafe for SymbolTable<'data, R, Coff>

impl<'data, R: ReadRef<'data>, Coff: CoffHeader> Default for SymbolTable<'data, R, Coff>

fn default() -> Self

impl<T> Any for SymbolTable<'data, R, Coff>

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for SymbolTable<'data, R, Coff>

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for SymbolTable<'data, R, Coff>

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> From for SymbolTable<'data, R, Coff>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T, U> Into for SymbolTable<'data, R, Coff>

fn into(self: Self) -> U

Calls U::from(self).

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

impl<T, U> TryFrom for SymbolTable<'data, R, Coff>

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for SymbolTable<'data, R, Coff>

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>