Struct minidump::format::CONTEXT_AMD64[][src]

pub struct CONTEXT_AMD64 {
Show fields pub p1_home: u64, pub p2_home: u64, pub p3_home: u64, pub p4_home: u64, pub p5_home: u64, pub p6_home: u64, pub context_flags: u32, pub mx_csr: u32, pub cs: u16, pub ds: u16, pub es: u16, pub fs: u16, pub gs: u16, pub ss: u16, pub eflags: u32, pub dr0: u64, pub dr1: u64, pub dr2: u64, pub dr3: u64, pub dr6: u64, pub dr7: u64, pub rax: u64, pub rcx: u64, pub rdx: u64, pub rbx: u64, pub rsp: u64, pub rbp: u64, pub rsi: u64, pub rdi: u64, pub r8: u64, pub r9: u64, pub r10: u64, pub r11: u64, pub r12: u64, pub r13: u64, pub r14: u64, pub r15: u64, pub rip: u64, pub float_save: [u8; 512], pub vector_register: [u128; 26], pub vector_control: u64, pub debug_control: u64, pub last_branch_to_rip: u64, pub last_branch_from_rip: u64, pub last_exception_to_rip: u64, pub last_exception_from_rip: u64,
}
Expand description

An x86-64 (amd64) CPU context

This struct matches the definition of CONTEXT in WinNT.h for x86-64.

Fields

p1_home: u64p2_home: u64p3_home: u64p4_home: u64p5_home: u64p6_home: u64context_flags: u32mx_csr: u32cs: u16ds: u16es: u16fs: u16gs: u16ss: u16eflags: u32dr0: u64dr1: u64dr2: u64dr3: u64dr6: u64dr7: u64rax: u64rcx: u64rdx: u64rbx: u64rsp: u64rbp: u64rsi: u64rdi: u64r8: u64r9: u64r10: u64r11: u64r12: u64r13: u64r14: u64r15: u64rip: u64float_save: [u8; 512]

Floating point state

This is defined as a union in the C headers, but also MAXIMUM_SUPPORTED_EXTENSION is defined as 512 bytes.

Callers that want to access the underlying data can use Pread to read either an XMM_SAVE_AREA32 or SSE_REGISTERS struct from this raw data as appropriate.

vector_register: [u128; 26]vector_control: u64debug_control: u64last_branch_to_rip: u64last_branch_from_rip: u64last_exception_to_rip: u64last_exception_from_rip: u64

Trait Implementations

impl Clone for CONTEXT_AMD64[src]

pub fn clone(&self) -> CONTEXT_AMD64[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl CpuContext for CONTEXT_AMD64[src]

type Register = u64

The word size of general-purpose registers in the context.

fn get_register_always(&self, reg: &str) -> u64[src]

Get a register value regardless of whether it is valid.

fn set_register(&mut self, reg: &str, val: Self::Register) -> Option<()>[src]

Set a register value, if that register name it exists. Read more

fn memoize_register(&self, reg: &str) -> Option<&'static str>[src]

Gets a static version of the given register name, if possible.

fn stack_pointer_register_name(&self) -> &'static str[src]

Gets the name of the stack pointer register (for use with get_register/set_register).

fn instruction_pointer_register_name(&self) -> &'static str[src]

Gets the name of the instruction pointer register (for use with get_register/set_register).

fn get_register(
    &self,
    reg: &str,
    valid: &MinidumpContextValidity
) -> Option<Self::Register>
[src]

Get a register value if it is valid. Read more

fn format_register(&self, reg: &str) -> String[src]

Return a String containing the value of reg formatted to its natural width.

impl Debug for CONTEXT_AMD64[src]

pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl Default for CONTEXT_AMD64[src]

pub fn default() -> CONTEXT_AMD64[src]

Return CONTEXT_AMD64 { p1_home: Default::default(), p2_home: Default::default(), p3_home: Default::default(), p4_home: Default::default(), p5_home: Default::default(), p6_home: Default::default(), context_flags: Default::default(), mx_csr: Default::default(), cs: Default::default(), ds: Default::default(), es: Default::default(), fs: Default::default(), gs: Default::default(), ss: Default::default(), eflags: Default::default(), dr0: Default::default(), dr1: Default::default(), dr2: Default::default(), dr3: Default::default(), dr6: Default::default(), dr7: Default::default(), rax: Default::default(), rcx: Default::default(), rdx: Default::default(), rbx: Default::default(), rsp: Default::default(), rbp: Default::default(), rsi: Default::default(), rdi: Default::default(), r8: Default::default(), r9: Default::default(), r10: Default::default(), r11: Default::default(), r12: Default::default(), r13: Default::default(), r14: Default::default(), r15: Default::default(), rip: Default::default(), float_save: [0 ; 512], vector_register: [0 ; 26], vector_control: Default::default(), debug_control: Default::default(), last_branch_to_rip: Default::default(), last_branch_from_rip: Default::default(), last_exception_to_rip: Default::default(), last_exception_from_rip: Default::default() }

impl SizeWith<Endian> for CONTEXT_AMD64[src]

pub fn size_with(ctx: &Endian) -> usize[src]

impl<'a> TryFromCtx<'a, Endian, [u8]> for CONTEXT_AMD64 where
    CONTEXT_AMD64: 'a, 
[src]

type Error = Error

pub fn try_from_ctx(
    src: &'a [u8],
    ctx: Endian
) -> Result<(CONTEXT_AMD64, usize), <CONTEXT_AMD64 as TryFromCtx<'a, Endian, [u8]>>::Error>
[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.