From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gateway21.websitewelcome.com (gateway21.websitewelcome.com [192.185.45.228]) by sourceware.org (Postfix) with ESMTPS id 8DB013858012 for ; Thu, 1 Apr 2021 17:30:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8DB013858012 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=tom@tromey.com Received: from cm16.websitewelcome.com (cm16.websitewelcome.com [100.42.49.19]) by gateway21.websitewelcome.com (Postfix) with ESMTP id 17472400C42E2 for ; Thu, 1 Apr 2021 12:30:31 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id S19KlLH7Vb8LyS19LlbxfI; Thu, 01 Apr 2021 12:30:31 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Wnb6aubrkQpBkeH+j8bnviX5Bjzmrv8I79OJmn3lYzg=; b=nDXNcPoNrJiB9UTsX/1jdCbNK4 zfC2woyBWWOxGCZgv8UF/FNP35W2y8qtUQ+IRzi/shOUjeI/Oix+Vp8uqEYPU1SShF9RqGvsJ2UGZ EvZdPWPdA0R40ijVLJHthCEhG; Received: from 71-211-182-15.hlrn.qwest.net ([71.211.182.15]:44258 helo=murgatroyd) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1lS19K-000wNK-PD; Thu, 01 Apr 2021 11:30:30 -0600 From: Tom Tromey To: Weimin Pan via Gdb-patches Subject: Re: [PATCH,V3 3/3] CTF: multi-CU and archive support References: <1617237594-24175-1-git-send-email-weimin.pan@oracle.com> <1617237594-24175-2-git-send-email-weimin.pan@oracle.com> <1617237594-24175-3-git-send-email-weimin.pan@oracle.com> <1617237594-24175-4-git-send-email-weimin.pan@oracle.com> X-Attribution: Tom Date: Thu, 01 Apr 2021 11:30:30 -0600 In-Reply-To: <1617237594-24175-4-git-send-email-weimin.pan@oracle.com> (Weimin Pan via Gdb-patches's message of "Wed, 31 Mar 2021 20:39:54 -0400") Message-ID: <87wntlq5e1.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.182.15 X-Source-L: No X-Exim-ID: 1lS19K-000wNK-PD X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-182-15.hlrn.qwest.net (murgatroyd) [71.211.182.15]:44258 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3022.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, JMQ_SPF_NEUTRAL, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, RCVD_IN_SBL_CSS, SPF_HELO_PASS, SPF_NEUTRAL, TXREP, URIBL_CSS, URIBL_CSS_A autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Apr 2021 17:30:33 -0000 >>>>> Weimin Pan via Gdb-patches writes: > Now gdb is capable of debugging executable, which consists of multiple > compilation units, with CTF. An executable could potentially have one > or more archives, which, in CTF context, contain conflicting types. Thank you for the patch. I can't really comment on most of it, since I don't know much about CTF and I've never managed to even run one of the CTF tests. However, I did have a question. > + dp = (ctf_psymtab *)pst->dependencies[i]; gdb style is a space after the cast. > + if (isparent) > + pcu->parent_psymtab = pst; > + else > + pcu->imported_symtabs.push_back (pst); The imported symtabs logic for partial symbol tables is to support a way to "paste together" certain symtabs. The idea in gdb is that when searching a psymtab for a symbol, all its included psymtabs are also searched -- the tree of inclusions form a kind of "virtual psymtab". This is either used to represent header files (if user==nullptr) or the DWARF "partial unit" feature (if user!=nullptr). In the bit of your introduction quoted above, though, it sounds like this is probably not what you intend? At least, I don't see how to reconcile this with the "conflicting types" text. Also I notice that the dependency tree isn't really represented in the resulting symtabs, or at least it didn't seem that way to me. I don't know if this is invalid or not (there's probably no real rule), but it at least seems a bit questionable. If a CTF archive represents multiple compilation units, the more ordinary thing to do would be to create one psymtab per each unit, and just let them be separate. I wonder if psymtabs are even needed or useful for CTF. Depending on how libctf works it might be preferable to get rid of them entirely and just write a new implementation of quick_symbol_functions. Anyway, if you did intend things to work this way, then it's fine by me. thanks, Tom