Process

Struct Process 

Source
pub struct Process {
    pub pid: Pid,
    pub debug_syms: bool,
    pub perf_map: bool,
    pub map_files: bool,
    pub vdso: bool,
    /* private fields */
}
Expand description

Configuration for process based address symbolization.

This type is used in the Source::Process variant.

The corresponding addresses supplied to Symbolizer::symbolize are expected to be absolute addresses (Input::AbsAddr) as valid within the process identified by the pid member.

§Notes

Please note that process symbolization is generally a privileged operation and may require the granting of additional capabilities compared to other symbolization sources.

Fields§

§pid: Pid

The referenced process’ ID.

§debug_syms: bool

Whether or not to consult debug symbols to satisfy the request (if present).

On top of this runtime configuration, the crate needs to be built with the dwarf feature to actually consult debug symbols. If neither is satisfied, ELF symbols will be used.

§perf_map: bool

Whether to incorporate a process’ perf map file into the symbolization procedure.

Perf map files mostly have relevance in just-in-time compiled languages, where they provide an interface for the runtime to expose addresses of dynamic symbols to profiling tools.

§map_files: bool

Whether to work with /proc/<pid>/map_files/ entries or with symbolic paths mentioned in /proc/<pid>/maps instead.

map_files usage is generally strongly encouraged, as symbolic path usage is unlikely to work reliably in mount namespace contexts or when files have been deleted from the file system. However, by using symbolic paths the need for requiring the SYS_ADMIN capability is eliminated.

§vdso: bool

Whether or not to symbolize addresses in a vDSO (virtual dynamic shared object).

Implementations§

Source§

impl Process

Source

pub fn new(pid: Pid) -> Self

Create a new Process object using the provided pid.

debug_syms, perf_map, map_files, and vdso default to true when using this constructor.

Trait Implementations§

Source§

impl Clone for Process

Source§

fn clone(&self) -> Process

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Process

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
Source§

impl From<Process> for Source<'static>

Source§

fn from(process: Process) -> Self

Converts to this type from the input type.

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.