* infptrace.c (child_xfer_memory): Only use if CHILD_XFER_MEMORY
authorJeff Law <law@redhat.com>
Fri, 21 Jan 1994 16:22:51 +0000 (16:22 +0000)
committerJeff Law <law@redhat.com>
Fri, 21 Jan 1994 16:22:51 +0000 (16:22 +0000)
is not defined.

* hppab-nat.c (call_ptrace): Delete redundant function.
(kill_inferior, attach, detach, child_resume): Likewise.
(child_xfer_memory): Likewise.

* hppah-nat.c (call_ptrace): Delete redundant function.
(kill_inferior, attach, detach, child_resume): Likewise.

* config/pa/hppabsd.mh (NATDEPFILES): Add infptrace.o.

* config/pa/hppahpux.mh (NATDEPFILES): Add infptrace.o.

* config/pa/nm-hppab.h (FETCH_INFERIOR_REGISTERS): Define.

* config/pa/nm-hppah.h (FETCH_INFERIOR_REGISTERS): Define.
(CHILD_XFER_MEMORY): Define.
(PT_*): Define so that generic infptrace.c code can be used.

gdb/ChangeLog
gdb/hppab-nat.c
gdb/hppah-nat.c
gdb/infptrace.c

index 28ffae72074396fb8f5c67749303053f43ff5cb4..514f578a28887878e681a8c28b3a12e41a8ef9b8 100644 (file)
@@ -1,3 +1,25 @@
+Fri Jan 21 08:20:18 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * infptrace.c (child_xfer_memory): Only use if CHILD_XFER_MEMORY
+       is not defined.
+
+       * hppab-nat.c (call_ptrace): Delete redundant function.
+       (kill_inferior, attach, detach, child_resume): Likewise.
+       (child_xfer_memory): Likewise.
+
+       * hppah-nat.c (call_ptrace): Delete redundant function.
+       (kill_inferior, attach, detach, child_resume): Likewise.
+
+       * config/pa/hppabsd.mh (NATDEPFILES): Add infptrace.o.
+
+       * config/pa/hppahpux.mh (NATDEPFILES): Add infptrace.o.
+
+       * config/pa/nm-hppab.h (FETCH_INFERIOR_REGISTERS): Define.
+
+       * config/pa/nm-hppah.h (FETCH_INFERIOR_REGISTERS): define.
+       (CHILD_XFER_MEMORY): Define.
+       (PT_*): Define so that generic infptrace.c code can be used.
+
 Fri Jan 21 09:23:33 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
        * xcoffread.c (xcoff_symfile_read): Make second parameter a
index dc63120c631a27f22f48b9baac73f923c4c62aa3..990c952660fb56208c4d587292f0ddcadb3c2976 100644 (file)
@@ -27,27 +27,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "target.h"
 #include <sys/ptrace.h>
 
-#ifndef PT_ATTACH
-#define PT_ATTACH PTRACE_ATTACH
-#endif
-
-#ifndef PT_DETACH
-#define PT_DETACH PTRACE_DETACH
-#endif
-
-/* 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 (request, pid, addr, data)
-     int request, pid;
-     PTRACE_ARG3_TYPE addr;
-     int data;
-{
-  return ptrace (request, pid, addr, data, 0);
-}
-
 /* Use an extra level of indirection for ptrace calls.
    This lets us breakpoint usefully on call_ptrace.   It also
    allows us to pass an extra argument to ptrace without
@@ -55,49 +34,6 @@ call_ptrace (request, pid, addr, data)
 
 #define ptrace call_ptrace
 
-void
-kill_inferior ()
-{
-  if (inferior_pid == 0)
-    return;
-  ptrace (PT_KILL, inferior_pid, (PTRACE_ARG3_TYPE) 0, 0);
-  wait ((int *)0);
-  target_mourn_inferior ();
-}
-
-#ifdef ATTACH_DETACH
-
-/* Start debugging the process whose number is PID.  */
-int
-attach (pid)
-     int pid;
-{
-  errno = 0;
-  ptrace (PT_ATTACH, pid, (PTRACE_ARG3_TYPE) 0, 0);
-  if (errno)
-    perror_with_name ("ptrace");
-  attach_flag = 1;
-  return pid;
-}
-
-/* Stop debugging the process whose number is PID
-   and continue it with signal number SIGNAL.
-   SIGNAL = 0 means just continue it.  */
-
-void
-detach (signal)
-     int signal;
-{
-  errno = 0;
-  ptrace (PT_DETACH, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal);
-  if (errno)
-    perror_with_name ("ptrace");
-  attach_flag = 0;
-}
-#endif /* ATTACH_DETACH */
-\f
-
-
 #if !defined (offsetof)
 #define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
 #endif
@@ -204,123 +140,3 @@ store_inferior_registers (regno)
   return;
 }
 
-/* Resume execution of process PID.
-   If STEP is nonzero, single-step it.
-   If SIGNAL is nonzero, give it that signal.  */
-
-void
-child_resume (pid, step, signal)
-     int pid;
-     int step;
-     enum target_signal signal;
-{
-  errno = 0;
-
-  if (pid == -1)
-    pid = inferior_pid;
-
-  /* An address of (PTRACE_ARG3_TYPE) 1 tells ptrace to continue from where
-     it was. (If GDB wanted it to start some other way, we have already
-     written a new PC value to the child.)  */
-
-  if (step)
-    ptrace (PT_STEP, pid, (PTRACE_ARG3_TYPE) 1, signal);
-  else
-    ptrace (PT_CONTINUE, pid, (PTRACE_ARG3_TYPE) 1, signal);
-
-  if (errno)
-    perror_with_name ("ptrace");
-}
-
-/* NOTE! I tried using PTRACE_READDATA, etc., to read and write memory
-   in the NEW_SUN_PTRACE case.
-   It ought to be straightforward.  But it appears that writing did
-   not write the data that I specified.  I cannot understand where
-   it got the data that it actually did write.  */
-
-/* Copy LEN bytes to or from inferior's memory starting at MEMADDR
-   to debugger memory starting at MYADDR.   Copy to inferior if
-   WRITE is nonzero.
-  
-   Returns the length copied, which is either the LEN argument or zero.
-   This xfer function does not do partial moves, since child_ops
-   doesn't allow memory operations to cross below us in the target stack
-   anyway.  */
-
-int
-child_xfer_memory (memaddr, myaddr, len, write, target)
-     CORE_ADDR memaddr;
-     char *myaddr;
-     int len;
-     int write;
-     struct target_ops *target;                /* ignored */
-{
-  register int i;
-  /* Round starting address down to longword boundary.  */
-  register CORE_ADDR addr = memaddr & - sizeof (int);
-  /* Round ending address up; get number of longwords that makes.  */
-  register int count
-    = (((memaddr + len) - addr) + sizeof (int) - 1) / sizeof (int);
-  /* Allocate buffer of that many longwords.  */
-  register int *buffer = (int *) alloca (count * sizeof (int));
-
-  if (write)
-    {
-      /* Fill start and end extra bytes of buffer with existing memory data.  */
-
-      if (addr != memaddr || len < (int)sizeof (int)) {
-       /* Need part of initial word -- fetch it.  */
-        buffer[0] = ptrace (PT_READ_I, inferior_pid, (PTRACE_ARG3_TYPE) addr,
-                           0);
-      }
-
-      if (count > 1)           /* FIXME, avoid if even boundary */
-       {
-         buffer[count - 1]
-           = ptrace (PT_READ_I, inferior_pid,
-                     (PTRACE_ARG3_TYPE) (addr + (count - 1) * sizeof (int)),
-                     0);
-       }
-
-      /* Copy data to be written over corresponding part of buffer */
-
-      memcpy ((char *) buffer + (memaddr & (sizeof (int) - 1)), myaddr, len);
-
-      /* Write the entire buffer.  */
-
-      for (i = 0; i < count; i++, addr += sizeof (int))
-       {
-         errno = 0;
-         ptrace (PT_WRITE_D, inferior_pid, (PTRACE_ARG3_TYPE) addr,
-                 buffer[i]);
-         if (errno)
-           {
-             /* Using the appropriate one (I or D) is necessary for
-                Gould NP1, at least.  */
-             errno = 0;
-             ptrace (PT_WRITE_I, inferior_pid, (PTRACE_ARG3_TYPE) addr,
-                     buffer[i]);
-           }
-         if (errno)
-           return 0;
-       }
-    }
-  else
-    {
-      /* Read all the longwords */
-      for (i = 0; i < count; i++, addr += sizeof (int))
-       {
-         errno = 0;
-         buffer[i] = ptrace (PT_READ_I, inferior_pid,
-                             (PTRACE_ARG3_TYPE) addr, 0);
-         if (errno)
-           return 0;
-         QUIT;
-       }
-
-      /* Copy appropriate bytes out of the buffer.  */
-      memcpy (myaddr, (char *) buffer + (memaddr & (sizeof (int) - 1)), len);
-    }
-  return len;
-}
-
index 3dc6d4225b11e34dc603849f3d906520f305f0e9..5681658654718c33c734f33db2d49647a8604cac 100644 (file)
@@ -32,58 +32,6 @@ extern CORE_ADDR text_end;
 
 static void fetch_register ();
 
-/* 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 (request, pid, addr, data)
-     int request, pid;
-     PTRACE_ARG3_TYPE addr;
-     int data;
-{
-  return ptrace (request, pid, addr, data, 0);
-}
-
-void
-kill_inferior ()
-{
-  if (inferior_pid == 0)
-    return;
-  ptrace (PT_EXIT, inferior_pid, (PTRACE_ARG3_TYPE) 0, 0, 0);
-  wait ((int *)0);
-  target_mourn_inferior ();
-}
-
-/* Start debugging the process whose number is PID.  */
-int
-attach (pid)
-     int pid;
-{
-  errno = 0;
-  ptrace (PT_ATTACH, pid, (PTRACE_ARG3_TYPE) 0, 0, 0);
-  if (errno)
-    perror_with_name ("ptrace");
-  attach_flag = 1;
-  return pid;
-}
-
-/* Stop debugging the process whose number is PID
-   and continue it with signal number SIGNAL.
-   SIGNAL = 0 means just continue it.  */
-
-void
-detach (signal)
-     int signal;
-{
-  errno = 0;
-  ptrace (PT_DETACH, inferior_pid, (PTRACE_ARG3_TYPE) 1, signal, 0);
-  if (errno)
-    perror_with_name ("ptrace");
-  attach_flag = 0;
-}
-
-/* Fetch all registers, or just one, from the child process.  */
-
 void
 fetch_inferior_registers (regno)
      int regno;
@@ -200,34 +148,6 @@ fetch_register (regno)
  error_exit:;
 }
 
-/* Resume execution of process PID.
-   If STEP is nonzero, single-step it.
-   If SIGNAL is nonzero, give it that signal.  */
-
-void
-child_resume (pid, step, signal)
-     int pid;
-     int step;
-     enum target_signal signal;
-{
-  errno = 0;
-
-  if (pid == -1)
-    pid = inferior_pid;
-
-  /* An address of (PTRACE_ARG3_TYPE) 1 tells ptrace to continue from where
-     it was. (If GDB wanted it to start some other way, we have already
-     written a new PC value to the child.)  */
-
-  if (step)
-    ptrace (PT_SINGLE, pid, (PTRACE_ARG3_TYPE) 1, signal, 0);
-  else
-    ptrace (PT_CONTIN, pid, (PTRACE_ARG3_TYPE) 1, signal, 0);
-
-  if (errno)
-    perror_with_name ("ptrace");
-}
-
 /* Copy LEN bytes to or from inferior's memory starting at MEMADDR
    to debugger memory starting at MYADDR.   Copy to inferior if
    WRITE is nonzero.
index 26f7be33ce23ace46e85cb29ca1e5135a2ba39a4..011224e4ae980174411619564c76e0e7d266468f 100644 (file)
@@ -125,14 +125,19 @@ void
 child_resume (pid, step, signal)
      int pid;
      int step;
-     int signal;
+     enum target_signal signal;
 {
   errno = 0;
 
   if (pid == -1)
-#ifdef PIDGET                  /* XXX Lynx */
+    /* Resume all threads.  */
+#ifdef PIDGET
+    /* This is for Lynx, and should be cleaned up by having Lynx be
+       a separate debugging target, with its own target_resume function.  */
     pid = PIDGET (inferior_pid);
 #else
+    /* I think this only gets used in the non-threaded case, where "resume
+       all threads" and "resume inferior_pid" are the same.  */
     pid = inferior_pid;
 #endif
 
@@ -146,9 +151,11 @@ child_resume (pid, step, signal)
      instructions), so we don't have to worry about that here.  */
 
   if (step)
-    ptrace (PT_STEP,     pid, (PTRACE_ARG3_TYPE) 1, signal);
+    ptrace (PT_STEP,     pid, (PTRACE_ARG3_TYPE) 1,
+           target_signal_to_host (signal));
   else
-    ptrace (PT_CONTINUE, pid, (PTRACE_ARG3_TYPE) 1, signal);
+    ptrace (PT_CONTINUE, pid, (PTRACE_ARG3_TYPE) 1,
+           target_signal_to_host (signal));
 
   if (errno)
     perror_with_name ("ptrace");
@@ -342,6 +349,8 @@ store_inferior_registers (regno)
 }
 #endif /* !defined (FETCH_INFERIOR_REGISTERS).  */
 \f
+
+#if !defined (CHILD_XFER_MEMORY)
 /* NOTE! I tried using PTRACE_READDATA, etc., to read and write memory
    in the NEW_SUN_PTRACE case.
    It ought to be straightforward.  But it appears that writing did
@@ -440,3 +449,4 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
     }
   return len;
 }
+#endif /* !defined (CHILD_XFER_MEMORY).  */
This page took 0.031868 seconds and 4 git commands to generate.