pub struct BreakpadStackWinRecord<'d> {
pub ty: BreakpadStackWinRecordType,
pub code_start: u32,
pub code_size: u32,
pub prolog_size: u16,
pub epilog_size: u16,
pub params_size: u32,
pub saved_regs_size: u16,
pub locals_size: u32,
pub max_stack_size: u32,
pub uses_base_pointer: bool,
pub program_string: Option<&'d str>,
}Expand description
A Windows stack frame record, used on x86.
Example: STACK WIN 4 2170 14 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =
Fields§
§ty: BreakpadStackWinRecordTypeThe type of frame data this record holds.
code_start: u32The starting address covered by this record, relative to the module’s load address.
code_size: u32The number of bytes covered by this record.
prolog_size: u16The size of the prologue machine code within the record’s range in bytes.
epilog_size: u16The size of the epilogue machine code within the record’s range in bytes.
params_size: u32The number of bytes this function expects to be passed as arguments.
saved_regs_size: u16The number of bytes used by this function to save callee-saves registers.
locals_size: u32The number of bytes used to save this function’s local variables.
max_stack_size: u32The maximum number of bytes pushed on the stack in the frame.
uses_base_pointer: boolWhether this function uses the base pointer register as a general-purpose register.
This is only relevant for records of type 0 (FPO).
program_string: Option<&'d str>A string describing a program for recovering the caller’s register values.
This is only expected to be present for records of type 4 (FrameData).
Implementations§
Source§impl<'d> BreakpadStackWinRecord<'d>
impl<'d> BreakpadStackWinRecord<'d>
Sourcepub fn parse(data: &'d [u8]) -> Result<Self, BreakpadError>
pub fn parse(data: &'d [u8]) -> Result<Self, BreakpadError>
Parses a Windows stack record from a single line.
Sourcepub fn code_range(&self) -> Range<u32>
pub fn code_range(&self) -> Range<u32>
Returns the range of addresses covered by this record.
Trait Implementations§
Source§impl<'d> Clone for BreakpadStackWinRecord<'d>
impl<'d> Clone for BreakpadStackWinRecord<'d>
Source§fn clone(&self) -> BreakpadStackWinRecord<'d>
fn clone(&self) -> BreakpadStackWinRecord<'d>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'d> Debug for BreakpadStackWinRecord<'d>
impl<'d> Debug for BreakpadStackWinRecord<'d>
Source§impl<'d> PartialEq for BreakpadStackWinRecord<'d>
impl<'d> PartialEq for BreakpadStackWinRecord<'d>
impl<'d> Eq for BreakpadStackWinRecord<'d>
impl<'d> StructuralPartialEq for BreakpadStackWinRecord<'d>
Auto Trait Implementations§
impl<'d> Freeze for BreakpadStackWinRecord<'d>
impl<'d> RefUnwindSafe for BreakpadStackWinRecord<'d>
impl<'d> Send for BreakpadStackWinRecord<'d>
impl<'d> Sync for BreakpadStackWinRecord<'d>
impl<'d> Unpin for BreakpadStackWinRecord<'d>
impl<'d> UnwindSafe for BreakpadStackWinRecord<'d>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.