pub trait CpuContext {
    type Register: LowerHex;

    const REGISTERS: &'static [&'static str];

    fn get_register_always(&self, reg: &str) -> Self::Register;
fn set_register(&mut self, reg: &str, val: Self::Register) -> Option<()>;
fn stack_pointer_register_name(&self) -> &'static str;
fn instruction_pointer_register_name(&self) -> &'static str; fn register_is_valid(
        &self,
        reg: &str,
        valid: &MinidumpContextValidity
    ) -> bool { ... }
fn get_register(
        &self,
        reg: &str,
        valid: &MinidumpContextValidity
    ) -> Option<Self::Register> { ... }
fn memoize_register(&self, reg: &str) -> Option<&'static str> { ... }
fn format_register(&self, reg: &str) -> String { ... }
fn registers(&self) -> CpuRegisters<'_, Self>Notable traits for CpuRegisters<'a, T>impl<'a, T> Iterator for CpuRegisters<'a, T> where
    T: CpuContext
type Item = (&'static str, T::Register);
{ ... }
fn valid_registers<'a>(
        &'a self,
        valid: &'a MinidumpContextValidity
    ) -> CpuRegisters<'a, Self>Notable traits for CpuRegisters<'a, T>impl<'a, T> Iterator for CpuRegisters<'a, T> where
    T: CpuContext
type Item = (&'static str, T::Register);
{ ... } }
Expand description

Generic over the specifics of a CPU context.

Associated Types

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

Associated Constants

General purpose registers in this context type.

Required methods

Get a register value regardless of whether it is valid.

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

Returns None if the register name isn’t supported.

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

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

Provided methods

Gets whether the given register is valid

This is exposed so that the context can map aliases. For instance “lr” and “x30” are aliases in ARM64.

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.

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

Returns the default name of the register for register name aliases.

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

An iterator over all registers in this context.

This iterator yields registers and values regardless of whether the register is valid. To get valid values, use valid_registers, instead.

An iterator over valid registers in this context.

This iterator yields valid registers and their values.

Implementors