pub struct CompactSymbolTable {
    pub addr: Vec<u32>,
    pub index: Vec<u32>,
    pub buffer: Vec<u8>,
}
Expand description

A “compact” representation of a symbol table. This is a legacy concept used by the Firefox profiler and kept for compatibility purposes. It’s called SymbolTableAsTuple in the profiler code.

The string for the address addrs[i] is std::str::from_utf8(buffer[index[i] as usize .. index[i + 1] as usize])

Fields

addr: Vec<u32>

A sorted array of symbol addresses, as library-relative offsets in bytes, in ascending order.

index: Vec<u32>

Contains positions into buffer. For every address addr[i], index[i] is the position where the string for that address starts in the buffer. Also contains one extra index at the end which is buffer.len(). index.len() == addr.len() + 1

buffer: Vec<u8>

A buffer of bytes that contains all strings from this symbol table, in the order of the addresses they correspond to, in utf-8 encoded form, all concatenated together.

Trait Implementations

Create a SymbolicationResult object based on a full symbol map. Only called if result_kind is SymbolicationResultKind::AllSymbols. Read more

Create a SymbolicationResult object based on a set of addresses. Only called if result_kind is SymbolicationResultKind::SymbolsForAddresses. The data for each address will be supplied by subsequent calls to add_address_symbol and potentially add_address_debug_info. Read more

Called to supply the symbol name for a symbol. Only called if result_kind is SymbolicationResultKind::SymbolsForAddresses, and only on objects constructed by a call to for_addresses. address is the address that the consumer wants to look up, and may fall anywhere inside a function. symbol_address is the closest (<= address) symbol address. Read more

Called to supply debug info for the address. Only called if result_kind is SymbolicationResultKind::SymbolsForAddresses { with_debug_info: true }. Read more

Supplies the total number of symbols in this binary. Only called if result_kind is SymbolicationResultKind::SymbolsForAddresses, and only on objects constructed by a call to for_addresses. Read more

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 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.