pub struct Frame { /* private fields */ }
Expand description
A trait representing one frame of a backtrace, yielded to the trace
function of this crate.
The tracing function’s closure will be yielded frames, and the frame is virtually dispatched as the underlying implementation is not always known until runtime.
Implementations§
source§impl Frame
impl Frame
sourcepub fn ip(&self) -> *mut c_void
pub fn ip(&self) -> *mut c_void
Returns the current instruction pointer of this frame.
This is normally the next instruction to execute in the frame, but not all implementations list this with 100% accuracy (but it’s generally pretty close).
It is recommended to pass this value to backtrace::resolve
to turn it
into a symbol name.
sourcepub fn sp(&self) -> *mut c_void
pub fn sp(&self) -> *mut c_void
Returns the current stack pointer of this frame.
In the case that a backend cannot recover the stack pointer for this frame, a null pointer is returned.
sourcepub fn symbol_address(&self) -> *mut c_void
pub fn symbol_address(&self) -> *mut c_void
Returns the starting symbol address of the frame of this function.
This will attempt to rewind the instruction pointer returned by ip
to
the start of the function, returning that value. In some cases, however,
backends will just return ip
from this function.
The returned value can sometimes be used if backtrace::resolve
failed
on the ip
given above.
sourcepub fn module_base_address(&self) -> Option<*mut c_void>
pub fn module_base_address(&self) -> Option<*mut c_void>
Returns the base address of the module to which the frame belongs.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Frame
impl RefUnwindSafe for Frame
impl Send for Frame
impl Sync for Frame
impl Unpin for Frame
impl UnwindSafe for Frame
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)