[−][src]Struct pdb::FrameData
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
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
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,