From: Roland McGrath Date: Tue, 14 Jan 2003 09:46:21 +0000 (+0000) Subject: 2003-01-14 Roland McGrath X-Git-Tag: v4.5.18~857 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bf621d40c5ba196abc89fa7445f86a75791b4f1a;p=strace 2003-01-14 Roland McGrath * process.c: Use regardless of . (sys_ptrace): Use printxval. (ptrace_cmds): Make PTRACE_GETREGS et al conditional on #ifdef PTRACE_* instead of only #ifdef SUNOS4. Add PTRACE_[GS]ETFPXREGS. --- diff --git a/process.c b/process.c index 965822ca..c66e7c2f 100644 --- a/process.c +++ b/process.c @@ -70,6 +70,11 @@ #endif #endif /* HAVE_ASM_REG_H */ +#ifdef HAVE_LINUX_PTRACE_H +#undef PTRACE_SYSCALL +#include +#endif + #ifdef HAVE_SYS_REG_H # include #ifndef PTRACE_PEEKUSR @@ -78,9 +83,6 @@ #ifndef PTRACE_POKEUSR # define PTRACE_POKEUSR PTRACE_POKEUSER #endif -#elif defined(HAVE_LINUX_PTRACE_H) -#undef PTRACE_SYSCALL -#include #endif #ifdef HAVE_LINUX_FUTEX_H @@ -1945,11 +1947,25 @@ static struct xlat ptrace_cmds[] = { { PTRACE_SINGLESTEP, "PTRACE_SINGLESTEP" }, { PTRACE_ATTACH, "PTRACE_ATTACH" }, { PTRACE_DETACH, "PTRACE_DETACH" }, -#ifdef SUNOS4 +#ifdef PTRACE_GETREGS { PTRACE_GETREGS, "PTRACE_GETREGS" }, +#endif +#ifdef PTRACE_SETREGS { PTRACE_SETREGS, "PTRACE_SETREGS" }, +#endif +#ifdef PTRACE_GETFPREGS { PTRACE_GETFPREGS, "PTRACE_GETFPREGS", }, +#endif +#ifdef PTRACE_SETFPREGS { PTRACE_SETFPREGS, "PTRACE_SETFPREGS", }, +#endif +#ifdef PTRACE_GETFPXREGS + { PTRACE_GETFPXREGS, "PTRACE_GETFPXREGS", }, +#endif +#ifdef PTRACE_SETFPXREGS + { PTRACE_SETFPXREGS, "PTRACE_SETFPXREGS", }, +#endif +#ifdef SUNOS4 { PTRACE_READDATA, "PTRACE_READDATA" }, { PTRACE_WRITEDATA, "PTRACE_WRITEDATA" }, { PTRACE_READTEXT, "PTRACE_READTEXT" }, @@ -2500,19 +2516,18 @@ int sys_ptrace(tcp) struct tcb *tcp; { - char *cmd; struct xlat *x; long addr; - cmd = xlookup(ptrace_cmds, tcp->u_arg[0]); - if (!cmd) + if (entering(tcp)) { + printxval(ptrace_cmds, tcp->u_arg[0], #ifndef FREEBSD - cmd = "PTRACE_???"; + "PTRACE_???" #else - cmd = "PT_???"; + "PT_???" #endif - if (entering(tcp)) { - tprintf("%s, %lu, ", cmd, tcp->u_arg[1]); + ); + tprintf(", %lu, ", tcp->u_arg[1]); addr = tcp->u_arg[2]; #ifndef FREEBSD if (tcp->u_arg[0] == PTRACE_PEEKUSER