* Rename remote-es1800.c to remote-es.c
[deliverable/binutils-gdb.git] / gdb / infptrace.c
index 23cb8f4a4e7c4e23305585633d55ba4d2f2c7375..aafbd85f64f42f0edd9f89b366b992410489c280 100644 (file)
@@ -30,13 +30,14 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include <sys/dir.h>
 #include <signal.h>
 #include <sys/ioctl.h>
-#ifndef USG
+
+#ifndef NO_PTRACE_H
 #ifdef PTRACE_IN_WRONG_PLACE
 #include <ptrace.h>
 #else
 #include <sys/ptrace.h>
 #endif
-#endif
+#endif /* NO_PTRACE_H */
 
 #if !defined (PT_KILL)
 #define PT_KILL 8
@@ -63,6 +64,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #endif
 #include <sys/stat.h>
 
+#if defined (FIVE_ARG_PTRACE
+/* Deal with HPUX 8.0 braindamage.  */
+#define ptrace(a,b,c,d) ptrace(a,b,c,d,0)
+#endif
+
 #if !defined (FETCH_INFERIOR_REGISTERS)
 #include <sys/user.h>          /* Probably need to poke the user structure */
 #if defined (KERNEL_U_ADDR_BSD)
@@ -89,21 +95,16 @@ call_ptrace (request, pid, addr, data)
 #define ptrace call_ptrace
 #endif
 
-/* This is used when GDB is exiting.  It gives less chance of error.*/
-
 void
-kill_inferior_fast ()
+kill_inferior ()
 {
   if (inferior_pid == 0)
     return;
+  /* ptrace PT_KILL only works if process is stopped!!!  So stop it with
+     a real signal first, if we can.  */
+  kill (inferior_pid, SIGKILL);
   ptrace (PT_KILL, inferior_pid, (PTRACE_ARG3_TYPE) 0, 0);
   wait ((int *)0);
-}
-
-void
-kill_inferior ()
-{
-  kill_inferior_fast ();
   target_mourn_inferior ();
 }
 
@@ -137,10 +138,6 @@ child_resume (step, signal)
 }
 \f
 #ifdef ATTACH_DETACH
-/* Nonzero if we are debugging an attached process rather than
-   an inferior.  */
-extern int attach_flag;
-
 /* Start debugging the process whose number is PID.  */
 int
 attach (pid)
This page took 0.023338 seconds and 4 git commands to generate.