http://bugs.winehq.org/show_bug.cgi?id=1816
------- Additional Comments From grubba@grubba.org 2005-27-10 09:18 ------- This bug is still valid for Wine 0.9 on Solaris 10/x86.
According to the ptrace(3C) man page no symbolic defines are available, and /proc should be used instead anyway.
#include <sys/proc.h> int lfd = open("/proc/$$/lstatus", O_RDWR); /* Insert pid here. */ struct stat st; struct prheader *prh; struct lwpstatus *lwpstat;
fstat(lfd, &st); prh = mmap(NULL, st.st_size, PROT_READ|PROT_WRITE, lfd, 0); lwpstat = (struct lwpstat *)(((char *)(prh + 1)) + prh->pr_entsize * lwpno);
The integer registers are then available by indexing lwpstat->pr_reg with SS, UESP, EFL, CS, EIP, ERR, TRAPNO, EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI, DS, ES, FS and GS. The fp registers are available in the prfpregset_t lwpstat->pr_fpreg.