gdb: remove unneeded switch_to_thread from thr_try_catch_cmd
authorAndrew Burgess <andrew.burgess@embecosm.com>
Wed, 27 Jan 2021 18:20:35 +0000 (18:20 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 28 Jan 2021 20:04:48 +0000 (20:04 +0000)
I spotted that every time thr_try_catch_cmd is called GDB has already
switched to the required thread.  The call to switch_to_thread at the
head of thr_try_catch_cmd is therefore redundant.

This commit replaces the call to switch_to_thread with an assertion
that we already have the required thread selected.

I also extended the header comment on thr_try_catch_cmd to make it
clearer when this function could throw an exception.

There should be no user visible changes after this commit.

gdb/ChangeLog:

* thread.c (thr_try_catch_cmd): Replace swith_to_thread with an
assert.  Extend the header comment.

gdb/ChangeLog
gdb/thread.c

index e1082744c2a106eba880822160e9f9b7178ecfdd..1de9d30f051ce5eb92c50a4ede8190d789bcec6b 100644 (file)
@@ -1,3 +1,8 @@
+2021-01-28  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * thread.c (thr_try_catch_cmd): Replace swith_to_thread with an
+       assert.  Extend the header comment.
+
 2021-01-28  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * Makefile.in (SUBDIR_TUI_SRCS): Add tui/tui-location.c.
index 899c2116470623f5c9ca096bfee2785c67ff54a8..821070672171ced92106aee99df897b051a310eb 100644 (file)
@@ -1466,15 +1466,16 @@ tp_array_compar_descending (const thread_info_ref &a, const thread_info_ref &b)
   return (a->per_inf_num > b->per_inf_num);
 }
 
-/* Switch to thread THR and execute CMD.
+/* Assuming that THR is the current thread, execute CMD.
    FLAGS.QUIET controls the printing of the thread information.
-   FLAGS.CONT and FLAGS.SILENT control how to handle errors.  */
+   FLAGS.CONT and FLAGS.SILENT control how to handle errors.  Can throw an
+   exception if !FLAGS.SILENT and !FLAGS.CONT and CMD fails.  */
 
 static void
 thr_try_catch_cmd (thread_info *thr, const char *cmd, int from_tty,
                   const qcs_flags &flags)
 {
-  switch_to_thread (thr);
+  gdb_assert (is_current_thread (thr));
 
   /* The thread header is computed before running the command since
      the command can change the inferior, which is not permitted