[go: up one dir, main page]

[][src]Struct gimli::read::Dwarf

pub struct Dwarf<R: Reader> {
    pub debug_abbrev: DebugAbbrev<R>,
    pub debug_addr: DebugAddr<R>,
    pub debug_info: DebugInfo<R>,
    pub debug_line: DebugLine<R>,
    pub debug_line_str: DebugLineStr<R>,
    pub debug_str: DebugStr<R>,
    pub debug_str_offsets: DebugStrOffsets<R>,
    pub debug_str_sup: DebugStr<R>,
    pub debug_types: DebugTypes<R>,
    pub locations: LocationLists<R>,
    pub ranges: RangeLists<R>,
}

All of the commonly used DWARF sections, and other common information.

Fields

debug_abbrev: DebugAbbrev<R>

The .debug_abbrev section.

debug_addr: DebugAddr<R>

The .debug_addr section.

debug_info: DebugInfo<R>

The .debug_info section.

debug_line: DebugLine<R>

The .debug_line section.

debug_line_str: DebugLineStr<R>

The .debug_line_str section.

debug_str: DebugStr<R>

The .debug_str section.

debug_str_offsets: DebugStrOffsets<R>

The .debug_str_offsets section.

debug_str_sup: DebugStr<R>

The .debug_str section for a supplementary object file.

debug_types: DebugTypes<R>

The .debug_types section.

locations: LocationLists<R>

The location lists in the .debug_loc and .debug_loclists sections.

ranges: RangeLists<R>

The range lists in the .debug_ranges and .debug_rnglists sections.

Methods

impl<R: Reader> Dwarf<R>[src]

pub fn units(&self) -> CompilationUnitHeadersIter<R>[src]

Iterate the compilation- and partial-unit headers in the .debug_info section.

Can be used with FallibleIterator.

pub fn unit(
    &self,
    header: CompilationUnitHeader<R, R::Offset>
) -> Result<Unit<R>>
[src]

Construct a new Unit from the given compilation unit header.

pub fn type_units(&self) -> TypeUnitHeadersIter<R>[src]

Iterate the type-unit headers in the .debug_types section.

Can be used with FallibleIterator.

pub fn type_unit(&self, header: TypeUnitHeader<R, R::Offset>) -> Result<Unit<R>>[src]

Construct a new Unit from the given type unit header.

pub fn abbreviations(
    &self,
    unit: &CompilationUnitHeader<R, R::Offset>
) -> Result<Abbreviations>
[src]

Parse the abbreviations for a compilation unit.

pub fn type_abbreviations(
    &self,
    unit: &TypeUnitHeader<R, R::Offset>
) -> Result<Abbreviations>
[src]

Parse the abbreviations for a type unit.

pub fn string_offset(
    &self,
    unit: &Unit<R>,
    index: DebugStrOffsetsIndex<R::Offset>
) -> Result<DebugStrOffset<R::Offset>>
[src]

Return the string offset at the given index.

pub fn string(&self, offset: DebugStrOffset<R::Offset>) -> Result<R>[src]

Return the string at the given offset in .debug_str.

pub fn line_string(&self, offset: DebugLineStrOffset<R::Offset>) -> Result<R>[src]

Return the string at the given offset in .debug_line_str.

pub fn attr_string(
    &self,
    unit: &Unit<R>,
    attr: AttributeValue<R, R::Offset>
) -> Result<R>
[src]

Return an attribute value as a string slice.

If the attribute value is one of:

  • an inline DW_FORM_string string
  • a DW_FORM_strp reference to an offset into the .debug_str section
  • a DW_FORM_strp_sup reference to an offset into a supplementary object file
  • a DW_FORM_line_strp reference to an offset into the .debug_line_str section
  • a DW_FORM_strx index into the .debug_str_offsets entries for the unit

then return the attribute's string value. Returns an error if the attribute value does not have a string form, or if a string form has an invalid value.

pub fn address(
    &self,
    unit: &Unit<R>,
    index: DebugAddrIndex<R::Offset>
) -> Result<u64>
[src]

Return the address at the given index.

pub fn ranges_offset(
    &self,
    unit: &Unit<R>,
    index: DebugRngListsIndex<R::Offset>
) -> Result<RangeListsOffset<R::Offset>>
[src]

Return the range list offset at the given index.

pub fn ranges(
    &self,
    unit: &Unit<R>,
    offset: RangeListsOffset<R::Offset>
) -> Result<RngListIter<R>>
[src]

Iterate over the RangeListEntrys starting at the given offset.

pub fn attr_ranges_offset(
    &self,
    unit: &Unit<R>,
    attr: AttributeValue<R, R::Offset>
) -> Result<Option<RangeListsOffset<R::Offset>>>
[src]

Try to return an attribute value as a range list offset.

If the attribute value is one of:

  • a DW_FORM_sec_offset reference to the .debug_ranges or .debug_rnglists sections
  • a DW_FORM_rnglistx index into the .debug_rnglists entries for the unit

then return the range list offset of the range list. Returns None for other forms.

pub fn attr_ranges(
    &self,
    unit: &Unit<R>,
    attr: AttributeValue<R, R::Offset>
) -> Result<Option<RngListIter<R>>>
[src]

Try to return an attribute value as a range list entry iterator.

If the attribute value is one of:

  • a DW_FORM_sec_offset reference to the .debug_ranges or .debug_rnglists sections
  • a DW_FORM_rnglistx index into the .debug_rnglists entries for the unit

then return an iterator over the entries in the range list. Returns None for other forms.

pub fn locations_offset(
    &self,
    unit: &Unit<R>,
    index: DebugLocListsIndex<R::Offset>
) -> Result<LocationListsOffset<R::Offset>>
[src]

Return the location list offset at the given index.

pub fn locations(
    &self,
    unit: &Unit<R>,
    offset: LocationListsOffset<R::Offset>
) -> Result<LocListIter<R>>
[src]

Iterate over the LocationListEntrys starting at the given offset.

pub fn attr_locations_offset(
    &self,
    unit: &Unit<R>,
    attr: AttributeValue<R, R::Offset>
) -> Result<Option<LocationListsOffset<R::Offset>>>
[src]

Try to return an attribute value as a location list offset.

If the attribute value is one of:

  • a DW_FORM_sec_offset reference to the .debug_loc or .debug_loclists sections
  • a DW_FORM_loclistx index into the .debug_loclists entries for the unit

then return the location list offset of the location list. Returns None for other forms.

pub fn attr_locations(
    &self,
    unit: &Unit<R>,
    attr: AttributeValue<R, R::Offset>
) -> Result<Option<LocListIter<R>>>
[src]

Try to return an attribute value as a location list entry iterator.

If the attribute value is one of:

  • a DW_FORM_sec_offset reference to the .debug_loc or .debug_loclists sections
  • a DW_FORM_loclistx index into the .debug_loclists entries for the unit

then return an iterator over the entries in the location list. Returns None for other forms.

Trait Implementations

impl<R: Debug + Reader> Debug for Dwarf<R>[src]

impl<R: Default + Reader> Default for Dwarf<R>[src]

Auto Trait Implementations

impl<R> Send for Dwarf<R> where
    R: Send

impl<R> Sync for Dwarf<R> where
    R: Sync

Blanket Implementations

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]