pub struct FrameData {Show 13 fields
pub ty: FrameType,
pub code_start: PdbInternalRva,
pub code_size: u32,
pub locals_size: u32,
pub params_size: u32,
pub prolog_size: u16,
pub saved_regs_size: u16,
pub max_stack_size: Option<u32>,
pub has_structured_eh: bool,
pub has_cpp_eh: bool,
pub is_function_start: bool,
pub uses_base_pointer: bool,
pub program: Option<StringRef>,
}
Expand description
Frame data for a code block.
Fields
ty: FrameType
Compiler-specific frame type.
code_start: PdbInternalRva
Relative virtual address of the start of the code block.
Note that this address is internal to the PDB. To convert this to an actual Rva
, use
PdbInternalRva::to_rva
.
code_size: u32
Size of the code block covered by this frame data in bytes.
locals_size: u32
Size of local variables pushed on the stack in bytes.
params_size: u32
Size of parameters pushed on the stack in bytes.
prolog_size: u16
Number of bytes of prologue code in the block.
saved_regs_size: u16
Size of saved registers pushed on the stack in bytes.
max_stack_size: Option<u32>
The maximum number of bytes pushed on the stack.
has_structured_eh: bool
Indicates that structured exception handling is in effect.
has_cpp_eh: bool
Indicates that C++ exception handling is in effect.
is_function_start: bool
Indicates that this frame is the start of a function.
uses_base_pointer: bool
Indicates that this function uses the EBP register.
program: Option<StringRef>
A program string allowing to reconstruct register values for this frame.
The program string is a sequence of macros that is interpreted in order to establish the
prologue. For example, a typical stack frame might use the program string "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + ="
. The format is reverse polish notation, where the
operators follow the operands. T0
represents a temporary variable on the stack.
Note that the program string is specific to the CPU and to the calling convention set up for the function represented by the current stack frame.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for FrameData
impl Send for FrameData
impl Sync for FrameData
impl Unpin for FrameData
impl UnwindSafe for FrameData
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more