gas/
[deliverable/binutils-gdb.git] / gdb / fork-child.c
index cba91f9b46d2a0039038e18f6d70854dff8135d2..6820872a04252e122aee962751c5ee18760bb793 100644 (file)
@@ -1,7 +1,6 @@
 /* Fork a Unix child process, and set up to debug it, for GDB.
 
-   Copyright (C) 1990-1996, 1998-2001, 2004-2012 Free Software
-   Foundation, Inc.
+   Copyright (C) 1990-2013 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
 
@@ -33,6 +32,7 @@
 #include "command.h" /* for dont_repeat () */
 #include "gdbcmd.h"
 #include "solib.h"
+#include "filestuff.h"
 
 #include <signal.h>
 
@@ -272,9 +272,6 @@ fork_inferior (char *exec_file_arg, char *allargs, char **env,
       argv[3] = (char *) 0;
     }
 
-  /* On some systems an exec will fail if the executable is open.  */
-  close_exec_file ();
-
   /* Retain a copy of our environment variables, since the child will
      replace the value of environ and if we're vforked, we have to
      restore it.  */
@@ -317,6 +314,8 @@ fork_inferior (char *exec_file_arg, char *allargs, char **env,
 
   if (pid == 0)
     {
+      close_most_fds ();
+
       if (debug_fork)
        sleep (debug_fork);
 
@@ -434,7 +433,7 @@ startup_inferior (int ntraps)
 
   while (1)
     {
-      enum target_signal resume_signal = TARGET_SIGNAL_0;
+      enum gdb_signal resume_signal = GDB_SIGNAL_0;
       ptid_t event_ptid;
 
       struct target_waitstatus ws;
@@ -461,8 +460,8 @@ startup_inferior (int ntraps)
            target_terminal_ours ();
            target_mourn_inferior ();
            error (_("During startup program terminated with signal %s, %s."),
-                  target_signal_to_name (ws.value.sig),
-                  target_signal_to_string (ws.value.sig));
+                  gdb_signal_to_name (ws.value.sig),
+                  gdb_signal_to_string (ws.value.sig));
            return;
 
          case TARGET_WAITKIND_EXITED:
@@ -478,7 +477,7 @@ startup_inferior (int ntraps)
          case TARGET_WAITKIND_EXECD:
            /* Handle EXEC signals as if they were SIGTRAP signals.  */
            xfree (ws.value.execd_pathname);
-           resume_signal = TARGET_SIGNAL_TRAP;
+           resume_signal = GDB_SIGNAL_TRAP;
            switch_to_thread (event_ptid);
            break;
 
@@ -488,7 +487,7 @@ startup_inferior (int ntraps)
            break;
        }
 
-      if (resume_signal != TARGET_SIGNAL_TRAP)
+      if (resume_signal != GDB_SIGNAL_TRAP)
        {
          /* Let shell child handle its own signals in its own way.  */
          target_resume (resume_ptid, 0, resume_signal);
@@ -517,7 +516,7 @@ startup_inferior (int ntraps)
            break;
 
          /* Just make it go on.  */
-         target_resume (resume_ptid, 0, TARGET_SIGNAL_0);
+         target_resume (resume_ptid, 0, GDB_SIGNAL_0);
        }
     }
 
This page took 0.028247 seconds and 4 git commands to generate.