Struct lief::pe::exception_x64::UnwindInfo
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<'_>
impl UnwindInfo<'_>
pub fn flags(&self) -> UnwindFlags
pub fn flags(&self) -> UnwindFlags
See: UnwindFlags
pub fn sizeof_prologue(&self) -> u8
pub fn sizeof_prologue(&self) -> u8
Length of the function prolog in bytes.
pub fn count_opcodes(&self) -> u8
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
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
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] ⓘ
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<'_> ⓘ
pub fn opcodes(&self) -> OpcodesIterator<'_> ⓘ
Iterator over the unwind code which outputs Opcodes
pub fn handler(&self) -> Option<u32>
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<'_>>
pub fn chained(&self) -> Option<RuntimeFunction<'_>>
If UnwindFlags::CHAIN_INFO
is set, this attributes references the
chained runtime function.