]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb] Eliminate catch(...) in get_test_insn
authorTom de Vries <tdevries@suse.de>
Thu, 22 Aug 2024 07:49:53 +0000 (09:49 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 22 Aug 2024 07:49:53 +0000 (09:49 +0200)
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 <tom@tromey.com>
gdb/disasm-selftests.c

index 14b7fb30badf58305ad9d2a57aafd88ae0e41af6..dd849fb1eb9ce2feb9f19e073c247b3484023378 100644 (file)
@@ -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;
              }