This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [patch] linux ptrace updates
On Mon, Sep 18, 2006 at 04:26:18AM -0400, Mike Frysinger wrote:
> On Monday 18 September 2006 03:54, Jakub Jelinek wrote:
> > Apparently not that simple, because you missed 4 of the 5 sys/ptrace.h
> > headers.
>
> i didnt touch the arch ones on purpose; i didnt test them ... in the future
> i'll be and sure to note such things
>
> also, the ia64 portion you posted is incomplete ... the header already defines
> PTRACE_GETSIGINFO and PTRACE_SETSIGINFO to the old values so they'll need to
> be removed first
Missed that, thanks. And while fixing that I noticed that the
PT_GETEVENTMSG define was wrong, both in the patch that was checked in
last night and in the patch I sent (as I just copied those chunks from
there). So here is a newer patch.
2006-09-18 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sys/ptrace.h (PT_GETEVENTMSG): Fix pasto.
* sysdeps/unix/sysv/linux/s390/sys/ptrace.h (PTRACE_SETOPTIONS,
PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Define.
* sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h (PTRACE_SETOPTIONS,
PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Likewise.
* sysdeps/unix/sysv/linux/sparc/sys/ptrace.h (PTRACE_SETOPTIONS,
PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Likewise.
* sysdeps/unix/sysv/linux/ia64/sys/ptrace.h (PTRACE_SETOPTIONS,
PTRACE_GETEVENTMSG): Likewise.
(PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Change to the arch independent
values.
--- libc/sysdeps/unix/sysv/linux/sys/ptrace.h.jj 2006-09-18 09:08:49.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sys/ptrace.h 2006-09-18 12:17:27.000000000 +0200
@@ -118,7 +118,7 @@ enum __ptrace_request
/* Get last ptrace message. */
PTRACE_GETEVENTMSG = 0x4201,
-#define PT_GETEVENTMSG PT_SETOPTIONS
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
/* Get siginfo for process. */
PTRACE_GETSIGINFO = 0x4202,
--- libc/sysdeps/unix/sysv/linux/s390/sys/ptrace.h.jj 2001-07-06 06:56:20.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/s390/sys/ptrace.h 2006-09-18 12:18:45.000000000 +0200
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux version.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2006 Free Software Foundation, Inc.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
This file is part of the GNU C Library.
@@ -118,8 +118,24 @@ enum __ptrace_request
#define PT_DETACH PTRACE_DETACH
/* Continue and stop at the next (return from) syscall. */
- PTRACE_SYSCALL = 24
+ PTRACE_SYSCALL = 24,
#define PT_SYSCALL PTRACE_SYSCALL
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
};
/* Perform process tracing functions. REQUEST is one of the values
--- libc/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h.jj 2001-07-06 06:56:19.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h 2006-09-18 12:18:19.000000000 +0200
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux version.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -79,8 +79,24 @@ enum __ptrace_request
#define PT_DETACH PTRACE_DETACH
/* Continue and stop at the next (return from) syscall. */
- PTRACE_SYSCALL = 24
+ PTRACE_SYSCALL = 24,
#define PT_SYSCALL PTRACE_SYSCALL
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
};
/* Perform process tracing functions. REQUEST is one of the values
--- libc/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h.jj 2001-07-06 06:56:21.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h 2006-09-18 12:18:31.000000000 +0200
@@ -1,5 +1,6 @@
/* `ptrace' debugger support interface. Linux/SPARC version.
- Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2006
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -148,12 +149,11 @@ enum __ptrace_request
#endif
/* Continue and stop at the next (return from) syscall. */
- PTRACE_SYSCALL = 24
+ PTRACE_SYSCALL = 24,
#define PTRACE_SYSCALL PTRACE_SYSCALL
#if __WORDSIZE == 64
- ,
/* Get all floating point registers used by a processes.
This is not supported on all machines. */
PTRACE_GETFPREGS = 25,
@@ -161,10 +161,26 @@ enum __ptrace_request
/* Set all floating point registers used by a processes.
This is not supported on all machines. */
- PTRACE_SETFPREGS = 26
+ PTRACE_SETFPREGS = 26,
#define PT_SETFPREGS PTRACE_SETFPREGS
#endif
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
};
/* Perform process tracing functions. REQUEST is one of the values
--- libc/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h.jj 2003-11-29 10:20:18.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h 2006-09-18 12:18:02.000000000 +0200
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/ia64 version.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -75,14 +75,6 @@ enum __ptrace_request
PTRACE_SINGLEBLOCK = 12,
#define PT_STEPBLOCK PTRACE_SINGLEBLOCK
- /* Get siginfo for process. */
- PTRACE_GETSIGINFO = 13,
-#define PT_GETSIGINFO PTRACE_GETSIGINFO
-
- /* Set new siginfo for process. */
- PTRACE_SETSIGINFO = 14,
-#define PT_GETSIGINFO PTRACE_GETSIGINFO
-
/* Attach to a process that is already running. */
PTRACE_ATTACH = 16,
#define PT_ATTACH PTRACE_ATTACH
@@ -100,8 +92,24 @@ enum __ptrace_request
#define PT_SETREGS PTRACE_SETREGS
/* Continue and stop at the next (return from) syscall. */
- PTRACE_SYSCALL = 24
+ PTRACE_SYSCALL = 24,
#define PT_SYSCALL PTRACE_SYSCALL
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
};
/* pt_all_user_regs is used for PTRACE_GETREGS/PTRACE_SETREGS. */
--- libc/ChangeLog.jj 2006-09-18 09:08:37.000000000 +0200
+++ libc/ChangeLog 2006-09-18 09:51:48.000000000 +0200
@@ -1,9 +1,9 @@
2006-09-17 Mike Frysinger <vapier@gentoo.org>
- * sysdeps/unix/sysv/linux/sys/ptrace.h [PTRACE_SETOPTIONS,
- PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO]: Define.
- * sysdeps/unix/sysv/linux/ptrace.c [PTRACE_SETOPTIONS,
- PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO]: Check.
+ * sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_SETOPTIONS,
+ PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Define.
+ * sysdeps/unix/sysv/linux/ptrace.c (ptrace): Check PTRACE_SETOPTIONS,
+ PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO and PTRACE_SETSIGINFO.
2006-09-16 Jakub Jelinek <jakub@redhat.com>
Jakub