Struct object::read::elf::ElfFile [−][src]
pub struct ElfFile<'data, Elf, R = &'data [u8]> where
Elf: FileHeader,
R: ReadRef<'data>, { /* fields omitted */ }
A partially parsed ELF file.
Most of the functionality of this type is provided by the Object trait implementation.
Implementations
impl<'data, Elf, R> ElfFile<'data, Elf, R> where
Elf: FileHeader,
R: ReadRef<'data>, [src]
impl<'data, Elf, R> ElfFile<'data, Elf, R> where
Elf: FileHeader,
R: ReadRef<'data>, [src]pub fn parse(data: R) -> Result<Self>[src]
Parse the raw ELF file data.
pub fn endian(&self) -> Elf::Endian[src]
Returns the endianness.
pub fn data(&self) -> R[src]
Returns the raw data.
pub fn raw_header(&self) -> &'data Elf[src]
Returns the raw ELF file header.
pub fn raw_segments(&self) -> &'data [Elf::ProgramHeader][src]
Returns the raw ELF segments.
Trait Implementations
impl<'data, Elf: Debug, R: Debug> Debug for ElfFile<'data, Elf, R> where
Elf: FileHeader,
R: ReadRef<'data>,
Elf::Endian: Debug,
Elf::ProgramHeader: Debug, [src]
impl<'data, Elf: Debug, R: Debug> Debug for ElfFile<'data, Elf, R> where
Elf: FileHeader,
R: ReadRef<'data>,
Elf::Endian: Debug,
Elf::ProgramHeader: Debug, [src]impl<'data, 'file, Elf, R> Object<'data, 'file> for ElfFile<'data, Elf, R> where
'data: 'file,
Elf: FileHeader,
R: 'file + ReadRef<'data>, [src]
impl<'data, 'file, Elf, R> Object<'data, 'file> for ElfFile<'data, Elf, R> where
'data: 'file,
Elf: FileHeader,
R: 'file + ReadRef<'data>, [src]type Segment = ElfSegment<'data, 'file, Elf, R>
A segment in the object file.
type SegmentIterator = ElfSegmentIterator<'data, 'file, Elf, R>
An iterator over the segments in the object file.
type Section = ElfSection<'data, 'file, Elf, R>
A section in the object file.
type SectionIterator = ElfSectionIterator<'data, 'file, Elf, R>
An iterator over the sections in the object file.
type Comdat = ElfComdat<'data, 'file, Elf, R>
A COMDAT section group in the object file.
type ComdatIterator = ElfComdatIterator<'data, 'file, Elf, R>
An iterator over the COMDAT section groups in the object file.
type Symbol = ElfSymbol<'data, 'file, Elf>
A symbol in the object file.
type SymbolIterator = ElfSymbolIterator<'data, 'file, Elf>
An iterator over symbols in the object file.
type SymbolTable = ElfSymbolTable<'data, 'file, Elf>
A symbol table in the object file.
type DynamicRelocationIterator = ElfDynamicRelocationIterator<'data, 'file, Elf, R>
An iterator over dynamic relocations in the file. Read more
fn architecture(&self) -> Architecture[src]
fn is_little_endian(&self) -> bool[src]
fn is_64(&self) -> bool[src]
fn segments(&'file self) -> ElfSegmentIterator<'data, 'file, Elf, R>ⓘNotable traits for ElfSegmentIterator<'data, 'file, Elf, R>
impl<'data, 'file, Elf, R> Iterator for ElfSegmentIterator<'data, 'file, Elf, R> where
Elf: FileHeader,
R: ReadRef<'data>, type Item = ElfSegment<'data, 'file, Elf, R>;[src]
Notable traits for ElfSegmentIterator<'data, 'file, Elf, R>
impl<'data, 'file, Elf, R> Iterator for ElfSegmentIterator<'data, 'file, Elf, R> where
Elf: FileHeader,
R: ReadRef<'data>, type Item = ElfSegment<'data, 'file, Elf, R>;fn section_by_name(
&'file self,
section_name: &str
) -> Option<ElfSection<'data, 'file, Elf, R>>[src]
&'file self,
section_name: &str
) -> Option<ElfSection<'data, 'file, Elf, R>>
fn section_by_index(
&'file self,
index: SectionIndex
) -> Result<ElfSection<'data, 'file, Elf, R>>[src]
&'file self,
index: SectionIndex
) -> Result<ElfSection<'data, 'file, Elf, R>>
fn sections(&'file self) -> ElfSectionIterator<'data, 'file, Elf, R>ⓘNotable traits for ElfSectionIterator<'data, 'file, Elf, R>
impl<'data, 'file, Elf, R> Iterator for ElfSectionIterator<'data, 'file, Elf, R> where
Elf: FileHeader,
R: ReadRef<'data>, type Item = ElfSection<'data, 'file, Elf, R>;[src]
Notable traits for ElfSectionIterator<'data, 'file, Elf, R>
impl<'data, 'file, Elf, R> Iterator for ElfSectionIterator<'data, 'file, Elf, R> where
Elf: FileHeader,
R: ReadRef<'data>, type Item = ElfSection<'data, 'file, Elf, R>;fn comdats(&'file self) -> ElfComdatIterator<'data, 'file, Elf, R>ⓘNotable traits for ElfComdatIterator<'data, 'file, Elf, R>
impl<'data, 'file, Elf, R> Iterator for ElfComdatIterator<'data, 'file, Elf, R> where
Elf: FileHeader,
R: ReadRef<'data>, type Item = ElfComdat<'data, 'file, Elf, R>;[src]
Notable traits for ElfComdatIterator<'data, 'file, Elf, R>
impl<'data, 'file, Elf, R> Iterator for ElfComdatIterator<'data, 'file, Elf, R> where
Elf: FileHeader,
R: ReadRef<'data>, type Item = ElfComdat<'data, 'file, Elf, R>;fn symbol_by_index(
&'file self,
index: SymbolIndex
) -> Result<ElfSymbol<'data, 'file, Elf>>[src]
&'file self,
index: SymbolIndex
) -> Result<ElfSymbol<'data, 'file, Elf>>
fn symbols(&'file self) -> ElfSymbolIterator<'data, 'file, Elf>ⓘNotable traits for ElfSymbolIterator<'data, 'file, Elf>
impl<'data, 'file, Elf: FileHeader> Iterator for ElfSymbolIterator<'data, 'file, Elf> type Item = ElfSymbol<'data, 'file, Elf>;[src]
Notable traits for ElfSymbolIterator<'data, 'file, Elf>
impl<'data, 'file, Elf: FileHeader> Iterator for ElfSymbolIterator<'data, 'file, Elf> type Item = ElfSymbol<'data, 'file, Elf>;fn symbol_table(&'file self) -> Option<ElfSymbolTable<'data, 'file, Elf>>[src]
fn dynamic_symbols(&'file self) -> ElfSymbolIterator<'data, 'file, Elf>ⓘNotable traits for ElfSymbolIterator<'data, 'file, Elf>
impl<'data, 'file, Elf: FileHeader> Iterator for ElfSymbolIterator<'data, 'file, Elf> type Item = ElfSymbol<'data, 'file, Elf>;[src]
Notable traits for ElfSymbolIterator<'data, 'file, Elf>
impl<'data, 'file, Elf: FileHeader> Iterator for ElfSymbolIterator<'data, 'file, Elf> type Item = ElfSymbol<'data, 'file, Elf>;fn dynamic_symbol_table(
&'file self
) -> Option<ElfSymbolTable<'data, 'file, Elf>>[src]
&'file self
) -> Option<ElfSymbolTable<'data, 'file, Elf>>
fn dynamic_relocations(
&'file self
) -> Option<ElfDynamicRelocationIterator<'data, 'file, Elf, R>>[src]
&'file self
) -> Option<ElfDynamicRelocationIterator<'data, 'file, Elf, R>>
fn imports(&self) -> Result<Vec<Import<'data>>>[src]
Get the imported symbols.
fn exports(&self) -> Result<Vec<Export<'data>>>[src]
Get the exported symbols.
fn has_debug_symbols(&self) -> bool[src]
fn build_id(&self) -> Result<Option<&'data [u8]>>[src]
fn gnu_debuglink(&self) -> Result<Option<(&'data [u8], u32)>>[src]
fn gnu_debugaltlink(&self) -> Result<Option<(&'data [u8], &'data [u8])>>[src]
fn entry(&self) -> u64[src]
fn flags(&self) -> FileFlags[src]
fn endianness(&self) -> Endianness[src]
fn symbol_map(&'file self) -> SymbolMap<SymbolMapName<'data>>[src]
fn object_map(&'file self) -> ObjectMap<'data>[src]
fn mach_uuid(&self) -> Result<Option<[u8; 16]>>[src]
Auto Trait Implementations
impl<'data, Elf, R> RefUnwindSafe for ElfFile<'data, Elf, R> where
Elf: RefUnwindSafe,
R: RefUnwindSafe,
<Elf as FileHeader>::Endian: RefUnwindSafe,
<Elf as FileHeader>::ProgramHeader: RefUnwindSafe,
<Elf as FileHeader>::SectionHeader: RefUnwindSafe,
<Elf as FileHeader>::Sym: RefUnwindSafe,
impl<'data, Elf, R> RefUnwindSafe for ElfFile<'data, Elf, R> where
Elf: RefUnwindSafe,
R: RefUnwindSafe,
<Elf as FileHeader>::Endian: RefUnwindSafe,
<Elf as FileHeader>::ProgramHeader: RefUnwindSafe,
<Elf as FileHeader>::SectionHeader: RefUnwindSafe,
<Elf as FileHeader>::Sym: RefUnwindSafe, impl<'data, Elf, R> Send for ElfFile<'data, Elf, R> where
Elf: Sync,
R: Send,
<Elf as FileHeader>::Endian: Send,
<Elf as FileHeader>::ProgramHeader: Sync,
<Elf as FileHeader>::SectionHeader: Sync,
<Elf as FileHeader>::Sym: Sync,
impl<'data, Elf, R> Send for ElfFile<'data, Elf, R> where
Elf: Sync,
R: Send,
<Elf as FileHeader>::Endian: Send,
<Elf as FileHeader>::ProgramHeader: Sync,
<Elf as FileHeader>::SectionHeader: Sync,
<Elf as FileHeader>::Sym: Sync, impl<'data, Elf, R> Sync for ElfFile<'data, Elf, R> where
Elf: Sync,
R: Sync,
<Elf as FileHeader>::Endian: Sync,
<Elf as FileHeader>::ProgramHeader: Sync,
<Elf as FileHeader>::SectionHeader: Sync,
<Elf as FileHeader>::Sym: Sync,
impl<'data, Elf, R> Sync for ElfFile<'data, Elf, R> where
Elf: Sync,
R: Sync,
<Elf as FileHeader>::Endian: Sync,
<Elf as FileHeader>::ProgramHeader: Sync,
<Elf as FileHeader>::SectionHeader: Sync,
<Elf as FileHeader>::Sym: Sync, impl<'data, Elf, R> Unpin for ElfFile<'data, Elf, R> where
R: Unpin,
<Elf as FileHeader>::Endian: Unpin,
impl<'data, Elf, R> Unpin for ElfFile<'data, Elf, R> where
R: Unpin,
<Elf as FileHeader>::Endian: Unpin, impl<'data, Elf, R> UnwindSafe for ElfFile<'data, Elf, R> where
Elf: RefUnwindSafe,
R: UnwindSafe,
<Elf as FileHeader>::Endian: UnwindSafe,
<Elf as FileHeader>::ProgramHeader: RefUnwindSafe,
<Elf as FileHeader>::SectionHeader: RefUnwindSafe,
<Elf as FileHeader>::Sym: RefUnwindSafe,
impl<'data, Elf, R> UnwindSafe for ElfFile<'data, Elf, R> where
Elf: RefUnwindSafe,
R: UnwindSafe,
<Elf as FileHeader>::Endian: UnwindSafe,
<Elf as FileHeader>::ProgramHeader: RefUnwindSafe,
<Elf as FileHeader>::SectionHeader: RefUnwindSafe,
<Elf as FileHeader>::Sym: RefUnwindSafe,