From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 80778 invoked by alias); 10 May 2019 07:57:29 -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 80769 invoked by uid 89); 10 May 2019 07:57:29 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-15.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_1,KAM_SHORT,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:1841 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; Fri, 10 May 2019 07:57:28 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id E2372AD2C; Fri, 10 May 2019 07:57:25 +0000 (UTC) Subject: Re: [RFC] How to fix gdb.dwarf2/main-subprogram.exp with cc-with-gdb-index/cc-with-debug-names From: Tom de Vries To: gdb-patches@sourceware.org Cc: Tom Tromey , Pedro Alves , Simon Marchi References: <20190505102520.GA5031@delia> Message-ID: <86dc886a-8ad8-e8dc-5550-b3235a71389b@suse.de> Date: Fri, 10 May 2019 07:57:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2019-05/txt/msg00244.txt.bz2 On 05-05-19 13:42, Tom de Vries wrote: > [ was: Re: [PATCH][gdb/symtab] Support DW_AT_main_subprogram with > -readnow. ] > > Hi, > > DW_AT_main_subprogram is supported in normal mode (in > read_partial_die),and tested by test-case gdb.dwarf2/main-subprogram.exp. > > DW_AT_main_subprogram is currently not supported in -readnow mode, but > I've submitted a fix for that (in read_func_scope). > > Still, the test-case gdb.dwarf2/main-subprogram.exp fails with > executables that contain an index, either .gdb_index or .debug_names > (which is exercised by target boards cc-with-gdb-index and > cc-with-debug-names). > > I wonder whether and if so, how this should be fixed. > > ISTM that we want gdb to behave the same, functionality-wise, in normal > mode, -readnow mode, and with an index. > > AFAIU, to fix this, then when loading an executable with index into gdb > and issuing the start command, we'll need to read the debug info until > finding the DW_AT_main_subprogram, but reading the debug info scanning > just for one attribute seems rather inefficient to me. > > Any comments or advice here? I just found in the DWARF-4 standard: ... 3.1.1 Normal and Partial Compilation Unit Entries 11. A DW_AT_main_subprogram attribute, which is a flag whose presence indicates that the compilation unit contains a subprogram that has been identified as the starting function of the program. ... The test-case gdb.dwarf2/main-subprogram.exp doesn't contain this attribute on the containing CU. Also, gcc doesn't emit it, I just filed PR90422 - "DW_AT_main_subprogram not added to CU DIE" ( https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90422 ) about that. I imagine that scanning the CUs for this attribute shouldn't be too slow. Thanks, - Tom