* p-exp.y (parse_number): Avoid shift overflow when ``long''.
[deliverable/binutils-gdb.git] / gdb / inftarg.c
index 70d854125f4d86f1e7276038d99f4ae474f7a0a0..b5130d7e0857a485746bf8c0bd89ae0e07c232d6 100644 (file)
@@ -1,27 +1,29 @@
 /* Target-vector operations for controlling Unix child processes, for GDB.
-   Copyright 1990-1996, 1998, 1999 Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000
+   Free Software Foundation, Inc.
    Contributed by Cygnus Support.
 
-## Contains temporary hacks..
+   ## Contains temporary hacks..
 
-This file is part of GDB.
+   This file is part of GDB.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
-#include "frame.h"  /* required by inferior.h */
+#include "frame.h"             /* required by inferior.h */
 #include "inferior.h"
 #include "target.h"
 #include "gdbcore.h"
@@ -31,90 +33,64 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include <sys/types.h>
 #include <fcntl.h>
 
-#ifdef HAVE_WAIT_H
-# include <wait.h>
-#else
-# ifdef HAVE_SYS_WAIT_H
-#  include <sys/wait.h>
-# endif
-#endif
+#include "gdb_wait.h"
 
-/* "wait.h" fills in the gaps left by <wait.h> */
-#include "wait.h"
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
+extern struct symtab_and_line *child_enable_exception_callback (enum
+                                                               exception_event_kind,
+                                                               int);
 
-extern struct symtab_and_line *
-child_enable_exception_callback PARAMS ((enum exception_event_kind, int));
+extern struct exception_event_record
+  *child_get_current_exception_event (void);
 
-extern struct exception_event_record *
-child_get_current_exception_event PARAMS ((void));
+extern void _initialize_inftarg (void);
 
-extern void _initialize_inftarg PARAMS ((void));
-
-static void
-child_prepare_to_store PARAMS ((void));
+static void child_prepare_to_store (void);
 
 #ifndef CHILD_WAIT
-static int child_wait PARAMS ((int, struct target_waitstatus *));
+static int child_wait (int, struct target_waitstatus *);
 #endif /* CHILD_WAIT */
 
 #if !defined(CHILD_POST_WAIT)
-void
-child_post_wait PARAMS ((int, int));
+void child_post_wait (int, int);
 #endif
 
-static void child_open PARAMS ((char *, int));
+static void child_open (char *, int);
 
-static void
-child_files_info PARAMS ((struct target_ops *));
+static void child_files_info (struct target_ops *);
 
-static void
-child_detach PARAMS ((char *, int));
+static void child_detach (char *, int);
 
-static void
-child_detach_from_process PARAMS ((int, char *, int, int));
+static void child_detach_from_process (int, char *, int, int);
 
-static void
-child_attach PARAMS ((char *, int));
+static void child_attach (char *, int);
 
-static void
-child_attach_to_process PARAMS ((char *, int, int));
+static void child_attach_to_process (char *, int, int);
 
 #if !defined(CHILD_POST_ATTACH)
-extern void child_post_attach PARAMS ((int));
+extern void child_post_attach (int);
 #endif
 
-static void
-child_require_attach PARAMS ((char *, int));
+static void child_require_attach (char *, int);
 
-static void
-child_require_detach PARAMS ((int, char *, int));
+static void child_require_detach (int, char *, int);
 
-static void
-ptrace_me PARAMS ((void));
+static void ptrace_me (void);
 
-static void 
-ptrace_him PARAMS ((int));
+static void ptrace_him (int);
 
-static void 
-child_create_inferior PARAMS ((char *, char *, char **));
+static void child_create_inferior (char *, char *, char **);
 
-static void
-child_mourn_inferior PARAMS ((void));
+static void child_mourn_inferior (void);
 
-static int
-child_can_run PARAMS ((void));
+static int child_can_run (void);
 
-static void
-child_stop PARAMS ((void));
+static void child_stop (void);
 
 #ifndef CHILD_THREAD_ALIVE
-int child_thread_alive PARAMS ((int));
+int child_thread_alive (int);
 #endif
 
-static void init_child_ops PARAMS ((void));
+static void init_child_ops (void);
 
 extern char **environ;
 
@@ -127,122 +103,122 @@ int child_suppress_run = 0;     /* Non-zero if inftarg should pretend not to
 
 #ifndef CHILD_WAIT
 
-/*##*/
+/*## */
 /* Enable HACK for ttrace work.  In
  * infttrace.c/require_notification_of_events,
  * this is set to 0 so that the loop in child_wait
  * won't loop.
  */
 int not_same_real_pid = 1;
-/*##*/
+/*## */
 
 
 /* Wait for child to do something.  Return pid of child, or -1 in case
    of error; store status through argument pointer OURSTATUS.  */
 
 static int
-child_wait (pid, ourstatus)
-     int pid;
-     struct target_waitstatus *ourstatus;
+child_wait (int pid, struct target_waitstatus *ourstatus)
 {
   int save_errno;
   int status;
   char *execd_pathname = NULL;
-  int  exit_status;
-  int  related_pid;
-  int  syscall_id;
-  enum target_waitkind  kind;
-
-  do {
-    set_sigint_trap(); /* Causes SIGINT to be passed on to the
-                          attached process. */
-    set_sigio_trap ();
-
-    pid = ptrace_wait (inferior_pid, &status);
+  int exit_status;
+  int related_pid;
+  int syscall_id;
+  enum target_waitkind kind;
 
-    save_errno = errno;
+  do
+    {
+      set_sigint_trap ();      /* Causes SIGINT to be passed on to the
+                                  attached process. */
+      set_sigio_trap ();
 
-    clear_sigio_trap ();
+      pid = ptrace_wait (inferior_pid, &status);
 
-    clear_sigint_trap();
+      save_errno = errno;
 
-    if (pid == -1)
-      {
-       if (save_errno == EINTR)
-         continue;
+      clear_sigio_trap ();
 
-       fprintf_unfiltered (gdb_stderr, "Child process unexpectedly missing: %s.\n",
-                safe_strerror (save_errno));
-
-       /* Claim it exited with unknown signal.  */
-       ourstatus->kind = TARGET_WAITKIND_SIGNALLED;
-       ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN;
-        return -1;
-      }
+      clear_sigint_trap ();
 
-    /* Did it exit?
-     */
-    if (target_has_exited (pid, status, &exit_status))
-      {
-        /* ??rehrauer: For now, ignore this. */
-        continue;
-      }
-
-    if (!target_thread_alive (pid))
-      {
-        ourstatus->kind = TARGET_WAITKIND_SPURIOUS;
-        return pid;
-      }
-      
-    if (target_has_forked (pid, &related_pid)
-        && ((pid == inferior_pid) || (related_pid == inferior_pid)))
-      {
-        ourstatus->kind = TARGET_WAITKIND_FORKED;
-        ourstatus->value.related_pid = related_pid;
-        return pid;
-      }
+      if (pid == -1)
+       {
+         if (save_errno == EINTR)
+           continue;
 
-    if (target_has_vforked (pid, &related_pid)
-        && ((pid == inferior_pid) || (related_pid == inferior_pid)))
-      {
-        ourstatus->kind = TARGET_WAITKIND_VFORKED;
-        ourstatus->value.related_pid = related_pid;
-        return pid;
-      }
+         fprintf_unfiltered (gdb_stderr, "Child process unexpectedly missing: %s.\n",
+                             safe_strerror (save_errno));
 
-    if (target_has_execd (pid, &execd_pathname))
-      {
-        /* Are we ignoring initial exec events?  (This is likely because
-           we're in the process of starting up the inferior, and another
-           (older) mechanism handles those.)  If so, we'll report this
-           as a regular stop, not an exec.
-           */
-        if (inferior_ignoring_startup_exec_events)
-          {
-            inferior_ignoring_startup_exec_events--;
-          }
-        else
-          {
-            ourstatus->kind = TARGET_WAITKIND_EXECD;
-            ourstatus->value.execd_pathname = execd_pathname;
-            return pid;
-          }
-      }
+         /* Claim it exited with unknown signal.  */
+         ourstatus->kind = TARGET_WAITKIND_SIGNALLED;
+         ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN;
+         return -1;
+       }
 
-    /* All we must do with these is communicate their occurrence
-       to wait_for_inferior...
+      /* Did it exit?
        */
-    if (target_has_syscall_event (pid, &kind, &syscall_id))
-      {
-        ourstatus->kind = kind;
-        ourstatus->value.syscall_id = syscall_id;
-        return pid;
-      }
-
-/*##  } while (pid != inferior_pid); ##*/ /* Some other child died or stopped */
+      if (target_has_exited (pid, status, &exit_status))
+       {
+         /* ??rehrauer: For now, ignore this. */
+         continue;
+       }
+
+      if (!target_thread_alive (pid))
+       {
+         ourstatus->kind = TARGET_WAITKIND_SPURIOUS;
+         return pid;
+       }
+
+      if (target_has_forked (pid, &related_pid)
+         && ((pid == inferior_pid) || (related_pid == inferior_pid)))
+       {
+         ourstatus->kind = TARGET_WAITKIND_FORKED;
+         ourstatus->value.related_pid = related_pid;
+         return pid;
+       }
+
+      if (target_has_vforked (pid, &related_pid)
+         && ((pid == inferior_pid) || (related_pid == inferior_pid)))
+       {
+         ourstatus->kind = TARGET_WAITKIND_VFORKED;
+         ourstatus->value.related_pid = related_pid;
+         return pid;
+       }
+
+      if (target_has_execd (pid, &execd_pathname))
+       {
+         /* Are we ignoring initial exec events?  (This is likely because
+            we're in the process of starting up the inferior, and another
+            (older) mechanism handles those.)  If so, we'll report this
+            as a regular stop, not an exec.
+          */
+         if (inferior_ignoring_startup_exec_events)
+           {
+             inferior_ignoring_startup_exec_events--;
+           }
+         else
+           {
+             ourstatus->kind = TARGET_WAITKIND_EXECD;
+             ourstatus->value.execd_pathname = execd_pathname;
+             return pid;
+           }
+       }
+
+      /* All we must do with these is communicate their occurrence
+         to wait_for_inferior...
+       */
+      if (target_has_syscall_event (pid, &kind, &syscall_id))
+       {
+         ourstatus->kind = kind;
+         ourstatus->value.syscall_id = syscall_id;
+         return pid;
+       }
+
+      /*##  } while (pid != inferior_pid); ## *//* Some other child died or stopped */
 /* hack for thread testing */
-      } while( (pid != inferior_pid) && not_same_real_pid );
-/*##*/
+    }
+  while ((pid != inferior_pid) && not_same_real_pid);
+/*## */
 
   store_waitstatus (ourstatus, status);
   return pid;
@@ -251,16 +227,14 @@ child_wait (pid, ourstatus)
 
 #if !defined(CHILD_POST_WAIT)
 void
-child_post_wait (pid, wait_status)
-  int  pid;
-  int  wait_status;
+child_post_wait (int pid, int wait_status)
 {
   /* This version of Unix doesn't require a meaningful "post wait"
      operation.
-     */
+   */
 }
 #endif
+
 
 #ifndef CHILD_THREAD_ALIVE
 
@@ -270,8 +244,7 @@ child_post_wait (pid, wait_status)
    for now we're going to try and be compatable with the old thread
    code.  */
 int
-child_thread_alive (pid)
-     int pid;
+child_thread_alive (int pid)
 {
   return (kill (pid, 0) != -1);
 }
@@ -279,10 +252,7 @@ child_thread_alive (pid)
 #endif
 
 static void
-child_attach_to_process (args, from_tty, after_fork)
-  char *  args;
-  int  from_tty;
-  int  after_fork;
+child_attach_to_process (char *args, int from_tty, int after_fork)
 {
   if (!args)
     error_no_arg ("process-id to attach");
@@ -301,7 +271,7 @@ child_attach_to_process (args, from_tty, after_fork)
     if ((pid == 0) && (args == dummy))
       error ("Illegal process-id: %s\n", args);
 
-    if (pid == getpid())               /* Trying to masturbate? */
+    if (pid == getpid ())      /* Trying to masturbate? */
       error ("I refuse to debug myself!");
 
     if (from_tty)
@@ -309,13 +279,13 @@ child_attach_to_process (args, from_tty, after_fork)
        exec_file = (char *) get_exec_file (0);
 
        if (after_fork)
-         printf_unfiltered ("Attaching after fork to %s\n", 
-                 target_pid_to_str (pid));
+         printf_unfiltered ("Attaching after fork to %s\n",
+                            target_pid_to_str (pid));
        else if (exec_file)
          printf_unfiltered ("Attaching to program: %s, %s\n", exec_file,
-                  target_pid_to_str (pid));
-        else
-          printf_unfiltered ("Attaching to %s\n", target_pid_to_str (pid));
+                            target_pid_to_str (pid));
+       else
+         printf_unfiltered ("Attaching to %s\n", target_pid_to_str (pid));
 
        gdb_flush (gdb_stdout);
       }
@@ -328,24 +298,21 @@ child_attach_to_process (args, from_tty, after_fork)
     inferior_pid = pid;
     push_target (&child_ops);
   }
-#endif  /* ATTACH_DETACH */
+#endif /* ATTACH_DETACH */
 }
 
 
 /* Attach to process PID, then initialize for debugging it.  */
 
 static void
-child_attach (args, from_tty)
-     char *args;
-     int from_tty;
+child_attach (char *args, int from_tty)
 {
   child_attach_to_process (args, from_tty, 0);
 }
 
 #if !defined(CHILD_POST_ATTACH)
 void
-child_post_attach (pid)
-  int  pid;
+child_post_attach (int pid)
 {
   /* This version of Unix doesn't require a meaningful "post attach"
      operation by a debugger.  */
@@ -353,19 +320,13 @@ child_post_attach (pid)
 #endif
 
 static void
-child_require_attach (args, from_tty)
-     char *args;
-     int from_tty;
+child_require_attach (char *args, int from_tty)
 {
   child_attach_to_process (args, from_tty, 1);
-} 
+}
 
 static void
-child_detach_from_process (pid, args, from_tty, after_fork)
-  int  pid;
-  char *  args;
-  int  from_tty;
-  int  after_fork;
+child_detach_from_process (int pid, char *args, int from_tty, int after_fork)
 {
 #ifdef ATTACH_DETACH
   {
@@ -376,12 +337,12 @@ child_detach_from_process (pid, args, from_tty, after_fork)
        char *exec_file = get_exec_file (0);
        if (exec_file == 0)
          exec_file = "";
-        if (after_fork)
-          printf_unfiltered ("Detaching after fork from %s\n",
-                             target_pid_to_str (pid));
-        else
+       if (after_fork)
+         printf_unfiltered ("Detaching after fork from %s\n",
+                            target_pid_to_str (pid));
+       else
          printf_unfiltered ("Detaching from program: %s, %s\n", exec_file,
-                            target_pid_to_str (pid));
+                            target_pid_to_str (pid));
        gdb_flush (gdb_stdout);
       }
     if (args)
@@ -406,9 +367,7 @@ child_detach_from_process (pid, args, from_tty, after_fork)
    started via the normal ptrace (PTRACE_TRACEME).  */
 
 static void
-child_detach (args, from_tty)
-     char *args;
-     int from_tty;
+child_detach (char *args, int from_tty)
 {
   child_detach_from_process (inferior_pid, args, from_tty, 0);
   inferior_pid = 0;
@@ -416,10 +375,7 @@ child_detach (args, from_tty)
 }
 
 static void
-child_require_detach (pid, args, from_tty)
-  int  pid;
-  char *  args;
-  int  from_tty;
+child_require_detach (int pid, char *args, int from_tty)
 {
   child_detach_from_process (pid, args, from_tty, 1);
 }
@@ -432,7 +388,7 @@ child_require_detach (pid, args, from_tty)
    debugged.  */
 
 static void
-child_prepare_to_store ()
+child_prepare_to_store (void)
 {
 #ifdef CHILD_PREPARE_TO_STORE
   CHILD_PREPARE_TO_STORE ();
@@ -442,18 +398,15 @@ child_prepare_to_store ()
 /* Print status information about what we're accessing.  */
 
 static void
-child_files_info (ignore)
-     struct target_ops *ignore;
+child_files_info (struct target_ops *ignore)
 {
   printf_unfiltered ("\tUsing the running image of %s %s.\n",
-         attach_flag? "attached": "child", target_pid_to_str (inferior_pid));
+      attach_flag ? "attached" : "child", target_pid_to_str (inferior_pid));
 }
 
 /* ARGSUSED */
 static void
-child_open (arg, from_tty)
-     char *arg;
-     int from_tty;
+child_open (char *arg, int from_tty)
 {
   error ("Use the \"run\" command to start a Unix child process.");
 }
@@ -462,7 +415,7 @@ child_open (arg, from_tty)
    by its parent process.  */
 
 static void
-ptrace_me ()
+ptrace_me (void)
 {
   /* "Trace me, Dr. Memory!" */
   call_ptrace (0, 0, (PTRACE_ARG3_TYPE) 0, 0);
@@ -471,9 +424,8 @@ ptrace_me ()
 /* Stub function which causes the GDB that runs it, to start ptrace-ing
    the child process.  */
 
-static void 
-ptrace_him (pid)
-     int pid;
+static void
+ptrace_him (int pid)
 {
   push_target (&child_ops);
 
@@ -481,7 +433,7 @@ ptrace_him (pid)
      between the parent and child processes after the debugger
      forks, and before the child execs the debuggee program.  This
      call basically gives permission for the child to exec.
-     */
+   */
 
   target_acknowledge_created_inferior (pid);
 
@@ -493,7 +445,7 @@ ptrace_him (pid)
 
   /* On some targets, there must be some explicit actions taken after
      the inferior has been started up.
-     */
+   */
   target_post_startup_inferior (pid);
 }
 
@@ -503,75 +455,12 @@ ptrace_him (pid)
    ENV is the environment vector to pass.  Errors reported with error().  */
 
 static void
-child_create_inferior (exec_file, allargs, env)
-     char *exec_file;
-     char *allargs;
-     char **env;
+child_create_inferior (char *exec_file, char *allargs, char **env)
 {
-
 #ifdef HPUXHPPA
-  char *tryname;
-  char *shell_file;
-  char *p;
-  char *p1;
-  char *path = getenv ("PATH");
-  int len;
-  struct stat statbuf;
-
-  /* On HP-UX, we have a possible bad interaction between
-   * the start-up-with-shell code and our catch-fork/catch-exec
-   * logic. To avoid the bad interaction, we start up with the
-   * C shell ("csh") and pass it the "-f" flag (fast start-up,
-   * don't run .cshrc code).
-   * See further comments in inferior.h toward the bottom
-   * (STARTUP_WITH_SHELL flag) and in fork-child.c
-   */
-
-  /* Rather than passing in a hard-wired path like "/bin/csh",
-   * we look down the PATH to find csh. I took this code from
-   * procfs.c, which is the file in the Sun-specific part of GDB
-   * analogous to inftarg.c. See procfs.c for more detailed 
-   * comments. - RT
-   */
-  shell_file = "csh";
-  if (path == NULL)
-    path = "/bin:/usr/bin";
-  tryname = alloca (strlen (path) + strlen (shell_file) + 2);
-  for (p = path; p != NULL; p = p1 ? p1 + 1: NULL)
-    {
-    p1 = strchr (p, ':');
-    if (p1 != NULL)
-      len = p1 - p;
-    else
-      len = strlen (p);
-    strncpy (tryname, p, len);
-    tryname[len] = '\0';
-    strcat (tryname, "/");
-    strcat (tryname, shell_file);
-    if (access (tryname, X_OK) < 0)
-      continue;
-    if (stat (tryname, &statbuf) < 0)
-      continue;
-    if (!S_ISREG (statbuf.st_mode))
-      /* We certainly need to reject directories.  I'm not quite
-         as sure about FIFOs, sockets, etc., but I kind of doubt
-         that people want to exec() these things.  */
-      continue;
-      break;
-    }
-  if (p == NULL)
-    /* Not found. I replaced the error() which existed in procfs.c
-     * with simply passing in NULL and hoping fork_inferior() 
-     * can deal with it. - RT
-     */ 
-    /* error ("Can't find shell %s in PATH", shell_file); */
-    shell_file = NULL;
-  else
-    shell_file = tryname;
-
   fork_inferior (exec_file, allargs, env, ptrace_me, ptrace_him, pre_fork_inferior, NULL);
 #else
- fork_inferior (exec_file, allargs, env, ptrace_me, ptrace_him, NULL, NULL);
 fork_inferior (exec_file, allargs, env, ptrace_me, ptrace_him, NULL, NULL);
 #endif
   /* We are at the first instruction we care about.  */
   /* Pedal to the metal... */
@@ -580,54 +469,49 @@ child_create_inferior (exec_file, allargs, env)
 
 #if !defined(CHILD_POST_STARTUP_INFERIOR)
 void
-child_post_startup_inferior (pid)
-  int  pid;
+child_post_startup_inferior (int pid)
 {
   /* This version of Unix doesn't require a meaningful "post startup inferior"
      operation by a debugger.
-     */
+   */
 }
 #endif
 
 #if !defined(CHILD_ACKNOWLEDGE_CREATED_INFERIOR)
 void
-child_acknowledge_created_inferior (pid)
-  int  pid;
+child_acknowledge_created_inferior (int pid)
 {
   /* This version of Unix doesn't require a meaningful "acknowledge created inferior"
      operation by a debugger.
-     */
+   */
 }
 #endif
 
 
 void
-child_clone_and_follow_inferior (child_pid, followed_child)
-  int  child_pid;
-  int  *followed_child;
+child_clone_and_follow_inferior (int child_pid, int *followed_child)
 {
   clone_and_follow_inferior (child_pid, followed_child);
 
   /* Don't resume CHILD_PID; it's stopped where it ought to be, until
      the decision gets made elsewhere how to continue it.
-     */
+   */
 }
 
 
 #if !defined(CHILD_POST_FOLLOW_INFERIOR_BY_CLONE)
 void
-child_post_follow_inferior_by_clone ()
+child_post_follow_inferior_by_clone (void)
 {
   /* This version of Unix doesn't require a meaningful "post follow inferior"
      operation by a clone debugger.
-     */
+   */
 }
 #endif
 
 #if !defined(CHILD_INSERT_FORK_CATCHPOINT)
 int
-child_insert_fork_catchpoint (pid)
-     int pid;
+child_insert_fork_catchpoint (int pid)
 {
   /* This version of Unix doesn't support notification of fork events.  */
   return 0;
@@ -636,8 +520,7 @@ child_insert_fork_catchpoint (pid)
 
 #if !defined(CHILD_REMOVE_FORK_CATCHPOINT)
 int
-child_remove_fork_catchpoint (pid)
-     int pid;
+child_remove_fork_catchpoint (int pid)
 {
   /* This version of Unix doesn't support notification of fork events.  */
   return 0;
@@ -646,8 +529,7 @@ child_remove_fork_catchpoint (pid)
 
 #if !defined(CHILD_INSERT_VFORK_CATCHPOINT)
 int
-child_insert_vfork_catchpoint (pid)
-     int pid;
+child_insert_vfork_catchpoint (int pid)
 {
   /* This version of Unix doesn't support notification of vfork events.  */
   return 0;
@@ -656,8 +538,7 @@ child_insert_vfork_catchpoint (pid)
 
 #if !defined(CHILD_REMOVE_VFORK_CATCHPOINT)
 int
-child_remove_vfork_catchpoint (pid)
-     int pid;
+child_remove_vfork_catchpoint (int pid)
 {
   /* This version of Unix doesn't support notification of vfork events.  */
   return 0;
@@ -666,9 +547,7 @@ child_remove_vfork_catchpoint (pid)
 
 #if !defined(CHILD_HAS_FORKED)
 int
-child_has_forked (pid, child_pid)
-     int pid;
-     int *child_pid;
+child_has_forked (int pid, int *child_pid)
 {
   /* This version of Unix doesn't support notification of fork events.  */
   return 0;
@@ -678,12 +557,10 @@ child_has_forked (pid, child_pid)
 
 #if !defined(CHILD_HAS_VFORKED)
 int
-child_has_vforked (pid, child_pid)
-  int  pid;
-  int *  child_pid;
+child_has_vforked (int pid, int *child_pid)
 {
   /* This version of Unix doesn't support notification of vfork events.
-     */
+   */
   return 0;
 }
 #endif
@@ -691,12 +568,12 @@ child_has_vforked (pid, child_pid)
 
 #if !defined(CHILD_CAN_FOLLOW_VFORK_PRIOR_TO_EXEC)
 int
-child_can_follow_vfork_prior_to_exec ()
+child_can_follow_vfork_prior_to_exec (void)
 {
   /* This version of Unix doesn't support notification of vfork events.
      However, if it did, it probably wouldn't allow vforks to be followed
      before the following exec.
-     */
+   */
   return 0;
 }
 #endif
@@ -704,22 +581,18 @@ child_can_follow_vfork_prior_to_exec ()
 
 #if !defined(CHILD_POST_FOLLOW_VFORK)
 void
-child_post_follow_vfork (parent_pid, followed_parent, child_pid, followed_child)
-  int  parent_pid;
-  int  followed_parent;
-  int  child_pid;
-  int  followed_child;
+child_post_follow_vfork (int parent_pid, int followed_parent, int child_pid,
+                        int followed_child)
 {
   /* This version of Unix doesn't require a meaningful "post follow vfork"
      operation by a clone debugger.
-     */
+   */
 }
 #endif
 
 #if !defined(CHILD_INSERT_EXEC_CATCHPOINT)
 int
-child_insert_exec_catchpoint (pid)
-     int pid;
+child_insert_exec_catchpoint (int pid)
 {
   /* This version of Unix doesn't support notification of exec events.  */
   return 0;
@@ -728,8 +601,7 @@ child_insert_exec_catchpoint (pid)
 
 #if !defined(CHILD_REMOVE_EXEC_CATCHPOINT)
 int
-child_remove_exec_catchpoint (pid)
-     int pid;
+child_remove_exec_catchpoint (int pid)
 {
   /* This version of Unix doesn't support notification of exec events.  */
   return 0;
@@ -738,12 +610,10 @@ child_remove_exec_catchpoint (pid)
 
 #if !defined(CHILD_HAS_EXECD)
 int
-child_has_execd (pid, execd_pathname)
-  int  pid;
-  char **  execd_pathname;
+child_has_execd (int pid, char **execd_pathname)
 {
   /* This version of Unix doesn't support notification of exec events.
-     */
+   */
   return 0;
 }
 #endif
@@ -751,10 +621,10 @@ child_has_execd (pid, execd_pathname)
 
 #if !defined(CHILD_REPORTED_EXEC_EVENTS_PER_EXEC_CALL)
 int
-child_reported_exec_events_per_exec_call ()
+child_reported_exec_events_per_exec_call (void)
 {
   /* This version of Unix doesn't support notification of exec events.
-     */
+   */
   return 1;
 }
 #endif
@@ -762,13 +632,10 @@ child_reported_exec_events_per_exec_call ()
 
 #if !defined(CHILD_HAS_SYSCALL_EVENT)
 int
-child_has_syscall_event (pid, kind, syscall_id)
-  int  pid;
-  enum target_waitkind *  kind;
-  int *  syscall_id;
+child_has_syscall_event (int pid, enum target_waitkind *kind, int *syscall_id)
 {
   /* This version of Unix doesn't support notification of syscall events.
-     */
+   */
   return 0;
 }
 #endif
@@ -776,10 +643,7 @@ child_has_syscall_event (pid, kind, syscall_id)
 
 #if !defined(CHILD_HAS_EXITED)
 int
-child_has_exited (pid, wait_status, exit_status)
-  int  pid;
-  int  wait_status;
-  int *  exit_status;
+child_has_exited (int pid, int wait_status, int *exit_status)
 {
   if (WIFEXITED (wait_status))
     {
@@ -789,12 +653,12 @@ child_has_exited (pid, wait_status, exit_status)
 
   if (WIFSIGNALED (wait_status))
     {
-      *exit_status = 0;  /* ?? Don't know what else to say here. */
+      *exit_status = 0;                /* ?? Don't know what else to say here. */
       return 1;
     }
 
   /* ?? Do we really need to consult the event state, too?  Assume the
-   wait_state alone suffices.
+     wait_state alone suffices.
    */
   return 0;
 }
@@ -802,14 +666,14 @@ child_has_exited (pid, wait_status, exit_status)
 
 
 static void
-child_mourn_inferior ()
+child_mourn_inferior (void)
 {
   unpush_target (&child_ops);
   generic_mourn_inferior ();
 }
 
 static int
-child_can_run ()
+child_can_run (void)
 {
   /* This variable is controlled by modules that sit atop inftarg that may layer
      their own process structure atop that provided here.  hpux-thread.c does
@@ -825,7 +689,7 @@ child_can_run ()
    killpg() instead of kill (-pgrp). */
 
 static void
-child_stop ()
+child_stop (void)
 {
   extern pid_t inferior_process_group;
 
@@ -834,9 +698,7 @@ child_stop ()
 
 #if !defined(CHILD_ENABLE_EXCEPTION_CALLBACK)
 struct symtab_and_line *
-child_enable_exception_callback (kind, enable)
-  enum exception_event_kind kind;
-  int enable;
+child_enable_exception_callback (enum exception_event_kind kind, int enable)
 {
   return (struct symtab_and_line *) NULL;
 }
@@ -844,7 +706,7 @@ child_enable_exception_callback (kind, enable)
 
 #if !defined(CHILD_GET_CURRENT_EXCEPTION_EVENT)
 struct exception_event_record *
-child_get_current_exception_event ()
+child_get_current_exception_event (void)
 {
   return (struct exception_event_record *) NULL;
 }
@@ -853,30 +715,35 @@ child_get_current_exception_event ()
 
 #if !defined(CHILD_PID_TO_EXEC_FILE)
 char *
-child_pid_to_exec_file (pid)
-  int  pid;
+child_pid_to_exec_file (int pid)
 {
   /* This version of Unix doesn't support translation of a process ID
      to the filename of the executable file.
-     */
+   */
   return NULL;
 }
 #endif
 
 char *
-child_core_file_to_sym_file (core)
-  char *  core;
+child_core_file_to_sym_file (char *core)
 {
   /* The target stratum for a running executable need not support
      this operation.
-     */
+   */
   return NULL;
 }
+\f
 
+#if !defined(CHILD_PID_TO_STR)
+char *
+child_pid_to_str (int pid)
+{
+  return normal_pid_to_str (pid);
+}
+#endif
 
-\f
 static void
-init_child_ops ()
+init_child_ops (void)
 {
   child_ops.to_shortname = "child";
   child_ops.to_longname = "Unix child process";
@@ -925,6 +792,7 @@ init_child_ops ()
   child_ops.to_mourn_inferior = child_mourn_inferior;
   child_ops.to_can_run = child_can_run;
   child_ops.to_thread_alive = child_thread_alive;
+  child_ops.to_pid_to_str = child_pid_to_str;
   child_ops.to_stop = child_stop;
   child_ops.to_enable_exception_callback = child_enable_exception_callback;
   child_ops.to_get_current_exception_event = child_get_current_exception_event;
@@ -940,7 +808,7 @@ init_child_ops ()
 }
 
 void
-_initialize_inftarg ()
+_initialize_inftarg (void)
 {
 #ifdef HAVE_OPTIONAL_PROC_FS
   char procname[32];
This page took 0.036669 seconds and 4 git commands to generate.