diff options
author | Tom de Vries <tdevries@suse.de> | 2021-03-30 15:16:26 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2021-03-30 15:16:26 +0200 |
commit | b953e70356feb6161a2c1c5b18dbebcdb7ea0c94 (patch) | |
tree | 4a285e4337d52672015903ff4ef255733520a261 /gdb | |
parent | 782c1ab836f73e9f18ad615a464b9dea92754f05 (diff) | |
download | gdb-b953e70356feb6161a2c1c5b18dbebcdb7ea0c94.zip gdb-b953e70356feb6161a2c1c5b18dbebcdb7ea0c94.tar.gz gdb-b953e70356feb6161a2c1c5b18dbebcdb7ea0c94.tar.bz2 |
[gdb/testsuite] Add missing .debug_abbrev terminator in dw2-cu-size.S
Since commit 27012aba8a6 "Remove Irix 6 workaround from DWARF abbrev reader"
we have:
...
(gdb) file dw2-cu-size^M
Reading symbols from dw2-cu-size...^M
DW_FORM_strp pointing outside of .debug_str section [in module dw2-cu-size]^M
(No debugging symbols found in dw2-cu-size)^M
(gdb) ptype noloc^M
No symbol table is loaded. Use the "file" command.^M
(gdb) FAIL: gdb.dwarf2/dw2-cu-size.exp: ptype noloc
...
The problem is a missing .debug_abbrev terminator in dw2-cu-size.S, which
causes the .debug_abbrev contribution to be merged with the next:
...
Number TAG (0x9b)
1 DW_TAG_compile_unit [has children]
DW_AT_name DW_FORM_string
DW_AT_producer DW_FORM_string
DW_AT_language DW_FORM_data1
DW_AT value: 0 DW_FORM value: 0
2 DW_TAG_variable [no children]
DW_AT_name DW_FORM_string
DW_AT_type DW_FORM_ref4
DW_AT_external DW_FORM_flag
DW_AT value: 0 DW_FORM value: 0
3 DW_TAG_base_type [no children]
DW_AT_name DW_FORM_string
DW_AT_byte_size DW_FORM_data1
DW_AT_encoding DW_FORM_data1
DW_AT value: 0 DW_FORM value: 0
4 DW_TAG_const_type [no children]
DW_AT_type DW_FORM_ref_udata
DW_AT value: 0 DW_FORM value: 0
1 DW_TAG_compile_unit [has children]
DW_AT_producer DW_FORM_strp
DW_AT_language DW_FORM_data1
DW_AT_name DW_FORM_strp
DW_AT_comp_dir DW_FORM_strp
DW_AT_low_pc DW_FORM_addr
DW_AT_high_pc DW_FORM_data8
DW_AT_stmt_list DW_FORM_sec_offset
DW_AT value: 0 DW_FORM value: 0
...
and consequently, abbreviation code 1 no longer refers to a unique entry.
The eventually causes us to access the first attribute of this DIE:
...
<0><124>: Abbrev Number: 1 (DW_TAG_compile_unit)
<125> DW_AT_name : file1.txt
<12f> DW_AT_producer : GNU C 3.3.3
<13b> DW_AT_language : 1 (ANSI C)
...
which has form DW_FORM_string, using DW_FORM_strp.
Fix this by adding the missing .debug_abbrev terminator in dw2-cu-size.S.
gdb/testsuite/ChangeLog:
2021-03-30 Tom de Vries <tdevries@suse.de>
PR testsuite/27604
* gdb.dwarf2/dw2-cu-size.S: Add missing .debug_abbrev terminator.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/dw2-cu-size.S | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 628261b..f70d564 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2021-03-30 Tom de Vries <tdevries@suse.de> + + PR testsuite/27604 + * gdb.dwarf2/dw2-cu-size.S: Add missing .debug_abbrev terminator. + 2021-03-29 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * gdb.mi/user-selected-context-sync.exp: Spin on a variable in diff --git a/gdb/testsuite/gdb.dwarf2/dw2-cu-size.S b/gdb/testsuite/gdb.dwarf2/dw2-cu-size.S index af951ea8..ebbfdb2 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-cu-size.S +++ b/gdb/testsuite/gdb.dwarf2/dw2-cu-size.S @@ -104,3 +104,6 @@ .byte 0x0 /* Terminator */ .byte 0x0 /* Terminator */ + + .byte 0x0 /* Terminator .debug_abbrev + section. */ |