Index: gdb/testsuite/gdb.base/inferior-died.c |
diff --git a/gdb/testsuite/gdb.base/relativedebug.c b/gdb/testsuite/gdb.base/inferior-died.c |
similarity index 70% |
copy from gdb/testsuite/gdb.base/relativedebug.c |
copy to gdb/testsuite/gdb.base/inferior-died.c |
index af8e2159e846a2be4c54de711f4d00746e09abff..ce9dcea8e31e0f62380ecc6ffc74b045dbc990a5 100644 |
--- a/gdb/testsuite/gdb.base/relativedebug.c |
+++ b/gdb/testsuite/gdb.base/inferior-died.c |
@@ -1,6 +1,6 @@ |
-/* This testcase is part of GDB, the GNU debugger. |
+/* Test for fork-related gdb bug |
- Copyright 2007-2012 Free Software Foundation, Inc. |
+ Copyright 2012 Free Software Foundation, Inc. |
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 |
@@ -13,23 +13,25 @@ |
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, see <http://www.gnu.org/licenses/>. */ |
+ along with this program. If not, see <http://www.gnu.org/licenses/>. |
+*/ |
-#include <unistd.h> |
#include <stdlib.h> |
-#include <signal.h> |
- |
+#include <sys/types.h> |
+#include <unistd.h> |
-static void handler (int signo) |
+void function(void) |
{ |
- abort (); |
+ exit (0); /* Break here */ |
} |
-int main (void) |
+int main() |
{ |
- signal (SIGALRM, handler); |
- alarm (1); |
- pause (); |
- pause (); |
- return 0; |
+ pid_t child = fork (); |
+ |
+ if (child == 0) |
+ function (); |
+ else |
+ waitpid (child, NULL, 0); |
+ return 0; |
} |