aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/gdbserver/server.c')
-rw-r--r--gdb/gdbserver/server.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index a3bc6c9..f312a5c 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -2719,6 +2719,16 @@ main (int argc, char *argv[])
if (setjmp (toplevel))
{
+ /* If something fails and longjmps while detaching or killing
+ inferiors, we'd end up here again, stuck in an infinite loop
+ trap. Be sure that if that happens, we exit immediately
+ instead. */
+ if (setjmp (toplevel))
+ {
+ fprintf (stderr, "Detach or kill failed. Exiting\n");
+ exit (1);
+ }
+
detach_or_kill_for_exit ();
exit (1);
}