1 //! Provide exec-file path for the target. 2 use crate::common::Pid; 3 use crate::target::Target; 4 use crate::target::TargetResult; 5 6 /// Target Extension - Provide current exec-file. 7 /// 8 /// NOTE: this extension is primarily intended to be used alongside the [`Host 9 /// I/O Extensions`](crate::target::ext::host_io), which enables the GDB client 10 /// to read the executable file directly from the target 11 pub trait ExecFile: Target { 12 /// Get full absolute path of the file that was executed to create 13 /// process `pid` running on the remote system. 14 /// 15 /// If `pid` is `None`, return the filename corresponding to the 16 /// currently executing process. 17 /// 18 /// Return the number of bytes written into `buf` (which may be less than 19 /// `length`). 20 /// 21 /// If `offset` is greater than the length of the underlying data, return 22 /// `Ok(0)`. get_exec_file( &self, pid: Option<Pid>, offset: u64, length: usize, buf: &mut [u8], ) -> TargetResult<usize, Self>23 fn get_exec_file( 24 &self, 25 pid: Option<Pid>, 26 offset: u64, 27 length: usize, 28 buf: &mut [u8], 29 ) -> TargetResult<usize, Self>; 30 } 31 32 define_ext!(ExecFileOps, ExecFile); 33