Type Alias simics_sign::Elf
source · pub(crate) type Elf<'data> = ElfFile<'data, FileHeader64<LittleEndian>>;
Aliased Type§
struct Elf<'data> { /* private fields */ }
Implementations
§impl<'data, Elf, R> ElfFile<'data, Elf, R>where
Elf: FileHeader,
R: ReadRef<'data>,
impl<'data, Elf, R> ElfFile<'data, Elf, R>where
Elf: FileHeader,
R: ReadRef<'data>,
pub fn endian(&self) -> <Elf as FileHeader>::Endian
pub fn endian(&self) -> <Elf as FileHeader>::Endian
Returns the endianness.
pub fn data(&self) -> R
pub fn data(&self) -> R
Returns the raw data.
pub fn raw_header(&self) -> &'data Elf
👎Deprecated: Use elf_header
instead
pub fn raw_header(&self) -> &'data Elf
elf_header
insteadReturns the raw ELF file header.
pub fn raw_segments(&self) -> &'data [<Elf as FileHeader>::ProgramHeader]
👎Deprecated: Use elf_program_headers
instead
pub fn raw_segments(&self) -> &'data [<Elf as FileHeader>::ProgramHeader]
elf_program_headers
insteadReturns the raw ELF segments.
pub fn elf_header(&self) -> &'data Elf
pub fn elf_header(&self) -> &'data Elf
Get the raw ELF file header.
pub fn elf_program_headers(&self) -> &'data [<Elf as FileHeader>::ProgramHeader]
pub fn elf_program_headers(&self) -> &'data [<Elf as FileHeader>::ProgramHeader]
Get the raw ELF program headers.
Returns an empty slice if the file has no program headers.
pub fn elf_section_table(&self) -> &SectionTable<'data, Elf, R>
pub fn elf_section_table(&self) -> &SectionTable<'data, Elf, R>
Get the ELF section table.
Returns an empty section table if the file has no section headers.
pub fn elf_symbol_table(&self) -> &SymbolTable<'data, Elf, R>
pub fn elf_symbol_table(&self) -> &SymbolTable<'data, Elf, R>
Get the ELF symbol table.
Returns an empty symbol table if the file has no symbol table.
pub fn elf_dynamic_symbol_table(&self) -> &SymbolTable<'data, Elf, R>
pub fn elf_dynamic_symbol_table(&self) -> &SymbolTable<'data, Elf, R>
Get the ELF dynamic symbol table.
Returns an empty symbol table if the file has no dynamic symbol table.
pub fn elf_relocation_sections(&self) -> &RelocationSections
pub fn elf_relocation_sections(&self) -> &RelocationSections
Get a mapping for linked relocation sections.
Trait Implementations
§impl<'data, Elf, R> Object<'data> for ElfFile<'data, Elf, R>where
Elf: FileHeader,
R: ReadRef<'data>,
impl<'data, Elf, R> Object<'data> for ElfFile<'data, Elf, R>where
Elf: FileHeader,
R: ReadRef<'data>,
§type Segment<'file> = ElfSegment<'data, 'file, Elf, R>
where
'data: 'file,
ElfFile<'data, Elf, R>: 'file
type Segment<'file> = ElfSegment<'data, 'file, Elf, R> where 'data: 'file, ElfFile<'data, Elf, R>: 'file
A loadable segment in the object file.
§type SegmentIterator<'file> = ElfSegmentIterator<'data, 'file, Elf, R>
where
'data: 'file,
ElfFile<'data, Elf, R>: 'file
type SegmentIterator<'file> = ElfSegmentIterator<'data, 'file, Elf, R> where 'data: 'file, ElfFile<'data, Elf, R>: 'file
An iterator for the loadable segments in the object file.
§type Section<'file> = ElfSection<'data, 'file, Elf, R>
where
'data: 'file,
ElfFile<'data, Elf, R>: 'file
type Section<'file> = ElfSection<'data, 'file, Elf, R> where 'data: 'file, ElfFile<'data, Elf, R>: 'file
A section in the object file.
§type SectionIterator<'file> = ElfSectionIterator<'data, 'file, Elf, R>
where
'data: 'file,
ElfFile<'data, Elf, R>: 'file
type SectionIterator<'file> = ElfSectionIterator<'data, 'file, Elf, R> where 'data: 'file, ElfFile<'data, Elf, R>: 'file
An iterator for the sections in the object file.
§type Comdat<'file> = ElfComdat<'data, 'file, Elf, R>
where
'data: 'file,
ElfFile<'data, Elf, R>: 'file
type Comdat<'file> = ElfComdat<'data, 'file, Elf, R> where 'data: 'file, ElfFile<'data, Elf, R>: 'file
A COMDAT section group in the object file.
§type ComdatIterator<'file> = ElfComdatIterator<'data, 'file, Elf, R>
where
'data: 'file,
ElfFile<'data, Elf, R>: 'file
type ComdatIterator<'file> = ElfComdatIterator<'data, 'file, Elf, R> where 'data: 'file, ElfFile<'data, Elf, R>: 'file
An iterator for the COMDAT section groups in the object file.
§type Symbol<'file> = ElfSymbol<'data, 'file, Elf, R>
where
'data: 'file,
ElfFile<'data, Elf, R>: 'file
type Symbol<'file> = ElfSymbol<'data, 'file, Elf, R> where 'data: 'file, ElfFile<'data, Elf, R>: 'file
A symbol in the object file.
§type SymbolIterator<'file> = ElfSymbolIterator<'data, 'file, Elf, R>
where
'data: 'file,
ElfFile<'data, Elf, R>: 'file
type SymbolIterator<'file> = ElfSymbolIterator<'data, 'file, Elf, R> where 'data: 'file, ElfFile<'data, Elf, R>: 'file
An iterator for symbols in the object file.
§type SymbolTable<'file> = ElfSymbolTable<'data, 'file, Elf, R>
where
'data: 'file,
ElfFile<'data, Elf, R>: 'file
type SymbolTable<'file> = ElfSymbolTable<'data, 'file, Elf, R> where 'data: 'file, ElfFile<'data, Elf, R>: 'file
A symbol table in the object file.
§type DynamicRelocationIterator<'file> = ElfDynamicRelocationIterator<'data, 'file, Elf, R>
where
'data: 'file,
ElfFile<'data, Elf, R>: 'file
type DynamicRelocationIterator<'file> = ElfDynamicRelocationIterator<'data, 'file, Elf, R> where 'data: 'file, ElfFile<'data, Elf, R>: 'file
An iterator for the dynamic relocations in the file. Read more
§fn architecture(&self) -> Architecture
fn architecture(&self) -> Architecture
Get the architecture type of the file.
§fn is_little_endian(&self) -> bool
fn is_little_endian(&self) -> bool
Return true if the file is little endian, false if it is big endian.
§fn segments(&self) -> ElfSegmentIterator<'data, '_, Elf, R>
fn segments(&self) -> ElfSegmentIterator<'data, '_, Elf, R>
Get an iterator for the loadable segments in the file. Read more
§fn section_by_name_bytes<'file>(
&'file self,
section_name: &[u8],
) -> Option<ElfSection<'data, 'file, Elf, R>>
fn section_by_name_bytes<'file>( &'file self, section_name: &[u8], ) -> Option<ElfSection<'data, 'file, Elf, R>>
Like [
Self::section_by_name
], but allows names that are not UTF-8.§fn section_by_index(
&self,
index: SectionIndex,
) -> Result<ElfSection<'data, '_, Elf, R>, Error>
fn section_by_index( &self, index: SectionIndex, ) -> Result<ElfSection<'data, '_, Elf, R>, Error>
Get the section at the given index. Read more
§fn sections(&self) -> ElfSectionIterator<'data, '_, Elf, R>
fn sections(&self) -> ElfSectionIterator<'data, '_, Elf, R>
Get an iterator for the sections in the file.
§fn comdats(&self) -> ElfComdatIterator<'data, '_, Elf, R>
fn comdats(&self) -> ElfComdatIterator<'data, '_, Elf, R>
Get an iterator for the COMDAT section groups in the file.
§fn symbol_by_index(
&self,
index: SymbolIndex,
) -> Result<ElfSymbol<'data, '_, Elf, R>, Error>
fn symbol_by_index( &self, index: SymbolIndex, ) -> Result<ElfSymbol<'data, '_, Elf, R>, Error>
Get the debugging symbol at the given index. Read more
§fn symbols(&self) -> ElfSymbolIterator<'data, '_, Elf, R>
fn symbols(&self) -> ElfSymbolIterator<'data, '_, Elf, R>
Get an iterator for the debugging symbols in the file. Read more
§fn symbol_table(&self) -> Option<ElfSymbolTable<'data, '_, Elf, R>>
fn symbol_table(&self) -> Option<ElfSymbolTable<'data, '_, Elf, R>>
Get the debugging symbol table, if any.
§fn dynamic_symbols(&self) -> ElfSymbolIterator<'data, '_, Elf, R>
fn dynamic_symbols(&self) -> ElfSymbolIterator<'data, '_, Elf, R>
Get an iterator for the dynamic linking symbols in the file. Read more
§fn dynamic_symbol_table(&self) -> Option<ElfSymbolTable<'data, '_, Elf, R>>
fn dynamic_symbol_table(&self) -> Option<ElfSymbolTable<'data, '_, Elf, R>>
Get the dynamic linking symbol table, if any. Read more
§fn dynamic_relocations<'file>(
&'file self,
) -> Option<ElfDynamicRelocationIterator<'data, 'file, Elf, R>>
fn dynamic_relocations<'file>( &'file self, ) -> Option<ElfDynamicRelocationIterator<'data, 'file, Elf, R>>
Get the dynamic relocations for this file. Read more
§fn exports(&self) -> Result<Vec<Export<'data>>, Error>
fn exports(&self) -> Result<Vec<Export<'data>>, Error>
Get the exported symbols that expose both a name and an address. Read more
§fn has_debug_symbols(&self) -> bool
fn has_debug_symbols(&self) -> bool
Return true if the file contains DWARF debug information sections, false if not.
§fn build_id(&self) -> Result<Option<&'data [u8]>, Error>
fn build_id(&self) -> Result<Option<&'data [u8]>, Error>
The build ID from an ELF
NT_GNU_BUILD_ID
note.§fn gnu_debuglink(&self) -> Result<Option<(&'data [u8], u32)>, Error>
fn gnu_debuglink(&self) -> Result<Option<(&'data [u8], u32)>, Error>
The filename and CRC from a
.gnu_debuglink
section.§fn gnu_debugaltlink(&self) -> Result<Option<(&'data [u8], &'data [u8])>, Error>
fn gnu_debugaltlink(&self) -> Result<Option<(&'data [u8], &'data [u8])>, Error>
The filename and build ID from a
.gnu_debugaltlink
section.§fn relative_address_base(&self) -> u64
fn relative_address_base(&self) -> u64
Get the base address used for relative virtual addresses. Read more
§fn sub_architecture(&self) -> Option<SubArchitecture>
fn sub_architecture(&self) -> Option<SubArchitecture>
Get the sub-architecture type of the file if known. Read more
§fn endianness(&self) -> Endianness
fn endianness(&self) -> Endianness
Get the endianness of the file.
§fn section_by_name(&self, section_name: &str) -> Option<Self::Section<'_>>
fn section_by_name(&self, section_name: &str) -> Option<Self::Section<'_>>
Get the section named
section_name
, if such a section exists. Read more§fn symbol_by_name<'file>(
&'file self,
symbol_name: &str,
) -> Option<Self::Symbol<'file>>
fn symbol_by_name<'file>( &'file self, symbol_name: &str, ) -> Option<Self::Symbol<'file>>
Get the symbol named
symbol_name
, if the symbol exists.§fn symbol_by_name_bytes<'file>(
&'file self,
symbol_name: &[u8],
) -> Option<Self::Symbol<'file>>
fn symbol_by_name_bytes<'file>( &'file self, symbol_name: &[u8], ) -> Option<Self::Symbol<'file>>
Like [
Self::symbol_by_name
], but allows names that are not UTF-8.§fn symbol_map(&self) -> SymbolMap<SymbolMapName<'data>>
fn symbol_map(&self) -> SymbolMap<SymbolMapName<'data>>
Construct a map from addresses to symbol names. Read more
§fn object_map(&self) -> ObjectMap<'data>
fn object_map(&self) -> ObjectMap<'data>
Construct a map from addresses to symbol names and object file names. Read more