Trait findshlibs::SharedLibrary [−][src]
pub trait SharedLibrary: Sized + Debug {
type Segment: Segment<SharedLibrary = Self>;
type SegmentIter: Debug + Iterator<Item = Self::Segment>;
fn name(&self) -> &OsStr;
fn id(&self) -> Option<SharedLibraryId>;
fn segments(&self) -> Self::SegmentIter;
fn virtual_memory_bias(&self) -> Bias;
fn each<F, C>(f: F)
where
F: FnMut(&Self) -> C,
C: Into<IterationControl>;
fn debug_name(&self) -> Option<&OsStr> { ... }
fn debug_id(&self) -> Option<SharedLibraryId> { ... }
fn actual_load_addr(&self) -> Avma { ... }
fn stated_load_addr(&self) -> Svma { ... }
fn len(&self) -> usize { ... }
fn avma_to_svma(&self, address: Avma) -> Svma { ... }
}
Expand description
A trait representing a shared library that is loaded in this process.
Associated Types
The associated segment type for this shared library.
type SegmentIter: Debug + Iterator<Item = Self::Segment>
type SegmentIter: Debug + Iterator<Item = Self::Segment>
An iterator over a shared library’s segments.
Required methods
fn id(&self) -> Option<SharedLibraryId>
fn id(&self) -> Option<SharedLibraryId>
Get the code-id of this shared library if available.
fn segments(&self) -> Self::SegmentIter
fn segments(&self) -> Self::SegmentIter
Iterate over this shared library’s segments.
fn virtual_memory_bias(&self) -> Bias
fn virtual_memory_bias(&self) -> Bias
Get the bias of this shared library.
See the module documentation for details.
Provided methods
fn debug_name(&self) -> Option<&OsStr>
fn debug_name(&self) -> Option<&OsStr>
Get the name of the debug file with this shared library if there is one.
fn debug_id(&self) -> Option<SharedLibraryId>
fn debug_id(&self) -> Option<SharedLibraryId>
Get the debug-id of this shared library if available.
fn actual_load_addr(&self) -> Avma
fn actual_load_addr(&self) -> Avma
Returns the address of where the library is loaded into virtual memory.
This address maps to the Avma
of the first segment loaded into
memory. Depending on the platform, this segment may not contain code.
fn stated_load_addr(&self) -> Svma
fn stated_load_addr(&self) -> Svma
Returns the address of where the library prefers to be loaded into virtual memory.
This address maps to the Svma
of the first segment loaded into
memory. Depending on the platform, this segment may not contain code.
Returns the size of the image.
This typically is the size of the executable code segment. This is normally used by server side symbolication systems to determine when an IP no longer falls into an image.
fn avma_to_svma(&self, address: Avma) -> Svma
fn avma_to_svma(&self, address: Avma) -> Svma
Given an AVMA within this shared library, convert it back to an SVMA by removing this shared library’s bias.