Type Alias object::read::xcoff::file::XcoffFile64

source ·
pub type XcoffFile64<'data, R = &'data [u8]> = XcoffFile<'data, FileHeader64, R>;
Expand description

A 64-bit XCOFF object file.

This is a file that starts with xcoff::FileHeader64, and corresponds to crate::FileKind::Xcoff64.

Aliased Type§

struct XcoffFile64<'data, R = &'data [u8]> {
    pub(super) data: R,
    pub(super) header: &'data FileHeader64,
    pub(super) aux_header: Option<&'data AuxHeader64>,
    pub(super) sections: SectionTable<'data, FileHeader64>,
    pub(super) symbols: SymbolTable<'data, FileHeader64, R>,
}

Fields§

§data: R§header: &'data FileHeader64§aux_header: Option<&'data AuxHeader64>§sections: SectionTable<'data, FileHeader64>§symbols: SymbolTable<'data, FileHeader64, R>

Implementations§

source§

impl<'data, Xcoff, R> XcoffFile<'data, Xcoff, R>where Xcoff: FileHeader, R: ReadRef<'data>,

source

pub fn parse(data: R) -> Result<Self>

Parse the raw XCOFF file data.

source

pub fn data(&self) -> R

Returns the raw data.

source

pub fn raw_header(&self) -> &'data Xcoff

Returns the raw XCOFF file header.

Trait Implementations§

source§

impl<'data, Xcoff, R> Debug for XcoffFile<'data, Xcoff, R>where Xcoff: FileHeader + Debug, R: ReadRef<'data> + Debug, Xcoff::AuxHeader: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

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>

A loadable segment in the object file.
§

type SegmentIterator = XcoffSegmentIterator<'data, 'file, Xcoff, R>

An iterator for the loadable segments in the object file.
§

type Section = XcoffSection<'data, 'file, Xcoff, R>

A section in the object file.
§

type SectionIterator = XcoffSectionIterator<'data, 'file, Xcoff, R>

An iterator for the sections in the object file.
§

type Comdat = XcoffComdat<'data, 'file, Xcoff, R>

A COMDAT section group in the object file.
§

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>

A symbol in the object file.
§

type SymbolIterator = XcoffSymbolIterator<'data, 'file, Xcoff, R>

An iterator for symbols in the object file.
§

type SymbolTable = XcoffSymbolTable<'data, 'file, Xcoff, R>

A symbol table in the object file.
§

type DynamicRelocationIterator = NoDynamicRelocationIterator

An iterator for the dynamic relocations in the file. Read more
source§

fn architecture(&self) -> Architecture

Get the architecture type of the file.
source§

fn is_little_endian(&self) -> bool

Return true if the file is little endian, false if it is big endian.
source§

fn is_64(&self) -> bool

Return true if the file can contain 64-bit addresses.
source§

fn kind(&self) -> ObjectKind

Return the kind of this object.
source§

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>>

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>>

Get the section at the given index. Read more
source§

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>

Get an iterator for the COMDAT section groups in the file.
source§

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>>

Get the debugging symbol at the given index. Read more
source§

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>>

Get the dynamic linking symbol table, if any. Read more
source§

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>

Get the dynamic relocations for this file. Read more
source§

fn imports(&self) -> Result<Vec<Import<'data>>>

Get the imported symbols.
source§

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

Return true if the file contains DWARF debug information sections, false if not.
source§

fn relative_address_base(&'file self) -> u64

Get the base address used for relative virtual addresses. Read more
source§

fn entry(&'file self) -> u64

Get the virtual address of the entry point of the binary.
source§

fn flags(&self) -> FileFlags

File flags that are specific to each file format.
source§

fn sub_architecture(&self) -> Option<SubArchitecture>

Get the sub-architecture type of the file if known. Read more
source§

fn endianness(&self) -> Endianness

Get the endianness of the file.
source§

fn section_by_name(&'file self, section_name: &str) -> Option<Self::Section>

Get the section named section_name, if such a section exists. Read more
source§

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>

Like Self::symbol_by_name, but allows names that are not UTF-8.
source§

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>

Construct a map from addresses to symbol names and object file names. Read more
source§

fn mach_uuid(&self) -> Result<Option<[u8; 16]>>

The UUID from a Mach-O LC_UUID load command.
source§

fn build_id(&self) -> Result<Option<&'data [u8]>>

The build ID from an ELF NT_GNU_BUILD_ID note.
The filename and CRC from a .gnu_debuglink section.
The filename and build ID from a .gnu_debugaltlink section.
source§

fn pdb_info(&self) -> Result<Option<CodeView<'_>>>

The filename and GUID from the PE CodeView section.
source§

impl<'data, Xcoff, R> Sealed for XcoffFile<'data, Xcoff, R>where Xcoff: FileHeader, R: ReadRef<'data>,