Browse Source

2012-01-23 Pedro Alves <palves@redhat.com>

* server.c (main): Avoid yet another case of infinite loop while
	detaching/killing after a longjmp.
cygwin-64bit-branch
Pedro Alves 15 years ago
parent
commit
01b1789443
  1. 5
      gdb/gdbserver/ChangeLog
  2. 21
      gdb/gdbserver/server.c

5
gdb/gdbserver/ChangeLog

@ -1,3 +1,8 @@
2012-01-23 Pedro Alves <palves@redhat.com>
* server.c (main): Avoid yet another case of infinite loop while
detaching/killing after a longjmp.
2012-01-20 Jan Kratochvil <jan.kratochvil@redhat.com>
Code cleanup.

21
gdb/gdbserver/server.c

@ -2727,13 +2727,10 @@ main (int argc, char *argv[])
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);
}
if (setjmp (toplevel) == 0)
detach_or_kill_for_exit ();
else
fprintf (stderr, "Detach or kill failed. Exiting\n");
exit (1);
}
@ -2778,10 +2775,22 @@ main (int argc, char *argv[])
top of the loop. */
if (exit_requested || run_once)
{
/* 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) == 0)
{
detach_or_kill_for_exit ();
exit (0);
}
else
{
fprintf (stderr, "Detach or kill failed. Exiting\n");
exit (1);
}
}
fprintf (stderr,
"Remote side has terminated connection. "

Loading…
Cancel
Save