* gdb_ptrace.h [PTRACE_TYPE_ARG5] (ptrace): New macro.
authorMark Kettenis <kettenis@gnu.org>
Sat, 20 Nov 2004 16:52:22 +0000 (16:52 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sat, 20 Nov 2004 16:52:22 +0000 (16:52 +0000)
* infptrace.c (call_ptrace): Simply call ptrace with four
arguments.

gdb/ChangeLog
gdb/gdb_ptrace.h
gdb/infptrace.c

index 4c8cfe35c20809b438b4b036911c1a31e7ae7206..f280853a5998ee328645b28b5a1fa0e983025f48 100644 (file)
@@ -1,5 +1,9 @@
 2004-11-20  Mark Kettenis  <kettenis@gnu.org>
 
+       * gdb_ptrace.h [PTRACE_TYPE_ARG5] (ptrace): New macro.
+       * infptrace.c (call_ptrace): Simply call ptrace with four
+       arguments.
+
        * dbxread.c (process_one_symbol): Fix a few coding standard
        issues.  Improve code formatting.
 
index 62a9949d41390f396ac13d698dc39cb5ce5788b0..f060ce6fc2e9d1c4b01c6663b2ffa58019a7542f 100644 (file)
 /* Some systems, in particular DEC OSF/1, Digital Unix, Compaq Tru64
    or whatever it's called these days, don't provide a prototype for
    ptrace.  Provide one to silence compiler warnings.  */
+
 #ifndef HAVE_DECL_PTRACE
 extern PTRACE_TYPE_RET ptrace();
 #endif
 
+/* Some systems, at least AIX and HP-UX have a ptrace with five
+   arguments.  Since we never use the fifth argument, define a ptrace
+   macro that calls the real ptrace with the last argument set to
+   zero.  */
+
+#ifdef PTRACE_TYPE_ARG5
+# define ptrace(request, pid, addr, data) ptrace (request, pid, addr, data, 0)
+#endif
+
 #endif /* gdb_ptrace.h */
index ec4ad1628ac1e4a37624b14dc261c8bffce024f3..1a1502950b1a876d1bbbb0db15afb9a8b6eab8c6 100644 (file)
@@ -54,87 +54,12 @@ static void udot_info (char *, int);
 void _initialize_infptrace (void);
 \f
 
-/* This function simply calls ptrace with the given arguments.  
-   It exists so that all calls to ptrace are isolated in this 
-   machine-dependent file. */
 int
 call_ptrace (int request, int pid, PTRACE_ARG3_TYPE addr, int data)
 {
-  int pt_status = 0;
-
-#if 0
-  int saved_errno;
-
-  printf ("call_ptrace(request=%d, pid=%d, addr=0x%x, data=0x%x)",
-         request, pid, addr, data);
-#endif
-#if defined(PT_SETTRC)
-  /* If the parent can be told to attach to us, try to do it.  */
-  if (request == PT_SETTRC)
-    {
-      errno = 0;
-#ifndef PTRACE_TYPE_ARG5
-      pt_status = ptrace (PT_SETTRC, pid, addr, data);
-#else
-      /* Deal with HPUX 8.0 braindamage.  We never use the
-         calls which require the fifth argument.  */
-      pt_status = ptrace (PT_SETTRC, pid, addr, data, 0);
-#endif
-      if (errno)
-       perror_with_name ("ptrace");
-#if 0
-      printf (" = %d\n", pt_status);
-#endif
-      if (pt_status < 0)
-       return pt_status;
-      else
-       return parent_attach_all (pid, addr, data);
-    }
-#endif
-
-#if defined(PT_CONTIN1)
-  /* On HPUX, PT_CONTIN1 is a form of continue that preserves pending
-     signals.  If it's available, use it.  */
-  if (request == PT_CONTINUE)
-    request = PT_CONTIN1;
-#endif
-
-#if defined(PT_SINGLE1)
-  /* On HPUX, PT_SINGLE1 is a form of step that preserves pending
-     signals.  If it's available, use it.  */
-  if (request == PT_STEP)
-    request = PT_SINGLE1;
-#endif
-
-#if 0
-  saved_errno = errno;
-  errno = 0;
-#endif
-#ifndef PTRACE_TYPE_ARG5
-  pt_status = ptrace (request, pid, addr, data);
-#else
-  /* Deal with HPUX 8.0 braindamage.  We never use the
-     calls which require the fifth argument.  */
-  pt_status = ptrace (request, pid, addr, data, 0);
-#endif
-
-#if 0
-  if (errno)
-    printf (" [errno = %d]", errno);
-
-  errno = saved_errno;
-  printf (" = 0x%x\n", pt_status);
-#endif
-  return pt_status;
+  return ptrace (request, pid, addr, data);
 }
 
-
-#if defined (DEBUG_PTRACE) || defined (PTRACE_TYPE_ARG5)
-/* For the rest of the file, use an extra level of indirection */
-/* This lets us breakpoint usefully on call_ptrace. */
-#define ptrace call_ptrace
-#endif
-
 /* Wait for a process to finish, possibly running a target-specific
    hook before returning.  */