PROC_SERVICE(3PROC) Process Control Library Functions PROC_SERVICE(3PROC)
NAME
proc_service - process service interfaces
SYNOPSIS
#include <proc_service.h>
ps_err_e ps_pdmodel(
struct ps_prochandle *ph,
int *data_model);
ps_err_e ps_pglobal_lookup(
struct ps_prochandle *ph,
const char *object_name,
const char *sym_name,
psaddr_t *sym_addr);
ps_err_e ps_pglobal_sym(
struct ps_prochandle *ph,
const char *object_name,
const char *sym_name,
ps_sym_t *sym);
ps_err_e ps_pread(
struct ps_prochandle *ph,
psaddr_t addr,
void *buf,
size_t size);
ps_err_e ps_pwrite(
struct ps_prochandle *ph,
psaddr_t addr,
const void *buf,
size_t size);
ps_err_e ps_pdread(
struct ps_prochandle *ph,
psaddr_t addr,
void *buf,
size_t size);
ps_err_e ps_pdwrite(
struct ps_prochandle *ph,
psaddr_t addr,
const void *buf,
size_t size);
ps_err_e ps_ptread(
struct ps_prochandle *ph,
psaddr_t addr,
void *buf,
size_t size);
ps_err_e ps_ptwrite(
struct ps_prochandle *ph,
psaddr_t addr,
const void *buf,
size_t size);
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_lgetregs(
struct ps_prochandle *ph,
lwpid_t lwpid,
prgregset_t gregset);
ps_err_e ps_lsetregs(
struct ps_prochandle *ph,
lwpid_t lwpid,
const prgregset_t gregset);
ps_err_e ps_lgetfpregs(
struct ps_prochandle *ph,
lwpid_t lwpid,
prfpregset_t *fpregset);
ps_err_e ps_lsetfpregs(
struct ps_prochandle *ph,
lwpid_t lwpid,
const prfpregset_t *fpregset);
ps_err_e ps_pauxv(
struct ps_prochandle *ph,
const auxv_t **auxp);
ps_err_e ps_kill(
struct ps_prochandle *ph,
int sig);
ps_err_e ps_lrolltoaddr(
struct ps_prochandle *ph,
lwpid_t lwpid,
psaddr_t go_addr,
psaddr_t stop_addr);
void ps_plog(
const char *fmt);
ps_err_e ps_lgetxregsize(
struct ps_prochandle *ph,
lwpid_t lwpid,
int *xregsize);
ps_err_e ps_lgetxregs(
struct ps_prochandle *ph,
lwpid_t lwpid,
caddr_t xregset);
ps_err_e ps_lsetxregs(
struct ps_prochandle *ph,
lwpid_t lwpid,
caddr_t xregset);
x86 ps_err_e ps_lgetLDT(
struct ps_prochandle *ph,
lwpid_t lwpid,
struct ssd *ldt);
DESCRIPTION
Every program that links
libthread_db or
librtld_db must provide a
set of process control primitives that allow
libthread_db and
librtld_db to access memory and registers in the target process, to
start and to stop the target process, and to look up symbols in the
target process. See
libc_db(3LIB). For information on
librtld_db,
refer to the
Linker and Libraries Guide.
Refer to the individual reference manual pages that describe these
routines for a functional specification that clients of
libthread_db and
librtld_db can use to implement this required interface. The
<
proc_service.h> header lists the C declarations of these routines.
FUNCTIONS
ps_pdmodel() Returns the data model of the target process.
ps_pglobal_lookup() Looks up the symbol in the symbol table of the
load object in the target process and returns
its address.
ps_pglobal_sym() Looks up the symbol in the symbol table of the
load object in the target process and returns
its symbol table entry.
ps_pread() Copies
size bytes from the target process to
the controlling process.
ps_pwrite() Copies
size bytes from the controlling process
to the target process.
ps_pdread() Identical to
ps_pread().
ps_pdwrite() Identical to
ps_pwrite().
ps_ptread() Identical to
ps_pread().
ps_ptwrite() Identical to
ps_pwrite().
ps_pstop() Stops the target process.
ps_pcontinue() Resumes target process.
ps_lstop() Stops a single lightweight process (
LWP )
within the target process.
ps_lcontinue() Resumes a single
LWP within the target
process.
ps_lgetregs() Gets the general registers of the
LWP.
ps_lsetregs() Sets the general registers of the
LWP.
ps_lgetfpregs() Gets the
LWP`s floating point register set.
ps_lsetfpregs() Sets the
LWP`s floating point register set.
ps_pauxv() Returns a pointer to a read-only copy of the
auxiliary vector of the target process.
ps_kill() Sends signal to target process.
ps_lrolltoaddr() Rolls the
LWP out of a critical section when
the process is stopped.
ps_plog() Logs a message.
ps_lgetxregsize() Returns the size of the architecture-dependent
extra state registers.
ps_lgetxregs() Gets the extra state registers of the
LWP.
ps_lsetxregs() Sets the extra state registers of the
LWP.
x86 ps_lgetLDT() Reads the local descriptor table of the
LWP.
ATTRIBUTES
See
attributes(7) for description of the following attributes:
+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|MT Level | Safe |
+---------------+-----------------+
SEE ALSO
rtld_db(3EXT),
libc_db(3LIB),
librtld_db(3LIB),
ps_pread(3PROC),
attributes(7) Linker and Libraries Guide January 23, 2023 PROC_SERVICE(3PROC)