From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gproxy4-pub.mail.unifiedlayer.com (gproxy4-pub.mail.unifiedlayer.com [69.89.23.142]) by sourceware.org (Postfix) with ESMTPS id AFB703857BBD for ; Fri, 15 Jul 2022 20:13:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AFB703857BBD Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com Received: from cmgw10.mail.unifiedlayer.com (unknown [10.0.90.125]) by progateway6.mail.pro1.eigbox.com (Postfix) with ESMTP id 33BE21004045F for ; Fri, 15 Jul 2022 20:13:27 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id CRgkoA0DOCokGCRglouEII; Fri, 15 Jul 2022 20:13:27 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=d+QwdTvE c=1 sm=1 tr=0 ts=62d1ca67 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=RgO8CyIxsXoA:10:nop_rcvd_month_year a=Qbun_eYptAEA:10:endurance_base64_authed_username_1 a=CCpqsmhAAAAA:8 a=QyXUC8HyAAAA:8 a=igvHpm2bE1HpuPJZJxQA:9 a=ul9cdbp4aOFLsgKbc677:22 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=G1h2SY+4pz/8lGnP+unslLV85eadHc3OtrSzvW5EXNg=; b=WArA8itKbCEzAOVIhX8Kjfj6/O n3U7tC4c0ctSk5EQ6YmLYT2S5Z/jylhHlH++ML6xFzerC888veq6lhKQG+8o00Hvtc/RLB746MDRa sOxOwh1SfjlsIe/gkph+Ysgqu; Received: from 71-211-185-228.hlrn.qwest.net ([71.211.185.228]:56138 helo=murgatroyd) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1oCRgk-000mHy-KZ; Fri, 15 Jul 2022 14:13:26 -0600 From: Tom Tromey To: Nils-Christian Kempke via Gdb-patches Subject: Re: [PATCH 2/3] gdb/symtab: add lookup for trampoline functions References: <20220707121538.1317473-2-nils-christian.kempke@intel.com> <20220707121538.1317473-3-nils-christian.kempke@intel.com> X-Attribution: Tom Date: Fri, 15 Jul 2022 14:13:25 -0600 In-Reply-To: <20220707121538.1317473-3-nils-christian.kempke@intel.com> (Nils-Christian Kempke via Gdb-patches's message of "Thu, 7 Jul 2022 14:15:37 +0200") Message-ID: <87h73im8wq.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (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.185.228 X-Source-L: No X-Exim-ID: 1oCRgk-000mHy-KZ X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-185-228.hlrn.qwest.net (murgatroyd) [71.211.185.228]:56138 X-Source-Auth: tom+tromey.com X-Email-Count: 3 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_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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: Fri, 15 Jul 2022 20:13:39 -0000 >>>>> Nils-Christian Kempke via Gdb-patches writes: > In order to queriy information about the DW_AT_trampoline tag for > subroutines and inlined subroutines two function were added to symtab. > First, a routine for querying whether the given pc belongs to a block > that is associated with a function (maybe inlined) marked > DW_AT_trampoline. > Second, a routine for querying a trampoline function's target. > Subroutines and inlined subroutines marked with DW_AT_trampoline usually > contain information about the target subroutine they are 'wrapping'/ > passing control to. Thank you for the patch. > gdb/ChangeLog: > 2022-05-30 Nils-Christian Kempke > * symtab.h (in_trampoline_function): New function > (find_function_trampoline_target): New function. > * symtab.c (in_trampoline_function): New function implementation. > (find_function_trampoline_target): New implementation of > trampoline target lookup. These aren't needed any more. > + if (trampoline->target_kind () == TRAMPOLINE_TARGET_PHYSNAME) > + { > + /* Handle both the mangled and demangled PHYSNAME. */ > + const char *physname = trampoline->target_physname (); > + > + if (find_minimal_symbol_address (physname, &target_address, nullptr) > + != 0) > + target_address = 0; Will there always be a minimal symbol? It seems like maybe this isn't a requirement. > + /* If the function symbol containing this trampoline target has > + been relocated we assume the target_address also needs relocation. > + If it has not been relocated the offset should be zero. */ > + target_address = trampoline->target_physaddr () > + + sym->objfile ()->section_offsets[sym->section_index ()]; It seems to me that this adds an additional section offset, even though one was already added when reading. However as mentioned there, it's better to do this work here and undo the offset in the reader. Also this isn't formatted properly, you need parens around the right hand side of the assignment. Tom