From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 60514 invoked by alias); 13 May 2019 14:20:09 -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 60221 invoked by uid 89); 13 May 2019 14:20:08 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-15.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_1,KAM_SHORT,SPF_PASS autolearn=ham version=3.3.1 spammy=Partial, ISTM, DWARF-4, H*i:sk:86dc886 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; Mon, 13 May 2019 14:20:07 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 1D18CAEB0; Mon, 13 May 2019 14:20:05 +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> <86dc886a-8ad8-e8dc-5550-b3235a71389b@suse.de> Message-ID: <9eaa327a-c62d-236c-a3a5-29d48f202fc9@suse.de> Date: Mon, 13 May 2019 14:20: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: <86dc886a-8ad8-e8dc-5550-b3235a71389b@suse.de> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2019-05/txt/msg00300.txt.bz2 On 10-05-19 09:57, Tom de Vries wrote: > 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. > Tracking this at Bug 24549 - "DW_AT_main_subprogram ignored with cc-with-gdb-index/cc-with-debug-names" ( https://sourceware.org/bugzilla/show_bug.cgi?id=24549 ). Thanks, - Tom