Struct py_spy_for_datakit::PythonSpy
source · pub struct PythonSpy {
pub pid: Pid,
pub process: Process,
pub version: Version,
pub interpreter_address: usize,
pub threadstate_address: usize,
pub python_filename: PathBuf,
pub version_string: String,
pub config: Config,
pub short_filenames: HashMap<String, Option<String>>,
pub python_thread_ids: HashMap<u64, Tid>,
pub python_thread_names: HashMap<u64, String>,
pub dockerized: bool,
}Expand description
Lets you retrieve stack traces of a running python program
Fields§
§pid: Pid§process: Process§version: Version§interpreter_address: usize§threadstate_address: usize§python_filename: PathBuf§version_string: String§config: Config§short_filenames: HashMap<String, Option<String>>§python_thread_ids: HashMap<u64, Tid>§python_thread_names: HashMap<u64, String>§dockerized: boolImplementations§
source§impl PythonSpy
impl PythonSpy
sourcepub fn new(pid: Pid, config: &Config) -> Result<PythonSpy, Error>
pub fn new(pid: Pid, config: &Config) -> Result<PythonSpy, Error>
Constructs a new PythonSpy object.
sourcepub fn retry_new(
pid: Pid,
config: &Config,
max_retries: u64
) -> Result<PythonSpy, Error>
pub fn retry_new(
pid: Pid,
config: &Config,
max_retries: u64
) -> Result<PythonSpy, Error>
Creates a PythonSpy object, retrying up to max_retries times. Mainly useful for the case where the process is just started and symbols or the python interpreter might not be loaded yet.
sourcepub fn get_stack_traces(&mut self) -> Result<Vec<StackTrace>, Error>
pub fn get_stack_traces(&mut self) -> Result<Vec<StackTrace>, Error>
Gets a StackTrace for each thread in the current process