#[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_pcEnding 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: usizeModule 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
impl Clone for _module_data_t
Source§fn clone(&self) -> _module_data_t
fn clone(&self) -> _module_data_t
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for _module_data_t
Auto Trait Implementations§
impl Freeze for _module_data_t
impl RefUnwindSafe for _module_data_t
impl !Send for _module_data_t
impl !Sync for _module_data_t
impl Unpin for _module_data_t
impl UnsafeUnpin for _module_data_t
impl UnwindSafe for _module_data_t
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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