Enum gimli::read::AttributeValue

source ·
#[repr(u64)]
pub enum AttributeValue<R, Offset = <R as Reader>::Offset>
where R: Reader<Offset = Offset>, Offset: ReaderOffset,
{
Show 46 variants Addr(u64), Block(R), Data1(u8), Data2(u16), Data4(u32), Data8(u64), Sdata(i64), Udata(u64), Exprloc(Expression<R>), Flag(bool), SecOffset(Offset), DebugAddrBase(DebugAddrBase<Offset>), DebugAddrIndex(DebugAddrIndex<Offset>), UnitRef(UnitOffset<Offset>), DebugInfoRef(DebugInfoOffset<Offset>), DebugInfoRefSup(DebugInfoOffset<Offset>), DebugLineRef(DebugLineOffset<Offset>), LocationListsRef(LocationListsOffset<Offset>), DebugLocListsBase(DebugLocListsBase<Offset>), DebugLocListsIndex(DebugLocListsIndex<Offset>), DebugMacinfoRef(DebugMacinfoOffset<Offset>), DebugMacroRef(DebugMacroOffset<Offset>), RangeListsRef(RawRangeListsOffset<Offset>), DebugRngListsBase(DebugRngListsBase<Offset>), DebugRngListsIndex(DebugRngListsIndex<Offset>), DebugTypesRef(DebugTypeSignature), DebugStrRef(DebugStrOffset<Offset>), DebugStrRefSup(DebugStrOffset<Offset>), DebugStrOffsetsBase(DebugStrOffsetsBase<Offset>), DebugStrOffsetsIndex(DebugStrOffsetsIndex<Offset>), DebugLineStrRef(DebugLineStrOffset<Offset>), String(R), Encoding(DwAte), DecimalSign(DwDs), Endianity(DwEnd), Accessibility(DwAccess), Visibility(DwVis), Virtuality(DwVirtuality), Language(DwLang), AddressClass(DwAddr), IdentifierCase(DwId), CallingConvention(DwCc), Inline(DwInl), Ordering(DwOrd), FileIndex(u64), DwoId(DwoId),
}
Expand description

The value of an attribute in a DebuggingInformationEntry.

Variants§

§

Addr(u64)

“Refers to some location in the address space of the described program.”

§

Block(R)

A slice of an arbitrary number of bytes.

§

Data1(u8)

A one byte constant data value. How to interpret the byte depends on context.

From section 7 of the standard: “Depending on context, it may be a signed integer, an unsigned integer, a floating-point constant, or anything else.”

§

Data2(u16)

A two byte constant data value. How to interpret the bytes depends on context.

These bytes have been converted from R::Endian. This may need to be reversed if this was not required.

From section 7 of the standard: “Depending on context, it may be a signed integer, an unsigned integer, a floating-point constant, or anything else.”

§

Data4(u32)

A four byte constant data value. How to interpret the bytes depends on context.

These bytes have been converted from R::Endian. This may need to be reversed if this was not required.

From section 7 of the standard: “Depending on context, it may be a signed integer, an unsigned integer, a floating-point constant, or anything else.”

§

Data8(u64)

An eight byte constant data value. How to interpret the bytes depends on context.

These bytes have been converted from R::Endian. This may need to be reversed if this was not required.

From section 7 of the standard: “Depending on context, it may be a signed integer, an unsigned integer, a floating-point constant, or anything else.”

§

Sdata(i64)

A signed integer constant.

§

Udata(u64)

An unsigned integer constant.

§

Exprloc(Expression<R>)

“The information bytes contain a DWARF expression (see Section 2.5) or location description (see Section 2.6).”

§

Flag(bool)

A boolean that indicates presence or absence of the attribute.

§

SecOffset(Offset)

An offset into another section. Which section this is an offset into depends on context.

§

DebugAddrBase(DebugAddrBase<Offset>)

An offset to a set of addresses in the .debug_addr section.

§

DebugAddrIndex(DebugAddrIndex<Offset>)

An index into a set of addresses in the .debug_addr section.

§

UnitRef(UnitOffset<Offset>)

An offset into the current compilation unit.

§

DebugInfoRef(DebugInfoOffset<Offset>)

An offset into the current .debug_info section, but possibly a different compilation unit from the current one.

§

DebugInfoRefSup(DebugInfoOffset<Offset>)

An offset into the .debug_info section of the supplementary object file.

§

DebugLineRef(DebugLineOffset<Offset>)

An offset into the .debug_line section.

§

LocationListsRef(LocationListsOffset<Offset>)

An offset into either the .debug_loc section or the .debug_loclists section.

§

DebugLocListsBase(DebugLocListsBase<Offset>)

An offset to a set of offsets in the .debug_loclists section.

§

DebugLocListsIndex(DebugLocListsIndex<Offset>)

An index into a set of offsets in the .debug_loclists section.

§

DebugMacinfoRef(DebugMacinfoOffset<Offset>)

An offset into the .debug_macinfo section.

§

DebugMacroRef(DebugMacroOffset<Offset>)

An offset into the .debug_macro section.

§

RangeListsRef(RawRangeListsOffset<Offset>)

An offset into the .debug_ranges section.

§

DebugRngListsBase(DebugRngListsBase<Offset>)

An offset to a set of offsets in the .debug_rnglists section.

§

DebugRngListsIndex(DebugRngListsIndex<Offset>)

An index into a set of offsets in the .debug_rnglists section.

§

DebugTypesRef(DebugTypeSignature)

A type signature.

§

DebugStrRef(DebugStrOffset<Offset>)

An offset into the .debug_str section.

§

DebugStrRefSup(DebugStrOffset<Offset>)

An offset into the .debug_str section of the supplementary object file.

§

DebugStrOffsetsBase(DebugStrOffsetsBase<Offset>)

An offset to a set of entries in the .debug_str_offsets section.

§

DebugStrOffsetsIndex(DebugStrOffsetsIndex<Offset>)

An index into a set of entries in the .debug_str_offsets section.

§

DebugLineStrRef(DebugLineStrOffset<Offset>)

An offset into the .debug_line_str section.

§

String(R)

A slice of bytes representing a string. Does not include a final null byte. Not guaranteed to be UTF-8 or anything like that.

§

Encoding(DwAte)

The value of a DW_AT_encoding attribute.

§

DecimalSign(DwDs)

The value of a DW_AT_decimal_sign attribute.

§

Endianity(DwEnd)

The value of a DW_AT_endianity attribute.

§

Accessibility(DwAccess)

The value of a DW_AT_accessibility attribute.

§

Visibility(DwVis)

The value of a DW_AT_visibility attribute.

§

Virtuality(DwVirtuality)

The value of a DW_AT_virtuality attribute.

§

Language(DwLang)

The value of a DW_AT_language attribute.

§

AddressClass(DwAddr)

The value of a DW_AT_address_class attribute.

§

IdentifierCase(DwId)

The value of a DW_AT_identifier_case attribute.

§

CallingConvention(DwCc)

The value of a DW_AT_calling_convention attribute.

§

Inline(DwInl)

The value of a DW_AT_inline attribute.

§

Ordering(DwOrd)

The value of a DW_AT_ordering attribute.

§

FileIndex(u64)

An index into the filename entries from the line number information table for the compilation unit containing this value.

§

DwoId(DwoId)

An implementation-defined identifier uniquely identifying a compilation unit.

Implementations§

source§

impl<R, Offset> AttributeValue<R, Offset>
where R: Reader<Offset = Offset>, Offset: ReaderOffset,

source

pub fn u8_value(&self) -> Option<u8>

Try to convert this attribute’s value to a u8.

source

pub fn u16_value(&self) -> Option<u16>

Try to convert this attribute’s value to a u16.

source

pub fn udata_value(&self) -> Option<u64>

Try to convert this attribute’s value to an unsigned integer.

source

pub fn sdata_value(&self) -> Option<i64>

Try to convert this attribute’s value to a signed integer.

source

pub fn offset_value(&self) -> Option<R::Offset>

Try to convert this attribute’s value to an offset.

source

pub fn exprloc_value(&self) -> Option<Expression<R>>

Try to convert this attribute’s value to an expression or location buffer.

Expressions and locations may be DW_FORM_block* or DW_FORM_exprloc. The standard doesn’t mention DW_FORM_block* as a possible form, but it is encountered in practice.

source

pub fn string_value(&self, debug_str: &DebugStr<R>) -> Option<R>

Try to return this attribute’s value as a string slice.

If this attribute’s value is either an inline DW_FORM_string string, or a DW_FORM_strp reference to an offset into the .debug_str section, return the attribute’s string value as Some. Other attribute value forms are returned as None.

Warning: this function does not handle all possible string forms. Use Dwarf::attr_string instead.

source

pub fn string_value_sup( &self, debug_str: &DebugStr<R>, debug_str_sup: Option<&DebugStr<R>>, ) -> Option<R>

Try to return this attribute’s value as a string slice.

If this attribute’s value is either an inline DW_FORM_string string, or a DW_FORM_strp reference to an offset into the .debug_str section, or a DW_FORM_strp_sup reference to an offset into a supplementary object file, return the attribute’s string value as Some. Other attribute value forms are returned as None.

Warning: this function does not handle all possible string forms. Use Dwarf::attr_string instead.

Trait Implementations§

source§

impl<R, Offset> Clone for AttributeValue<R, Offset>
where R: Reader<Offset = Offset> + Clone, Offset: ReaderOffset + Clone,

source§

fn clone(&self) -> AttributeValue<R, Offset>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<R, Offset> Debug for AttributeValue<R, Offset>
where R: Reader<Offset = Offset> + Debug, Offset: ReaderOffset + Debug,

source§

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

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

impl<R, Offset> PartialEq for AttributeValue<R, Offset>
where R: Reader<Offset = Offset> + PartialEq, Offset: ReaderOffset + PartialEq,

source§

fn eq(&self, other: &AttributeValue<R, Offset>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<R, Offset> Copy for AttributeValue<R, Offset>
where R: Reader<Offset = Offset> + Copy, Offset: ReaderOffset + Copy,

source§

impl<R, Offset> Eq for AttributeValue<R, Offset>
where R: Reader<Offset = Offset> + Eq, Offset: ReaderOffset + Eq,

source§

impl<R, Offset> StructuralPartialEq for AttributeValue<R, Offset>
where R: Reader<Offset = Offset>, Offset: ReaderOffset,

Auto Trait Implementations§

§

impl<R, Offset> Freeze for AttributeValue<R, Offset>
where R: Freeze, Offset: Freeze,

§

impl<R, Offset> RefUnwindSafe for AttributeValue<R, Offset>
where R: RefUnwindSafe, Offset: RefUnwindSafe,

§

impl<R, Offset> Send for AttributeValue<R, Offset>
where R: Send, Offset: Send,

§

impl<R, Offset> Sync for AttributeValue<R, Offset>
where R: Sync, Offset: Sync,

§

impl<R, Offset> Unpin for AttributeValue<R, Offset>
where R: Unpin, Offset: Unpin,

§

impl<R, Offset> UnwindSafe for AttributeValue<R, Offset>
where R: UnwindSafe, Offset: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.