Struct minidump::format::CONTEXT_AMD64
source · pub struct CONTEXT_AMD64 {Show 46 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: u64
§p2_home: u64
§p3_home: u64
§p4_home: u64
§p5_home: u64
§p6_home: u64
§context_flags: u32
§mx_csr: u32
§cs: u16
§ds: u16
§es: u16
§fs: u16
§gs: u16
§ss: u16
§eflags: u32
§dr0: u64
§dr1: u64
§dr2: u64
§dr3: u64
§dr6: u64
§dr7: u64
§rax: u64
§rcx: u64
§rdx: u64
§rbx: u64
§rsp: u64
§rbp: u64
§rsi: u64
§rdi: u64
§r8: u64
§r9: u64
§r10: u64
§r11: u64
§r12: u64
§r13: u64
§r14: u64
§r15: u64
§rip: u64
§float_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: u64
§debug_control: u64
§last_branch_to_rip: u64
§last_branch_from_rip: u64
§last_exception_to_rip: u64
§last_exception_from_rip: u64
Trait Implementations§
source§impl Clone for CONTEXT_AMD64
impl Clone for CONTEXT_AMD64
source§fn clone(&self) -> CONTEXT_AMD64
fn clone(&self) -> CONTEXT_AMD64
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl CpuContext for CONTEXT_AMD64
impl CpuContext for CONTEXT_AMD64
source§fn get_register_always(&self, reg: &str) -> u64
fn get_register_always(&self, reg: &str) -> u64
source§fn set_register(&mut self, reg: &str, val: Self::Register) -> Option<()>
fn set_register(&mut self, reg: &str, val: Self::Register) -> Option<()>
source§fn stack_pointer_register_name(&self) -> &'static str
fn stack_pointer_register_name(&self) -> &'static str
source§fn instruction_pointer_register_name(&self) -> &'static str
fn instruction_pointer_register_name(&self) -> &'static str
source§fn register_is_valid(&self, reg: &str, valid: &MinidumpContextValidity) -> bool
fn register_is_valid(&self, reg: &str, valid: &MinidumpContextValidity) -> bool
source§fn get_register(
&self,
reg: &str,
valid: &MinidumpContextValidity
) -> Option<Self::Register>
fn get_register( &self, reg: &str, valid: &MinidumpContextValidity ) -> Option<Self::Register>
source§fn memoize_register(&self, reg: &str) -> Option<&'static str>
fn memoize_register(&self, reg: &str) -> Option<&'static str>
source§fn format_register(&self, reg: &str) -> String
fn format_register(&self, reg: &str) -> String
reg
formatted to its natural width.source§fn registers(&self) -> CpuRegisters<'_, Self> ⓘ
fn registers(&self) -> CpuRegisters<'_, Self> ⓘ
source§fn valid_registers<'a>(
&'a self,
valid: &'a MinidumpContextValidity
) -> CpuRegisters<'a, Self> ⓘ
fn valid_registers<'a>( &'a self, valid: &'a MinidumpContextValidity ) -> CpuRegisters<'a, Self> ⓘ
source§impl Debug for CONTEXT_AMD64
impl Debug for CONTEXT_AMD64
source§impl Default for CONTEXT_AMD64
impl Default for CONTEXT_AMD64
source§fn default() -> CONTEXT_AMD64
fn default() -> CONTEXT_AMD64
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() }