Go to main content

man pages section 3: Extended Library Functions, Volume 3

Exit Print View

Updated: July 2017
 
 

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);
ps_err_e ps_lgetcxregsize(struct ps_prochandle *ph,
    lwpid_t lwpid, int *cxregsize);
ps_err_e ps_lgetcxregs(struct ps_prochandle *ph,
    lwpid_t lwpid, caddr_t cxregset);
ps_err_e ps_lsetcxregs(struct ps_prochandle *ph,
    lwpid_t lwpid, caddr_t cxregset);

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 Runtime Linker Debugger Interface in Oracle Solaris 11.3 Linkers 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 target process's auxiliary vector.

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.

ps_lgetcxregsize()

Returns the size of CPU-specific extended registers.

ps_lgetcxregs()

Gets CPU-specific extended registers of the LWP.

ps_lsetcxregs()

Sets CPU-specific extended registers of the LWP.

x86

ps_lgetLDT()

Reads the local descriptor table of the LWP.

Attributes

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

ATTRIBUTE TYPE
ATTRIBUTE VALUE
MT Level
Safe

See Also

libc_db(3LIB), librtld_db(3LIB), ps_pread(3PROC), rtld_db(3EXT), attributes(5)

Oracle Solaris 11.3 Linkers and Libraries Guide