[PATCH] gdb: remove unneeded switch_to_thread from thr_try_catch_cmd
Andrew Burgess
andrew.burgess@embecosm.com
Thu Jan 28 14:41:00 GMT 2021
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 | 5 +++++
gdb/thread.c | 7 ++++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/gdb/thread.c b/gdb/thread.c
index 899c2116470..82107067217 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -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
--
2.25.4
More information about the Gdb-patches
mailing list