Struct unwind::StackFrame
source · pub struct StackFrame { /* private fields */ }
Expand description
A single frame in the stack, which contains unwinding-related information for a single function call’s stack frame.
See each method for documentation about the members of this struct.
Implementations§
source§impl StackFrame
impl StackFrame
sourcepub fn personality(&self) -> Option<u64>
pub fn personality(&self) -> Option<u64>
The address of the personality function that corresponds
to this stack frame’s unwinding routine, if needed for this stack frame.
In Rust, this is always the same function, the one defined as the eh_personality
language item, something required by the compiler.
Note that in Theseus we do not use a personality function, as we use a custom unwinding flow that bypasses invoking the personality function.
sourcepub fn lsda(&self) -> Option<u64>
pub fn lsda(&self) -> Option<u64>
The address of the Language-Specific Data Area (LSDA)
that is needed to discover the unwinding cleanup routines (landing pads)
for this stack frame.
Typically, this points to an area within a .gcc_except_table
section,
which then needs to be parsed.
sourcepub fn call_site_address(&self) -> u64
pub fn call_site_address(&self) -> u64
The call site of this stack frame, i.e., the address of the instruction that called the next function in the call stack.
sourcepub fn initial_address(&self) -> u64
pub fn initial_address(&self) -> u64
The address (starting instruction pointer) of the function corresponding to this stack frame. This points to the top (entry point) of that function.