From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 111084 invoked by alias); 3 Jul 2018 14:21:24 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 110762 invoked by uid 89); 3 Jul 2018 14:21:23 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy=nd, 20180619 X-HELO: mx1.suse.de Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 03 Jul 2018 14:21:22 +0000 Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 52104B054 for ; Tue, 3 Jul 2018 14:21:20 +0000 (UTC) Subject: [PING][PATCH][gdb/testsuite] Fix error message test in dw2-error.exp From: Tom de Vries To: gdb-patches@sourceware.org References: <20180619090024.c2yqabvk6oujs6dm@localhost.localdomain> Message-ID: Date: Tue, 03 Jul 2018 14:21:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20180619090024.c2yqabvk6oujs6dm@localhost.localdomain> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2018-07/txt/msg00048.txt.bz2 On 06/19/2018 11:00 AM, Tom de Vries wrote: > Hi, > > the executable used in dw2-error.exp is compiled from a .s that was generated > with dwarf2 debug information but has been hand-edited to set the version in > the compilation unit header to 0x99: > ... > .Ldebug_info0: > .long 0x4e # Length of Compilation Unit Info > .value 0x99 # DWARF version number > .long .Ldebug_abbrev0 # Offset Into Abbrev. Section > ... > > Consequently, dwarf2read.c:read_comp_unit_head() interprets the compilation > unit header as dwarf5, which starts with fields unit_length (4 or 12 byte > unsigned), version (uhalf), and unit_type (ubyte). So, the unit_type > field is initialized from the first byte of .Ldebug_abbrev0 offset. > > Using objdump, we find that the value of that byte is 0x64. > ... > Contents of section .debug_info: > ... > 00c0 00450000 0001804e 00000099 00640000 .E.....N.....d.. > ... > > And indeed gdb errors out accordingly (note: 0x64 == 100): > ... > (gdb) file outputs/gdb.dwarf2/dw2-error/dw2-error > Reading symbols from outputs/gdb.dwarf2/dw2-error/dw2-error... > Dwarf Error: wrong unit_type in compilation unit header > (is 100, should be 1 or 2) > [in module outputs/gdb.dwarf2/dw2-error/dw2-error] > (no debugging symbols found)...done. > ... > > The test fails however because it expects the error message to contain 0 > instead of the 100 we're seeing. > > This patch fixes the failure by allowing any value for the unit_type in the > error message. > > Tested on x86_64-linux. > > OK for trunk? > > Thanks, > - Tom > > [gdb/testsuite] Fix error message test in dw2-error.exp > > 2018-06-19 Tom de Vries > > * gdb.dwarf2/dw2-error.exp: Allowing any value for the unit_type in > the "wrong unit_type in compilation unit header" error message. > > --- > gdb/testsuite/gdb.dwarf2/dw2-error.exp | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gdb/testsuite/gdb.dwarf2/dw2-error.exp b/gdb/testsuite/gdb.dwarf2/dw2-error.exp > index e22667dea5..441e0f8db5 100644 > --- a/gdb/testsuite/gdb.dwarf2/dw2-error.exp > +++ b/gdb/testsuite/gdb.dwarf2/dw2-error.exp > @@ -41,7 +41,7 @@ gdb_test_no_output "set breakpoint pending off" > > # First test that reading symbols fails. > gdb_test "file $binfile" \ > - {Reading symbols.*Dwarf Error: wrong unit_type in compilation unit header \(is 0, should be 1 or 2\).*} \ > + {Reading symbols.*Dwarf Error: wrong unit_type in compilation unit header \(is [0-9]+, should be 1 or 2\).*} \ > "file $testfile" > > # Now check that we can still break given the minimal symbol. >