From b953e70356feb6161a2c1c5b18dbebcdb7ea0c94 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Tue, 30 Mar 2021 15:16:26 +0200 Subject: [PATCH] [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 PR testsuite/27604 * gdb.dwarf2/dw2-cu-size.S: Add missing .debug_abbrev terminator. --- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.dwarf2/dw2-cu-size.S | 3 +++ 2 files changed, 8 insertions(+) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 628261b5fbe..f70d56417a1 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2021-03-30 Tom de Vries + + PR testsuite/27604 + * gdb.dwarf2/dw2-cu-size.S: Add missing .debug_abbrev terminator. + 2021-03-29 Tankut Baris Aktemur * 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 af951ea8777..ebbfdb29c5c 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. */ -- 2.30.2