[−][src]Struct uhyvelib::linux::gdb::CmdHandler   
Implementations
impl<'a> CmdHandler<'a>[src]
pub fn new(
    cpu: &'a mut UhyveCPU, 
    state: &'a RefCell<State>, 
    signal: VcpuExit<'a>
) -> CmdHandler<'a>[src]
cpu: &'a mut UhyveCPU,
state: &'a RefCell<State>,
signal: VcpuExit<'a>
) -> CmdHandler<'a>
pub fn continue_execution(&self, reason: VCont)[src]
Trait Implementations
impl<'a> Handler for CmdHandler<'a>[src]
pub fn should_cont(&self) -> Option<VCont>[src]
pub fn attached(&self, _pid: Option<u64>) -> Result<ProcessType, Error>[src]
pub fn halt_reason(&self) -> Result<StopReason, Error>[src]
pub fn query_supported_features(&self) -> Vec<String>[src]
pub fn query_supported_vcont(
    &self
) -> Result<Cow<'static, [VContFeature]>, Error>[src]
&self
) -> Result<Cow<'static, [VContFeature]>, Error>
pub fn set_current_thread(&self, id: ThreadId) -> Result<(), Error>[src]
TODO: actually implement thread switching for multithread support
pub fn current_thread(&self) -> Result<Option<ThreadId>, Error>[src]
Return the identifier of the current thread.
pub fn read_general_registers(&self) -> Result<Vec<u8>, Error>[src]
pub fn write_general_registers(&self, contents: &[u8]) -> Result<(), Error>[src]
pub fn read_memory(&self, mem: MemoryRegion) -> Result<Vec<u8>, Error>[src]
pub fn write_memory(&self, address: u64, bytes: &[u8]) -> Result<(), Error>[src]
pub fn insert_software_breakpoint(&self, bp: Breakpoint) -> Result<(), Error>[src]
pub fn remove_software_breakpoint(
    &self, 
    breakpoint: Breakpoint
) -> Result<(), Error>[src]
&self,
breakpoint: Breakpoint
) -> Result<(), Error>
pub fn insert_hardware_breakpoint(&self, bp: Breakpoint) -> Result<(), Error>[src]
pub fn remove_hardware_breakpoint(&self, bp: Breakpoint) -> Result<(), Error>[src]
pub fn insert_write_watchpoint(
    &self, 
    watchpoint: Watchpoint
) -> Result<(), Error>[src]
&self,
watchpoint: Watchpoint
) -> Result<(), Error>
Insert a write watchpoint.
pub fn insert_read_watchpoint(
    &self, 
    watchpoint: Watchpoint
) -> Result<(), Error>[src]
&self,
watchpoint: Watchpoint
) -> Result<(), Error>
Insert a read watchpoint.
pub fn insert_access_watchpoint(
    &self, 
    watchpoint: Watchpoint
) -> Result<(), Error>[src]
&self,
watchpoint: Watchpoint
) -> Result<(), Error>
Insert an access watchpoint.
pub fn remove_write_watchpoint(
    &self, 
    watchpoint: Watchpoint
) -> Result<(), Error>[src]
&self,
watchpoint: Watchpoint
) -> Result<(), Error>
Remove a write watchpoint.
pub fn remove_read_watchpoint(
    &self, 
    watchpoint: Watchpoint
) -> Result<(), Error>[src]
&self,
watchpoint: Watchpoint
) -> Result<(), Error>
Remove a read watchpoint.
pub fn remove_access_watchpoint(
    &self, 
    watchpoint: Watchpoint
) -> Result<(), Error>[src]
&self,
watchpoint: Watchpoint
) -> Result<(), Error>
Remove an access watchpoint.
pub fn vcont(
    &self, 
    actions: Vec<(VCont, Option<ThreadId>)>
) -> Result<StopReason, Error>[src]
&self,
actions: Vec<(VCont, Option<ThreadId>)>
) -> Result<StopReason, Error>
TODO: currently ignores tid/pid, and just continues/steps currently running cpu according to first command At most apply one action per thread. GDB likes to send default action for other threads, even if it knows only about 1: "vCont;s:1;c" (step thread 1, continue others)
pub fn thread_list(&self, reset: bool) -> Result<Vec<ThreadId>, Error>[src]
TODO: return actual number of threads, not just one
pub fn process_list(&self, reset: bool) -> Result<Vec<ProcessInfo>, Error>[src]
pub fn read_feature(
    &self, 
    name: String, 
    offset: u64, 
    length: u64
) -> Result<FileData, Error>[src]
&self,
name: String,
offset: u64,
length: u64
) -> Result<FileData, Error>
pub fn host_info(&self) -> Result<String, Error>[src]
pub fn detach(&self, _pid: Option<u64>) -> Result<(), Error>[src]
pub fn kill(&self, _pid: Option<u64>) -> Result<(), Error>[src]
pub fn ping_thread(&self, _id: ThreadId) -> Result<(), Error>[src]
pub fn read_register(&self, _register: u64) -> Result<Vec<u8>, Error>[src]
pub fn write_register(
    &self, 
    _register: u64, 
    _contents: &[u8]
) -> Result<(), Error>[src]
&self,
_register: u64,
_contents: &[u8]
) -> Result<(), Error>
pub fn search_memory(
    &self, 
    _address: u64, 
    _length: u64, 
    _bytes: &[u8]
) -> Result<Option<u64>, Error>[src]
&self,
_address: u64,
_length: u64,
_bytes: &[u8]
) -> Result<Option<u64>, Error>
pub fn invoke(&self, _: &[u8]) -> Result<String, Error>[src]
pub fn set_address_randomization(&self, _enable: bool) -> Result<(), Error>[src]
pub fn catch_syscalls(&self, _syscalls: Option<Vec<u64>>) -> Result<(), Error>[src]
pub fn set_pass_signals(&self, _signals: Vec<u64>) -> Result<(), Error>[src]
pub fn set_program_signals(&self, _signals: Vec<u64>) -> Result<(), Error>[src]
pub fn thread_info(&self, _thread: ThreadId) -> Result<String, Error>[src]
Auto Trait Implementations
impl<'a> !RefUnwindSafe for CmdHandler<'a>
impl<'a> !Send for CmdHandler<'a>
impl<'a> !Sync for CmdHandler<'a>
impl<'a> Unpin for CmdHandler<'a>
impl<'a> !UnwindSafe for CmdHandler<'a>
Blanket Implementations
impl<T> Any for T where
    T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
    T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
    T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
    U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
    U: Into<T>, [src]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, [src]
U: TryFrom<T>,