PS_PSTOP(3PROC) Process Control Library Functions PS_PSTOP(3PROC)

NAME


ps_pstop, ps_pcontinue, ps_lstop, ps_lcontinue, ps_lrolltoaddr,
ps_kill - process and LWP control in libthread_db

SYNOPSIS


#include <proc_service.h>

ps_err_e ps_pstop(struct ps_prochandle *ph);


ps_err_e ps_pcontinue(struct ps_prochandle *ph);


ps_err_e ps_lstop(struct ps_prochandle *ph, lwpid_t lwpid);


ps_err_e ps_lcontinue(struct ps_prochandle *ph,
lwpid_t lwpid);


ps_err_e ps_lrolltoaddr(struct ps_prochandle *ph,
lwpid_t lwpid, psaddr_t go_addr, psaddr_t stop_addr);


ps_err_e ps_kill(struct ps_prochandle *ph, int signum);


DESCRIPTION


The ps_pstop() function stops the target process identified by ph,
while the ps_pcontinue() function allows it to resume.


The libthread_db() function uses ps_pstop() to freeze the target
process while it is under inspection. Within the scope of any single
call from outside libthread_db to a libthread_db routine,
libthread_db will call ps_pstop(), at most once. If it does, it will
call ps_pcontinue() within the scope of the same routine.


The controlling process may already have stopped the target process
when it calls libthread_db. In that case, it is not obligated to
resume the target process when libthread_db calls ps_pcontinue(). In
other words, ps_pstop() is mandatory, while ps_pcontinue() is
advisory. After ps_pstop(), the target process must be stopped;
after ps_pcontinue(), the target process may be running.


The ps_lstop() and ps_lcontinue() functions stop and resume a single
lightweight process (LWP) within the target process ph.


The ps_lrolltoaddr() function is used to roll an LWP forward out of a
critical section when the process is stopped. It is also used to run
the libthread_db agent thread on behalf of libthread. The
ps_lrolltoaddr() function is always called with the target process
stopped, that is, there has been a preceding call to ps_pstop(). The
specified LWP must be continued at the address go_addr, or at its
current address if go_addr is NULL. It should then be stopped when
its execution reaches stop_addr. This routine does not return until
the LWP has stopped at stop_addr.


The ps_kill() function directs the signal signum to the target
process for which the handle is ph. It has the same semantics as
kill(2).

RETURN VALUES


PS_OK
The call completed successfully. In the case of
ps_pstop(), the target process is stopped.


PS_BADLID
For ps_lstop(), ps_lcontinue() and ps_lrolltoaddr();
there is no LWP with id lwpid in the target process.


PS_ERR
The function did not return successfully.


ATTRIBUTES


See attributes(7) for description of the following attributes:


+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|MT Level | Safe |
+---------------+-----------------+

SEE ALSO


kill(2), libc_db(3LIB), proc_service(3PROC), attributes(7),
threads(7)

March 22, 2001 PS_PSTOP(3PROC)

tribblix@gmail.com :: GitHub :: Privacy