Trait Platform

Source
pub trait Platform<'data> {
    type Word: Integral;

    // Required methods
    fn create_context(
        elf: &File<'data, &'data [u8]>,
    ) -> Result<Self, TraceError>
       where Self: Sized;
    fn unwind(
        &mut self,
        device_memory: &mut DeviceMemory<'_, Self::Word>,
        previous_frame: Option<&mut Frame<Self::Word>>,
    ) -> Result<UnwindResult<Self::Word>, TraceError>;
}

Required Associated Types§

Required Methods§

Source

fn create_context(elf: &File<'data, &'data [u8]>) -> Result<Self, TraceError>
where Self: Sized,

Source

fn unwind( &mut self, device_memory: &mut DeviceMemory<'_, Self::Word>, previous_frame: Option<&mut Frame<Self::Word>>, ) -> Result<UnwindResult<Self::Word>, TraceError>

Unwind the stack of the platform to the previous exception if possible

The device memory is mutated so that it is brought back to the state it was before the previous exception.

Based on the unwinding, new information about the previous frame can be discovered. In that case, that frame can be updated with that info.

Implementors§

Source§

impl<'data> Platform<'data> for CortexMPlatform<'data>