pub struct XcoffFile<'data, Xcoff, R = &'data [u8]>where
Xcoff: FileHeader,
R: ReadRef<'data>,{ /* private fields */ }
Expand description
A partially parsed XCOFF file.
Most functionality is provided by the Object
trait implementation.
Implementations§
source§impl<'data, Xcoff, R> XcoffFile<'data, Xcoff, R>where
Xcoff: FileHeader,
R: ReadRef<'data>,
impl<'data, Xcoff, R> XcoffFile<'data, Xcoff, R>where
Xcoff: FileHeader,
R: ReadRef<'data>,
sourcepub fn raw_header(&self) -> &'data Xcoff
pub fn raw_header(&self) -> &'data Xcoff
Returns the raw XCOFF file header.
Trait Implementations§
source§impl<'data, 'file, Xcoff, R> Object<'data, 'file> for XcoffFile<'data, Xcoff, R>where
Xcoff: FileHeader,
R: 'file + ReadRef<'data>,
'data: 'file,
impl<'data, 'file, Xcoff, R> Object<'data, 'file> for XcoffFile<'data, Xcoff, R>where
Xcoff: FileHeader,
R: 'file + ReadRef<'data>,
'data: 'file,
§type Segment = XcoffSegment<'data, 'file, Xcoff, R>
type Segment = XcoffSegment<'data, 'file, Xcoff, R>
A loadable segment in the object file.
§type SegmentIterator = XcoffSegmentIterator<'data, 'file, Xcoff, R>
type SegmentIterator = XcoffSegmentIterator<'data, 'file, Xcoff, R>
An iterator for the loadable segments in the object file.
§type Section = XcoffSection<'data, 'file, Xcoff, R>
type Section = XcoffSection<'data, 'file, Xcoff, R>
A section in the object file.
§type SectionIterator = XcoffSectionIterator<'data, 'file, Xcoff, R>
type SectionIterator = XcoffSectionIterator<'data, 'file, Xcoff, R>
An iterator for the sections in the object file.
§type Comdat = XcoffComdat<'data, 'file, Xcoff, R>
type Comdat = XcoffComdat<'data, 'file, Xcoff, R>
A COMDAT section group in the object file.
§type ComdatIterator = XcoffComdatIterator<'data, 'file, Xcoff, R>
type ComdatIterator = XcoffComdatIterator<'data, 'file, Xcoff, R>
An iterator for the COMDAT section groups in the object file.
§type Symbol = XcoffSymbol<'data, 'file, Xcoff, R>
type Symbol = XcoffSymbol<'data, 'file, Xcoff, R>
A symbol in the object file.
§type SymbolIterator = XcoffSymbolIterator<'data, 'file, Xcoff, R>
type SymbolIterator = XcoffSymbolIterator<'data, 'file, Xcoff, R>
An iterator for symbols in the object file.
§type SymbolTable = XcoffSymbolTable<'data, 'file, Xcoff, R>
type SymbolTable = XcoffSymbolTable<'data, 'file, Xcoff, R>
A symbol table in the object file.
§type DynamicRelocationIterator = NoDynamicRelocationIterator
type DynamicRelocationIterator = NoDynamicRelocationIterator
An iterator for the dynamic relocations in the file. Read more
source§fn architecture(&self) -> Architecture
fn architecture(&self) -> Architecture
Get the architecture type of the file.
source§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.
source§fn kind(&self) -> ObjectKind
fn kind(&self) -> ObjectKind
Return the kind of this object.
source§fn segments(&'file self) -> XcoffSegmentIterator<'data, 'file, Xcoff, R> ⓘ
fn segments(&'file self) -> XcoffSegmentIterator<'data, 'file, Xcoff, R> ⓘ
Get an iterator for the loadable segments in the file. Read more
source§fn section_by_name_bytes(
&'file self,
section_name: &[u8]
) -> Option<XcoffSection<'data, 'file, Xcoff, R>>
fn section_by_name_bytes( &'file self, section_name: &[u8] ) -> Option<XcoffSection<'data, 'file, Xcoff, R>>
Like
Self::section_by_name
, but allows names that are not UTF-8.source§fn section_by_index(
&'file self,
index: SectionIndex
) -> Result<XcoffSection<'data, 'file, Xcoff, R>>
fn section_by_index( &'file self, index: SectionIndex ) -> Result<XcoffSection<'data, 'file, Xcoff, R>>
Get the section at the given index. Read more
source§fn sections(&'file self) -> XcoffSectionIterator<'data, 'file, Xcoff, R> ⓘ
fn sections(&'file self) -> XcoffSectionIterator<'data, 'file, Xcoff, R> ⓘ
Get an iterator for the sections in the file.
source§fn comdats(&'file self) -> XcoffComdatIterator<'data, 'file, Xcoff, R> ⓘ
fn comdats(&'file self) -> XcoffComdatIterator<'data, 'file, Xcoff, R> ⓘ
Get an iterator for the COMDAT section groups in the file.
source§fn symbol_table(&'file self) -> Option<XcoffSymbolTable<'data, 'file, Xcoff, R>>
fn symbol_table(&'file self) -> Option<XcoffSymbolTable<'data, 'file, Xcoff, R>>
Get the debugging symbol table, if any.
source§fn symbol_by_index(
&'file self,
index: SymbolIndex
) -> Result<XcoffSymbol<'data, 'file, Xcoff, R>>
fn symbol_by_index( &'file self, index: SymbolIndex ) -> Result<XcoffSymbol<'data, 'file, Xcoff, R>>
Get the debugging symbol at the given index. Read more
source§fn symbols(&'file self) -> XcoffSymbolIterator<'data, 'file, Xcoff, R> ⓘ
fn symbols(&'file self) -> XcoffSymbolIterator<'data, 'file, Xcoff, R> ⓘ
Get an iterator for the debugging symbols in the file. Read more
source§fn dynamic_symbol_table(
&'file self
) -> Option<XcoffSymbolTable<'data, 'file, Xcoff, R>>
fn dynamic_symbol_table( &'file self ) -> Option<XcoffSymbolTable<'data, 'file, Xcoff, R>>
Get the dynamic linking symbol table, if any. Read more
source§fn dynamic_symbols(&'file self) -> XcoffSymbolIterator<'data, 'file, Xcoff, R> ⓘ
fn dynamic_symbols(&'file self) -> XcoffSymbolIterator<'data, 'file, Xcoff, R> ⓘ
Get an iterator for the dynamic linking symbols in the file. Read more
source§fn dynamic_relocations(&'file self) -> Option<Self::DynamicRelocationIterator>
fn dynamic_relocations(&'file self) -> Option<Self::DynamicRelocationIterator>
Get the dynamic relocations for this file. Read more
source§fn exports(&self) -> Result<Vec<Export<'data>>>
fn exports(&self) -> Result<Vec<Export<'data>>>
Get the exported symbols that expose both a name and an address. Read more
source§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.
source§fn relative_address_base(&'file self) -> u64
fn relative_address_base(&'file self) -> u64
Get the base address used for relative virtual addresses. Read more
source§fn sub_architecture(&self) -> Option<SubArchitecture>
fn sub_architecture(&self) -> Option<SubArchitecture>
Get the sub-architecture type of the file if known. Read more
source§fn endianness(&self) -> Endianness
fn endianness(&self) -> Endianness
Get the endianness of the file.
source§fn section_by_name(&'file self, section_name: &str) -> Option<Self::Section>
fn section_by_name(&'file self, section_name: &str) -> Option<Self::Section>
Get the section named
section_name
, if such a section exists. Read moresource§fn symbol_by_name(&'file self, symbol_name: &str) -> Option<Self::Symbol>
fn symbol_by_name(&'file self, symbol_name: &str) -> Option<Self::Symbol>
Get the symbol named
symbol_name
, if the symbol exists.source§fn symbol_by_name_bytes(&'file self, symbol_name: &[u8]) -> Option<Self::Symbol>
fn symbol_by_name_bytes(&'file self, symbol_name: &[u8]) -> Option<Self::Symbol>
Like
Self::symbol_by_name
, but allows names that are not UTF-8.source§fn symbol_map(&'file self) -> SymbolMap<SymbolMapName<'data>>
fn symbol_map(&'file self) -> SymbolMap<SymbolMapName<'data>>
Construct a map from addresses to symbol names. Read more
source§fn object_map(&'file self) -> ObjectMap<'data>
fn object_map(&'file self) -> ObjectMap<'data>
Construct a map from addresses to symbol names and object file names. Read more
source§fn build_id(&self) -> Result<Option<&'data [u8]>>
fn build_id(&self) -> Result<Option<&'data [u8]>>
The build ID from an ELF
NT_GNU_BUILD_ID
note.source§fn gnu_debuglink(&self) -> Result<Option<(&'data [u8], u32)>>
fn gnu_debuglink(&self) -> Result<Option<(&'data [u8], u32)>>
The filename and CRC from a
.gnu_debuglink
section.Auto Trait Implementations§
impl<'data, Xcoff, R> Freeze for XcoffFile<'data, Xcoff, R>where
R: Freeze,
impl<'data, Xcoff, R> RefUnwindSafe for XcoffFile<'data, Xcoff, R>where
R: RefUnwindSafe,
Xcoff: RefUnwindSafe,
<Xcoff as FileHeader>::AuxHeader: RefUnwindSafe,
<Xcoff as FileHeader>::SectionHeader: RefUnwindSafe,
impl<'data, Xcoff, R> Send for XcoffFile<'data, Xcoff, R>where
R: Send,
Xcoff: Sync + Send,
<Xcoff as FileHeader>::AuxHeader: Sync,
<Xcoff as FileHeader>::SectionHeader: Sync,
impl<'data, Xcoff, R> Sync for XcoffFile<'data, Xcoff, R>where
R: Sync,
Xcoff: Sync,
<Xcoff as FileHeader>::AuxHeader: Sync,
<Xcoff as FileHeader>::SectionHeader: Sync,
impl<'data, Xcoff, R> Unpin for XcoffFile<'data, Xcoff, R>
impl<'data, Xcoff, R> UnwindSafe for XcoffFile<'data, Xcoff, R>where
R: UnwindSafe,
Xcoff: RefUnwindSafe + UnwindSafe,
<Xcoff as FileHeader>::AuxHeader: RefUnwindSafe,
<Xcoff as FileHeader>::SectionHeader: RefUnwindSafe,
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
Mutably borrows from an owned value. Read more