struct Cache {
    libraries: Vec<Library>,
    mappings: Vec<(usize, Mapping)>,
}

Fields§

§libraries: Vec<Library>

All known shared libraries that have been loaded.

§mappings: Vec<(usize, Mapping)>

Mappings cache where we retain parsed dwarf information.

This list has a fixed capacity for its entire lifetime which never increases. The usize element of each pair is an index into libraries above where usize::max_value() represents the current executable. The Mapping is corresponding parsed dwarf information.

Note that this is basically an LRU cache and we’ll be shifting things around in here as we symbolize addresses.

Implementations§

source§

impl Cache

source

fn new() -> Cache

source

unsafe fn with_global(f: impl FnOnce(&mut Self))

source

fn avma_to_svma(&self, addr: *const u8) -> Option<(usize, *const u8)>

source

fn mapping_for_lib<'a>( &'a mut self, lib: usize ) -> Option<(&'a mut Context<'a>, &'a Stash)>

Trait Implementations§

source§

impl Default for Cache

source§

fn default() -> Cache

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Cache

§

impl !Send for Cache

§

impl !Sync for Cache

§

impl Unpin for Cache

§

impl UnwindSafe for Cache

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

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

Performs the conversion.