From a16c032a5c67453e88bc58dc3db0ac568c348973 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 22 Aug 2024 09:49:53 +0200 Subject: [gdb] Eliminate catch(...) in get_test_insn In get_test_insn in gdb/disasm-selftests.c, we find this code: ... try { kind = gdbarch_breakpoint_kind_from_pc (gdbarch, &pc); insn = gdbarch_sw_breakpoint_from_kind (gdbarch, kind, &bplen); } catch (...) { continue; } ... The catch is there to catch memory errors, but it swallows all exceptions, including gdb_exception_quit and gdb_exception_forced_quit. Fix this by limiting the catch to gdb_exception_error. Tested on x86_64-linux, by rebuilding and running gdb.gdb/unittest.exp. Approved-By: Tom Tromey --- gdb/disasm-selftests.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/disasm-selftests.c b/gdb/disasm-selftests.c index 14b7fb3..dd849fb 100644 --- a/gdb/disasm-selftests.c +++ b/gdb/disasm-selftests.c @@ -165,7 +165,7 @@ get_test_insn (struct gdbarch *gdbarch, size_t *len) kind = gdbarch_breakpoint_kind_from_pc (gdbarch, &pc); insn = gdbarch_sw_breakpoint_from_kind (gdbarch, kind, &bplen); } - catch (...) + catch (const gdb_exception_error &) { continue; } -- cgit v1.1