pub struct UnwindInfo<'a> { /* private fields */ }
Expand description

This structure represents the UNWIND_INFO which records the effects a function has on the stack pointer, and where the nonvolatile registers are saved on the stack.

Implementations§

§

impl UnwindInfo<'_>

pub fn version(&self) -> u8

Version number of the unwind data, currently 1 or 2.

pub fn flags(&self) -> UnwindFlags

pub fn sizeof_prologue(&self) -> u8

Length of the function prolog in bytes.

pub fn count_opcodes(&self) -> u8

The number of slots in the unwind codes array. Some unwind codes, for example, UnwindOpcodes::SAVE_NONVOL, require more than one slot in the array

pub fn frame_reg(&self) -> u8

If nonzero, then the function uses a frame pointer (FP), and this field is the number of the nonvolatile register used as the frame pointer, using the same encoding for the operation info field of UnwindOpcodes nodes.

pub fn frame_reg_offset(&self) -> u8

If the frame register field is nonzero, this field is the scaled offset from RSP that is applied to the FP register when it’s established

pub fn raw_opcodes(&self) -> &[u8]

An array of items that explains the effect of the prolog on the nonvolatile registers and RSP

pub fn opcodes(&self) -> OpcodesIterator<'_>

Iterator over the unwind code which outputs Opcodes

pub fn handler(&self) -> Option<u32>

An image-relative pointer to either the function’s language-specific exception or termination handler. This value is set if one of these flags is set: UnwindFlags::EXCEPTION_HANDLER, UnwindFlags::TERMINATE_HANDLER

pub fn chained(&self) -> Option<RuntimeFunction<'_>>

If UnwindFlags::CHAIN_INFO is set, this attributes references the chained runtime function.

Trait Implementations§

§

impl Debug for UnwindInfo<'_>

§

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

Formats the value using the given formatter. Read more
§

impl Display for UnwindInfo<'_>

§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for UnwindInfo<'a>

§

impl<'a> !Send for UnwindInfo<'a>

§

impl<'a> !Sync for UnwindInfo<'a>

§

impl<'a> Unpin for UnwindInfo<'a>

§

impl<'a> !UnwindSafe for UnwindInfo<'a>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.