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

ps_lgetregs, ps_lsetregs, ps_lgetfpregs, ps_lsetfpregs, ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs - routines that access the target process register in libthread_db

#include <proc_service.h>
ps_err_e ps_lgetregs(struct ps_prochandle *ph, lwpid_t lid,

prgregset_t gregset);

ps_err_e ps_lsetregs(struct ps_prochandle *ph, lwpid_t lid,

static prgregset_t gregset);

ps_err_e ps_lgetfpregs(struct ps_prochandle *ph, lwpid_t lid,

prfpregset_t *fpregs);

ps_err_e ps_lsetfpregs(struct ps_prochandle *ph, lwpid_t lid,

static prfpregset_t *fpregs);

ps_err_e ps_lgetxregsize(struct ps_prochandle *ph, lwpid_t lid,

int *xregsize);

ps_err_e ps_lgetxregs(struct ps_prochandle *ph, lwpid_t lid,

caddr_t xregset);

ps_err_e ps_lsetxregs(struct ps_prochandle *ph, lwpid_t lid,

caddr_t xregset);

ps_lgetregs(), ps_lsetregs(), ps_lgetfpregs(), ps_lsetfpregs(), ps_lgetxregsize(), ps_lgetxregs(), ps_lsetxregs() read and write register sets from lightweight processes (LWPs) within the target process identified by ph. ps_lgetregs() gets the general registers of the LWP identified by lid, and ps_lsetregs() sets them. ps_lgetfpregs() gets the LWP's floating point register set, while ps_lsetfpregs() sets it.

ps_lgetxregsize(), ps_lgetxregs(), and ps_lsetxregs() are used to get and set the extended register set. Support for an extended register set depends on the instruction-set archicture. On platforms without support for these, controlling processes wlil still need to define them; however, they are allowed to simply return errors.

ps_lgetxregsize() returns in *xregsize the size of the architecture-dependent extra state registers. ps_lgetxregs() gets the extra state registers, and ps_lsetxregs() sets them. When getting the registers, the size of xregset must be at least the size returned by ps_lgetxregsize().

PS_OK

The call returned successfully.

PS_NOFREGS

Floating point registers are neither available for this architecture nor for this process.

PS_NOXREGS

Extra state registers are not available on this architecture.

PS_ERR

The function did not return successfully.

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

ATTRIBUTE TYPE ATTRIBUTE VALUE
MT Level Safe

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

January 23, 2023