]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[gdb/testsuite] Add missing terminator in Dwarf::_macro_unit
authorTom de Vries <tdevries@suse.de>
Thu, 16 May 2024 20:28:07 +0000 (22:28 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 16 May 2024 20:28:07 +0000 (22:28 +0200)
commite75d765e2bf525ea24a5cab6fea19a913e213a7c
treea012be5fbc1b7d0f5f7a4f61d5e3cdbaa48527d3
parentf617661c1105c1fc95c19c4ea129fdd2318095e7
[gdb/testsuite] Add missing terminator in Dwarf::_macro_unit

When printing complaints with one of the execs from test-case
gdb.dwarf2/macro-source-path.exp, we run into:
...
$ gdb -q -batch \
    -iex "set complaints 100" \
    macro-source-path-clang14-dw4-absolute-cwd-32 \
    -ex "p main"
During symbol reading: debug info runs off end of .debug_macro section \
  [in module macro-source-path-clang14-dw4-absolute-cwd-32]
$1 = {int ()} 0x4004b7 <main>
...
and readelf complains more specifically:
...
Contents of the .debug_macro section:

  Offset:                      0
  Version:                     5
  Offset size:                 4
  Offset into .debug_line:     0xe3

 DW_MACRO_define - lineno : 0 macro : ONE 1
 DW_MACRO_define_strp - lineno : 0 macro : THREE 3
 DW_MACRO_start_file - lineno: 0 filenum: 1 filename: test.c
 DW_MACRO_define - lineno : 1 macro : TWO 2
 DW_MACRO_end_file
readelf: Error: .debug_macro section not zero terminated
...

Fix this by adding the missing terminator in Dwarf::_macro_unit.

Tested on x86_64-linux.

Approved-By: Tom Tromey <tom@tromey.com>
gdb/testsuite/gdb.dwarf2/macro-source-path.exp
gdb/testsuite/lib/dwarf.exp