[][src]Trait object::read::ObjectSegment

pub trait ObjectSegment<'data>: Sealed {
    pub fn address(&self) -> u64;
pub fn size(&self) -> u64;
pub fn align(&self) -> u64;
pub fn file_range(&self) -> (u64, u64);
pub fn data(&self) -> Result<&'data [u8]>;
pub fn data_range(
        &self,
        address: u64,
        size: u64
    ) -> Result<Option<&'data [u8]>>;
pub fn name(&self) -> Result<Option<&str>>; }

A loadable segment defined in an object file.

For ELF, this is a program header with type PT_LOAD. For Mach-O, this is a load command with type LC_SEGMENT or LC_SEGMENT_64.

Required methods

pub fn address(&self) -> u64[src]

Returns the virtual address of the segment.

pub fn size(&self) -> u64[src]

Returns the size of the segment in memory.

pub fn align(&self) -> u64[src]

Returns the alignment of the segment in memory.

pub fn file_range(&self) -> (u64, u64)[src]

Returns the offset and size of the segment in the file.

pub fn data(&self) -> Result<&'data [u8]>[src]

Returns a reference to the file contents of the segment.

The length of this data may be different from the size of the segment in memory.

pub fn data_range(&self, address: u64, size: u64) -> Result<Option<&'data [u8]>>[src]

Return the segment data in the given range.

Returns Ok(None) if the segment does not contain the given range.

pub fn name(&self) -> Result<Option<&str>>[src]

Returns the name of the segment.

Loading content...

Implementors

impl<'data, 'file> ObjectSegment<'data> for CoffSegment<'data, 'file>[src]

impl<'data, 'file> ObjectSegment<'data> for Segment<'data, 'file>[src]

impl<'data, 'file, Elf: FileHeader> ObjectSegment<'data> for ElfSegment<'data, 'file, Elf>[src]

impl<'data, 'file, Mach: MachHeader> ObjectSegment<'data> for MachOSegment<'data, 'file, Mach>[src]

impl<'data, 'file, Pe: ImageNtHeaders> ObjectSegment<'data> for PeSegment<'data, 'file, Pe>[src]

Loading content...