[][src]Struct pdb::FrameData

pub struct FrameData {
    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>,
}

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

impl Clone for FrameData[src]

default fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for FrameData[src]

Auto Trait Implementations

impl Send for FrameData

impl Sync for FrameData

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.