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

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

Returns the virtual address of the segment.

Returns the size of the segment in memory.

Returns the alignment of the segment in memory.

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

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.

Return the segment data in the given range.

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

Returns the name of the segment.

Returns the name of the segment.

Returns an error if the name is not UTF-8.

Return the flags of segment.

Implementors