aboutsummaryrefslogtreecommitdiff
path: root/gdb/ada-lang.c
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2024-04-09 09:27:52 +0000
committerBernd Edlinger <bernd.edlinger@hotmail.de>2024-04-24 15:59:38 +0200
commit63ddc8af5d7d3ad909aad66291f23507ba987bb4 (patch)
tree32634bdb68064cc4328579d3cd4f1fc6c75dbb35 /gdb/ada-lang.c
parenta47141329c8e984de61ba3c2f2394bcf4328ee92 (diff)
downloadbinutils-63ddc8af5d7d3ad909aad66291f23507ba987bb4.zip
binutils-63ddc8af5d7d3ad909aad66291f23507ba987bb4.tar.gz
binutils-63ddc8af5d7d3ad909aad66291f23507ba987bb4.tar.bz2
Fix an out of bounds array access in find_epilogue_using_linetable
An out of bounds array access in find_epilogue_using_linetable causes random test failures like these: FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: $fba_value == $fn_fba FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: check frame-id matches FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: bt 2 FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: up FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: $sp_value == $::main_sp FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: $fba_value == $::main_fba FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: [string equal $fid $::main_fid] Here the read happens below the first element of the line table, and the test failure depends on the value that is read from there. It also happens that std::lower_bound returns a pointer exactly at the upper bound of the line table, also here the read value is undefined, that happens in this test: FAIL: gdb.dwarf2/dw2-epilogue-begin.exp: confirm watchpoint doesn't trigger Fixes: 528b729be1a2 ("gdb/dwarf2: Add support for DW_LNS_set_epilogue_begin in line-table") Co-Authored-By: Tom de Vries <tdevries@suse.de> PR symtab/31268 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31268
Diffstat (limited to 'gdb/ada-lang.c')
0 files changed, 0 insertions, 0 deletions