Trait gimli::read::Section

source ·
pub trait Section<R>: From<R> {
    // Required methods
    fn id() -> SectionId;
    fn reader(&self) -> &R
       where R: Reader;

    // Provided methods
    fn section_name() -> &'static str { ... }
    fn dwo_section_name() -> Option<&'static str> { ... }
    fn xcoff_section_name() -> Option<&'static str> { ... }
    fn load<F, E>(f: F) -> Result<Self, E>
       where F: FnOnce(SectionId) -> Result<R, E> { ... }
    fn dwp_range(&self, offset: u32, size: u32) -> Result<Self>
       where R: Reader { ... }
    fn lookup_offset_id(
        &self,
        id: ReaderOffsetId
    ) -> Option<(SectionId, R::Offset)>
       where R: Reader { ... }
}
Expand description

A convenience trait for loading DWARF sections from object files. To be used like:

use gimli::{DebugInfo, EndianSlice, LittleEndian, Reader, Section};

let buf = [0x00, 0x01, 0x02, 0x03];
let reader = EndianSlice::new(&buf, LittleEndian);
let loader = |name| -> Result<_, ()> { Ok(reader) };

let debug_info: DebugInfo<_> = Section::load(loader).unwrap();

Required Methods§

source

fn id() -> SectionId

Returns the section id for this type.

source

fn reader(&self) -> &Rwhere R: Reader,

Returns the Reader for this section.

Provided Methods§

source

fn section_name() -> &'static str

Returns the ELF section name for this type.

source

fn dwo_section_name() -> Option<&'static str>

Returns the ELF section name (if any) for this type when used in a dwo file.

source

fn xcoff_section_name() -> Option<&'static str>

Returns the XCOFF section name (if any) for this type when used in a XCOFF file.

source

fn load<F, E>(f: F) -> Result<Self, E>where F: FnOnce(SectionId) -> Result<R, E>,

Try to load the section using the given loader function.

source

fn dwp_range(&self, offset: u32, size: u32) -> Result<Self>where R: Reader,

Returns the subrange of the section that is the contribution of a unit in a .dwp file.

source

fn lookup_offset_id(&self, id: ReaderOffsetId) -> Option<(SectionId, R::Offset)>where R: Reader,

Returns the Reader for this section.

Implementors§

source§

impl<R> Section<R> for DebugAbbrev<R>

source§

impl<R> Section<R> for DebugAddr<R>

source§

impl<R> Section<R> for DebugAranges<R>

source§

impl<R> Section<R> for DebugCuIndex<R>

source§

impl<R> Section<R> for DebugInfo<R>

source§

impl<R> Section<R> for DebugLine<R>

source§

impl<R> Section<R> for DebugLineStr<R>

source§

impl<R> Section<R> for DebugLoc<R>

source§

impl<R> Section<R> for DebugLocLists<R>

source§

impl<R> Section<R> for DebugRanges<R>

source§

impl<R> Section<R> for DebugRngLists<R>

source§

impl<R> Section<R> for DebugStr<R>

source§

impl<R> Section<R> for DebugStrOffsets<R>

source§

impl<R> Section<R> for DebugTuIndex<R>

source§

impl<R> Section<R> for DebugTypes<R>

source§

impl<R: Reader> Section<R> for DebugFrame<R>

source§

impl<R: Reader> Section<R> for DebugPubNames<R>

source§

impl<R: Reader> Section<R> for DebugPubTypes<R>

source§

impl<R: Reader> Section<R> for EhFrame<R>

source§

impl<R: Reader> Section<R> for EhFrameHdr<R>