diff options
author | Tom de Vries <tdevries@suse.de> | 2024-08-22 09:49:53 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2024-08-22 09:49:53 +0200 |
commit | a16c032a5c67453e88bc58dc3db0ac568c348973 (patch) | |
tree | c8bc2c606e1a1b33c543b1dba6c34c302307aa13 | |
parent | 1ebf4606c242c2338de520876e6b342d44106150 (diff) | |
download | gdb-a16c032a5c67453e88bc58dc3db0ac568c348973.zip gdb-a16c032a5c67453e88bc58dc3db0ac568c348973.tar.gz gdb-a16c032a5c67453e88bc58dc3db0ac568c348973.tar.bz2 |
[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 <tom@tromey.com>
-rw-r--r-- | gdb/disasm-selftests.c | 2 |
1 files changed, 1 insertions, 1 deletions
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; } |