diff options
author | Tom Tromey <tom@tromey.com> | 2019-01-23 22:20:04 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-03-06 16:04:31 -0700 |
commit | 37991b4f52e7d13c586137f401ac65dec4aa732f (patch) | |
tree | 57d245d602a554f1a7cd3a05ae04ad4609f10eac | |
parent | 32603266e5688718faad35b7502aa0b72a42764a (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbserver/server.c | 11 |
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 |