From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from outbound-ss-761.bluehost.com (outbound-ss-761.bluehost.com [74.220.211.250]) by sourceware.org (Postfix) with ESMTPS id 99E223858D20 for ; Tue, 1 Mar 2022 19:10:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 99E223858D20 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 cmgw12.mail.unifiedlayer.com (unknown [10.0.90.127]) by progateway8.mail.pro1.eigbox.com (Postfix) with ESMTP id BEDF9100481FA for ; Tue, 1 Mar 2022 19:10:46 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id P7tVnOR16ctgJP7tWnRrmc; Tue, 01 Mar 2022 19:10:46 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=Oq2Kdwzt c=1 sm=1 tr=0 ts=621e6fb6 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=o8Y5sQTvuykA:10:nop_rcvd_month_year a=Qbun_eYptAEA:10:endurance_base64_authed_username_1 a=CCpqsmhAAAAA:8 a=m5wjQvQLKkkHwM9Hl0wA:9 a=PFSg77jykEAA:10:demote_hacked_domain_1 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=AWwRIc4u7139Hk5gjcKkhjKwlpDqiYHaeKd1CEOvrqE=; b=aP2SCPw2hwFUY78rQ/PqF8uO/s Ynquo7+8jVDKvH6BHBzN3zxG+1YvQ9YzQZ2/ICCBRS/fn6OGeojvUdSpQ02CRqiremyHtezbgQLTT QNiGEb0jPo7Eal7kGY2gAoZ7P; Received: from 75-166-141-253.hlrn.qwest.net ([75.166.141.253]:56056 helo=murgatroyd) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nP7tV-000wuf-K4; Tue, 01 Mar 2022 12:10:45 -0700 From: Tom Tromey To: Markus Metzger via Gdb-patches Subject: Re: [PATCH v4] gdb, gdbserver: support dlmopen() References: <20211117142812.3685162-1-markus.t.metzger@intel.com> X-Attribution: Tom Date: Tue, 01 Mar 2022 12:10:44 -0700 In-Reply-To: <20211117142812.3685162-1-markus.t.metzger@intel.com> (Markus Metzger via Gdb-patches's message of "Wed, 17 Nov 2021 15:28:12 +0100") Message-ID: <87wnhdjxor.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: 75.166.141.253 X-Source-L: No X-Exim-ID: 1nP7tV-000wuf-K4 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 75-166-141-253.hlrn.qwest.net (murgatroyd) [75.166.141.253]:56056 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3025.0 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, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Tue, 01 Mar 2022 19:10:49 -0000 >>>>> "Markus" == Markus Metzger via Gdb-patches writes: Markus> This patch was originally developed by H.J. Last version: Markus> https://sourceware.org/pipermail/gdb-patches/2021-October/182353.html Hi. Thanks to you and HJ for doing this -- dlmopen has long been a hole in gdb. Markus> + /* There may be different instances of the same library, in different Markus> + namespaces. Each instance, however, must have been loaded at a Markus> + different address so its relocation offset would be different. */ Markus> + const lm_info_svr4 *lmg = (const lm_info_svr4 *) gdb->lm_info; Markus> + const lm_info_svr4 *lmi = (const lm_info_svr4 *) inferior->lm_info; Markus> + Markus> + return (lmg->l_addr_inferior == lmi->l_addr_inferior); Can you explain how objfile handling works? I'd suspect that just a single objfile will be made for a given .so. But, if that comment is correct (I think it is) then that would be wrong, because an objfile has to know the correct runtime offset. Maybe I'm mistaken about how the objfiles are created. That would be good... thanks, Tom