Struct crash_context::CrashContext
source · #[repr(C)]pub struct CrashContext {
pub context: ucontext_t,
pub float_state: fpregset_t,
pub siginfo: signalfd_siginfo,
pub pid: pid_t,
pub tid: pid_t,
}
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: pid_t
The id of the crashing process
tid: pid_t
The id of the crashing thread
Implementations§
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