Skip to main content

_module_data_t

Struct _module_data_t 

Source
#[repr(C)]
pub struct _module_data_t { pub __bindgen_anon_1: _module_data_t__bindgen_ty_1, pub end: app_pc, pub entry_point: app_pc, pub flags: uint, pub names: module_names_t, pub full_path: *mut c_char, pub file_version: version_number_t, pub product_version: version_number_t, pub checksum: uint, pub timestamp: uint, pub module_internal_size: usize, pub preferred_base: app_pc, }
Expand description

Holds information about a loaded module. \note On Linux the start address can be cast to an Elf32_Ehdr or Elf64_Ehdr. \note On Windows the start address can be cast to an IMAGE_DOS_HEADER for use in finding the IMAGE_NT_HEADER and its OptionalHeader. The OptionalHeader can be used to walk the module sections (among other things). See WINNT.H. \note On MacOS the start address can be cast to mach_header or mach_header_64. \note When accessing any memory inside the module (including header fields) user is responsible for guarding against corruption and the possibility of the module being unmapped.

Fields§

§__bindgen_anon_1: _module_data_t__bindgen_ty_1§end: app_pc

Ending address of this module. If the module is not contiguous (which is common on MacOS, and can happen on Linux), this is the highest address of the module, but there can be gaps in between start and end that are either unmapped or that contain other mappings or libraries. Use the segments array to examine each mapped region, and use dr_module_contains_addr() as a convenience routine, rather than checking against [start..end).

§entry_point: app_pc

< entry point for this module as specified in the headers

§flags: uint

< Reserved, set to 0

§names: module_names_t

< struct containing name(s) for this module; use dr_module_preferred_name() to get the preferred name for this module

§full_path: *mut c_char

< full path to the file backing this module

§file_version: version_number_t

< file version number from .rsrc section

§product_version: version_number_t

< product version number from .rsrc section

§checksum: uint

< module checksum from the PE headers

§timestamp: uint

< module timestamp from the PE headers

§module_internal_size: usize

Module internal size (from PE headers SizeOfImage).

§preferred_base: app_pc

< The preferred base address of the module.

Trait Implementations§

Source§

impl Clone for _module_data_t

Source§

fn clone(&self) -> _module_data_t

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for _module_data_t

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

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

Source§

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 T
where U: TryFrom<T>,

Source§

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V