Remove last cleanup from gdbserver
authorTom Tromey <tom@tromey.com>
Thu, 24 Jan 2019 05:20:04 +0000 (22:20 -0700)
committerTom Tromey <tom@tromey.com>
Wed, 6 Mar 2019 23:04:31 +0000 (16:04 -0700)
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.

gdb/gdbserver/ChangeLog
gdb/gdbserver/server.c

index 1cdbb63b6317987cdd2c8f11fd30e4918f398419..447b9084faa937fe54eebf630b74cef3a82c1c5a 100644 (file)
@@ -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'
index e960c10d40266f71df3b70307691bdde59c9852e..25c62aad830ad35daec6d9a36ceb77ea355169ca 100644 (file)
@@ -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