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

ps_pread, ps_pwrite, ps_pdread, ps_pdwrite, ps_ptread, ps_ptwrite - interfaces in libthread_db that target process memory access

#include <proc_service.h>
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);

These routines copy data between the address space of the target process and the controlling process. ps_pread() copies size bytes from address addr in the target process into buf in the controlling process. pr_pwrite() is like ps_pread() except that the direction of the copy is reversed; data is copied from the controlling process to the target process.

ps_pdread() and ps_ptread() behave identically to ps_pread(). ps_pdwrite() and ps_ptwrite() behave identically to ps_pwrite(). These functions can be implemented as simple aliases for the corresponding primary functions. They are artifacts of history that must be maintained.

PS_OK
The call returned successfully. size bytes were copied.

PS_BADADDR

Some part of the address range from addr through addr+size1 is not part of the address space of the target process.

PS_ERR

The function did not return successfully.

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

ATTRIBUTE TYPE ATTRIBUTE VALUE
MT Level Safe

rtld_db(3EXT), libc_db(3LIB), librtld_db(3LIB), proc_service(3PROC), attributes(7), threads(7)
October 12, 2007 OmniOS