gimli::read

Struct CommonInformationEntry

source
pub struct CommonInformationEntry<R, Offset = <R as Reader>::Offset>
where R: Reader<Offset = Offset>, Offset: ReaderOffset,
{ /* private fields */ }
Expand description

A Common Information Entry holds information that is shared among many Frame Description Entries. There is at least one CIE in every non-empty .debug_frame section.

Implementations§

source§

impl<R: Reader> CommonInformationEntry<R>

§Signal Safe Methods

These methods are guaranteed not to allocate, acquire locks, or perform any other signal-unsafe operations.

source

pub fn offset(&self) -> R::Offset

Get the offset of this entry from the start of its containing section.

source

pub fn encoding(&self) -> Encoding

Return the encoding parameters for this CIE.

source

pub fn address_size(&self) -> u8

The size of addresses (in bytes) in this CIE.

source

pub fn instructions<'a, Section>( &self, section: &'a Section, bases: &'a BaseAddresses, ) -> CallFrameInstructionIter<'a, R>
where Section: UnwindSection<R>,

Iterate over this CIE’s initial instructions.

Can be used with FallibleIterator.

source

pub fn entry_len(&self) -> R::Offset

A constant that gives the number of bytes of the CIE structure, not including the length field itself (see Section 7.2.2). The size of the length field plus the value of length must be an integral multiple of the address size.

source

pub fn version(&self) -> u8

A version number (see Section 7.23). This number is specific to the call frame information and is independent of the DWARF version number.

source

pub fn augmentation(&self) -> Option<&Augmentation>

Get the augmentation data, if any exists.

The only augmentation understood by gimli is that which is defined by .eh_frame.

source

pub fn has_lsda(&self) -> bool

True if this CIE’s FDEs have a LSDA.

source

pub fn lsda_encoding(&self) -> Option<DwEhPe>

Return the encoding of the LSDA address for this CIE’s FDEs.

source

pub fn personality_with_encoding(&self) -> Option<(DwEhPe, Pointer)>

Return the encoding and address of the personality routine handler for this CIE’s FDEs.

source

pub fn personality(&self) -> Option<Pointer>

Return the address of the personality routine handler for this CIE’s FDEs.

source

pub fn fde_address_encoding(&self) -> Option<DwEhPe>

Return the encoding of the addresses for this CIE’s FDEs.

source

pub fn is_signal_trampoline(&self) -> bool

True if this CIE’s FDEs are trampolines for signal handlers.

source

pub fn code_alignment_factor(&self) -> u64

A constant that is factored out of all advance location instructions (see Section 6.4.2.1).

source

pub fn data_alignment_factor(&self) -> i64

A constant that is factored out of certain offset instructions (see below). The resulting value is (operand * data_alignment_factor).

source

pub fn return_address_register(&self) -> Register

An unsigned … constant that indicates which column in the rule table represents the return address of the function. Note that this column might not correspond to an actual machine register.

Trait Implementations§

source§

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

source§

fn clone(&self) -> CommonInformationEntry<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 CommonInformationEntry<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 CommonInformationEntry<R, Offset>
where R: Reader<Offset = Offset> + PartialEq, Offset: ReaderOffset + PartialEq,

source§

fn eq(&self, other: &CommonInformationEntry<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> Eq for CommonInformationEntry<R, Offset>
where R: Reader<Offset = Offset> + Eq, Offset: ReaderOffset + Eq,

source§

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

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

§

impl<R, Offset> UnwindSafe for CommonInformationEntry<R, Offset>
where Offset: UnwindSafe, R: 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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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.