#[repr(C)]pub struct _dr_kernel_xfer_info_t {
pub type_: dr_kernel_xfer_type_t,
pub source_mcontext: *const dr_mcontext_t,
pub target_pc: app_pc,
pub target_xsp: reg_t,
pub sig: c_int,
}Expand description
Data structure passed for dr_register_kernel_xfer_event().
Fields§
§type_: dr_kernel_xfer_type_tThe type of event.
source_mcontext: *const dr_mcontext_tThe source machine context which is about to be changed. This may be NULL if it is unknown, which is the case for #DR_XFER_CALLBACK_DISPATCHER. For #DR_XFER_RSEQ_ABORT, due to the constraints of handling restartable sequences, the abort PC will point prior to the committing store, while that store already executed during instrumentation. We recommend that clients treat the store as never-executed in that situation, if possible, to produce a more-representative sequence.
target_pc: app_pcThe target program counter of the transfer. To obtain the full target state, call dr_get_mcontext(). (For efficiency purposes, only frequently needed state is included by default.)
target_xsp: reg_tThe target stack pointer of the transfer. To obtain the full target state, call dr_get_mcontext(). (For efficiency purposes, only frequently needed state is included by default.)
sig: c_intFor #DR_XFER_SIGNAL_DELIVERY and #DR_XFER_SIGNAL_RETURN, the signal number.
Trait Implementations§
Source§impl Clone for _dr_kernel_xfer_info_t
impl Clone for _dr_kernel_xfer_info_t
Source§fn clone(&self) -> _dr_kernel_xfer_info_t
fn clone(&self) -> _dr_kernel_xfer_info_t
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for _dr_kernel_xfer_info_t
impl Debug for _dr_kernel_xfer_info_t
impl Copy for _dr_kernel_xfer_info_t
Auto Trait Implementations§
impl Freeze for _dr_kernel_xfer_info_t
impl RefUnwindSafe for _dr_kernel_xfer_info_t
impl !Send for _dr_kernel_xfer_info_t
impl !Sync for _dr_kernel_xfer_info_t
impl Unpin for _dr_kernel_xfer_info_t
impl UnsafeUnpin for _dr_kernel_xfer_info_t
impl UnwindSafe for _dr_kernel_xfer_info_t
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more