Struct breakpad::StackFrame
[−]
[src]
#[repr(C)]pub struct StackFrame(_);
Contains information from the memorydump, especially the frame's instruction
pointer. Also references an optional CodeModule
that contains the
instruction of this stack frame.
Use a Resolver
to fill a stack frame with source code information. The
resolver needs symbols for this frame's CodeModule
in order to provide
debug information.
Methods
impl StackFrame
[src]
fn instruction(&self) -> u64
[src]
Returns the program counter location as an absolute virtual address.
For the innermost called frame in a stack, this will be an exact program counter or instruction pointer value.
For all other frames, this address is within the instruction that caused execution to branch to this frame's callee (although it may not point to the exact beginning of that instruction). This ensures that, when we look up the source code location for this frame, we get the source location of the call, not of the point at which control will resume when the call returns, which may be on the next line. (If the compiler knows the callee never returns, it may even place the call instruction at the very end of the caller's machine code, such that the "return address" (which will never be used) immediately after the call instruction is in an entirely different function, perhaps even from a different source file.)
On some architectures, the return address as saved on the stack or in a register is fine for looking up the point of the call. On others, it requires adjustment. ReturnAddress returns the address as saved by the machine.
Use trust
to obtain how trustworthy this instruction is.
fn module(&self) -> Option<&CodeModule>
[src]
Returns the CodeModule
that contains this frame's instruction.
fn trust(&self) -> FrameTrust
[src]
Returns how well the instruction pointer is trusted.