Skip to main content

LinuxProcessMemoryReader

Enum LinuxProcessMemoryReader 

Source
pub enum LinuxProcessMemoryReader {
    Fast {
        pid: Pid,
    },
    Slow {
        file: File,
    },
}
Expand description

The memory reader for the process This concrete type is used for easier generic trait implementation in the coredump module.

Variants§

§

Fast

A fast process memory reader employing the process_vm_readv system call available on Linux 3.2+. It might be disabled on some systems in the kernel configuration.

Fields

§pid: Pid

The process ID of the target process

§

Slow

A slow but more compatible process memory reader, uses the /proc/<pid>/mem file.

Fields

§file: File

The file handle to the /proc/<pid>/mem file

Implementations§

Source§

impl LinuxProcessMemoryReader

Source

pub fn new(pid: Pid) -> Result<Self, CoreError>

Create a new process memory reader for the given process ID. It will use the fast method if available, otherwise it will fall back to the slow method.

Trait Implementations§

Source§

impl ReadProcessMemory for LinuxProcessMemoryReader

Source§

fn read_process_memory( &mut self, base: usize, buf: &mut [u8], ) -> Result<usize, CoreError>

Read process memory into buf starting at the virtual address base, and returns the number of bytes and or the error.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more