aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-01-23 22:20:04 -0700
committerTom Tromey <tom@tromey.com>2019-03-06 16:04:31 -0700
commit37991b4f52e7d13c586137f401ac65dec4aa732f (patch)
tree57d245d602a554f1a7cd3a05ae04ad4609f10eac
parent32603266e5688718faad35b7502aa0b72a42764a (diff)
downloadgdb-37991b4f52e7d13c586137f401ac65dec4aa732f.zip
gdb-37991b4f52e7d13c586137f401ac65dec4aa732f.tar.gz
gdb-37991b4f52e7d13c586137f401ac65dec4aa732f.tar.bz2
Remove last cleanup from gdbserver
This removes the last cleanup from gdbserver, replacing it with SCOPE_EXIT. This could perhaps be done in a different way, but this approach was direct and obviously correct. 2019-03-06 Tom Tromey <tom@tromey.com> * server.c (detach_or_kill_for_exit_cleanup): Remove parameter. (captured_main): Use SCOPE_EXIT.
-rw-r--r--gdb/gdbserver/ChangeLog5
-rw-r--r--gdb/gdbserver/server.c11
2 files changed, 11 insertions, 5 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 1cdbb63..447b908 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,8 @@
+2019-03-06 Tom Tromey <tom@tromey.com>
+
+ * server.c (detach_or_kill_for_exit_cleanup): Remove parameter.
+ (captured_main): Use SCOPE_EXIT.
+
2019-03-04 Sergio Durigan Junior <sergiodj@redhat.com>
* configure.srv: Use '$enable_unittest' instead of '$development'
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index e960c10..25c62aa 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -43,6 +43,7 @@
#include "common/pathstuff.h"
#include "common/selftest.h"
+#include "common/scope-exit.h"
#define require_running_or_return(BUF) \
if (!target_running ()) \
@@ -3545,17 +3546,16 @@ detach_or_kill_for_exit (void)
/* Value that will be passed to exit(3) when gdbserver exits. */
static int exit_code;
-/* Cleanup version of detach_or_kill_for_exit. */
+/* Wrapper for detach_or_kill_for_exit that catches and prints
+ errors. */
static void
-detach_or_kill_for_exit_cleanup (void *ignore)
+detach_or_kill_for_exit_cleanup ()
{
-
TRY
{
detach_or_kill_for_exit ();
}
-
CATCH (exception, RETURN_MASK_ALL)
{
fflush (stdout);
@@ -3832,7 +3832,8 @@ captured_main (int argc, char *argv[])
cs.last_status.value.integer = 0;
cs.last_ptid = minus_one_ptid;
}
- make_cleanup (detach_or_kill_for_exit_cleanup, NULL);
+
+ SCOPE_EXIT { detach_or_kill_for_exit_cleanup (); };
/* Don't report shared library events on the initial connection,
even if some libraries are preloaded. Avoids the "stopped by