#[repr(C)]pub struct CrashContext {
pub context: ucontext_t,
pub float_state: fpregset_t,
pub siginfo: signalfd_siginfo,
pub pid: i32,
pub tid: i32,
}
Expand description
The full context for a Linux/Android crash
Fields§
§context: ucontext_t
Crashing thread context.
Note that we use [crate::ucontext_t
] instead of libc::ucontext_t
as libc’s differs between glibc and musl https://github.com/rust-lang/libc/pull/1646
even though the ucontext_t
received from a signal will be the same
regardless of the libc implementation used as it is only arch specific
and not libc specific
Note that we hide ucontext_t::uc_link
as it is a pointer and thus can’t
be accessed in a process other than the one the CrashContext
was created
in. This is a just a self-reference so is not useful in practice.
Note that the same applies to [mcontext_t::fpregs
], but since that points
to floating point registers and is interesting to read in another process,
those registers available as Self::float_state
, except on the arm
architecture since they aren’t part of mcontext_t
at all.
float_state: fpregset_t
State of floating point registers.
This isn’t part of the user ABI for Linux arm
siginfo: signalfd_siginfo
The signal info for the crash
pid: i32
The id of the crashing process
tid: i32
The id of the crashing thread
Implementations§
Source§impl CrashContext
impl CrashContext
pub fn as_bytes(&self) -> &[u8] ⓘ
pub fn from_bytes(bytes: &[u8]) -> Option<CrashContext>
Trait Implementations§
Source§impl Clone for CrashContext
impl Clone for CrashContext
Source§fn clone(&self) -> CrashContext
fn clone(&self) -> CrashContext
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more