Trait minidump::CpuContext[][src]

pub trait CpuContext {
    type Register: LowerHex;
    fn get_register_always(&self, reg: &str) -> Self::Register;
fn set_register(&mut self, reg: &str, val: Self::Register) -> Option<()>;
fn memoize_register(&self, reg: &str) -> Option<&'static str>;
fn stack_pointer_register_name(&self) -> &'static str;
fn instruction_pointer_register_name(&self) -> &'static str; fn get_register(
        &self,
        reg: &str,
        valid: &MinidumpContextValidity
    ) -> Option<Self::Register> { ... }
fn format_register(&self, reg: &str) -> String { ... } }
Expand description

Generic over the specifics of a CPU context.

Associated Types

type Register: LowerHex[src]

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

Required methods

fn get_register_always(&self, reg: &str) -> Self::Register[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.

Returns None if the register name isn’t supported.

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).

Provided methods

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

Get a register value if it is valid.

Get the value of the register named reg from this CPU context if valid indicates that it has a valid value, otherwise return None.

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

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

Implementors

impl CpuContext for CONTEXT_AMD64[src]

type Register = u64

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

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

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

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

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

impl CpuContext for CONTEXT_ARM64[src]

type Register = u64

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

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

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

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

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

impl CpuContext for CONTEXT_ARM64_OLD[src]

type Register = u64

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

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

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

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

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

impl CpuContext for CONTEXT_X86[src]

type Register = u32

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

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

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

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

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