From patchwork Sun Oct 29 23:23:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 56292 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 792ED3871033 for ; Sun, 29 Oct 2023 23:23:32 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta038.useast.a.cloudfilter.net (omta038.useast.a.cloudfilter.net [44.202.169.37]) by sourceware.org (Postfix) with ESMTPS id C29513861894 for ; Sun, 29 Oct 2023 23:23:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C29513861894 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C29513861894 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.37 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698621789; cv=none; b=YZy5gvOWZIXS9O9WcQ7QS+5W4Wsd2vj3RgSCP2yxioUx4GJe7gkI+T0H1/X1lNCT/c2sjocUVLPlr9Vdf9POn1uWNstk/nL/huR37z51aEng6AtoOld74AaIQpTCtiYWyXkC+8Uc4+JcyftPz6GYH5gsDKqAeYFoRPCU1zYLoRI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698621789; c=relaxed/simple; bh=YyDNqZHzO8GOgL94KcNyMdPmK0Xr2kutMKeUfWw5QCQ=; h=DKIM-Signature:From:Subject:Date:Message-Id:MIME-Version:To; b=gc9hXjp9xu84SAL+kTbXMFE5BzaY4/hDQuHMlfkuHmuZtrNFgTHS8ZqpD8stUfEk2/COk79pm70DP6dbZIRtqDi/VY54afyFhnX9IScG9oCG+i8qC0BPJe3ZlXop8ysXcy8owh7RLu0VvoY0mFPVsuMu6l2D+skHaC4AAl8QAys= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6004a.ext.cloudfilter.net ([10.0.30.197]) by cmsmtp with ESMTPS id wrLgq4T5LWcCIxF7bqWTg4; Sun, 29 Oct 2023 23:23:07 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id xF7ZqF6QQwasUxF7aqq22M; Sun, 29 Oct 2023 23:23:06 +0000 X-Authority-Analysis: v=2.4 cv=ZpP+lv3G c=1 sm=1 tr=0 ts=653ee95a a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=bhdUkHdE2iEA:10 a=Qbun_eYptAEA:10 a=zstS-IiYAAAA:8 a=ikT9nzSHaGRutke8eLYA:9 a=QEXdDO2ut3YA:10 a=4G6NA9xxw8l3yy4pmD5M:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:Content-Transfer-Encoding:Content-Type:MIME-Version: Message-Id:Date:Subject:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=bRpq4SEBAISm7tK7iZsYkIfD+/6qJlVu/DqIfYEqiqE=; b=UEPpUUfeF3UMC+FtVa+FIIPFiK vlG19Le9INhfC4wWkS3l61V2k4YVF9LXAvtR2E9U/M8ohF2HRTHi0o8yecpxoQXq5L156RV/cqESt qGtXjOPzq8mA4EI4kfF2W0IG7; Received: from 97-122-77-73.hlrn.qwest.net ([97.122.77.73]:56344 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1qxF7Z-0042zY-21 for gdb-patches@sourceware.org; Sun, 29 Oct 2023 17:23:05 -0600 From: Tom Tromey Subject: [PATCH 00/30] Baby step for objfile splitting Date: Sun, 29 Oct 2023 17:23:21 -0600 Message-Id: <20231029-split-objfile-2023-bound-sym-october-v1-0-612531df2734@tromey.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAGnpPmUC/x3NSw7CMAxF0a1UHmMpKRK/rSAG+TjUqE0qO0Wgq nsnZXje4L4VlIRJ4datIPRm5ZIb7KGDMLj8JOTYDL3pj9b0V9R55IrFvxKPhPuMviw5on4nLKE WT4KX6M4pWXOyIUBLzUKJP/+b+6PZOyX04nIY9vjktJLAtv0AqQYhlY8AAAA= To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 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: 97.122.77.73 X-Source-L: No X-Exim-ID: 1qxF7Z-0042zY-21 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-77-73.hlrn.qwest.net ([192.168.0.21]) [97.122.77.73]:56344 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfF79LN3h8/OM0QTwC7Iv/SYJeLmsa2D/8IQo7AyfoNy46jjmKGcjsMCUKm4uHlVL854nt3kzq55FXEsYGPaneIBkLKVjDqtK+r7dU3hlab097V3JZ1yY oBWSlRqaY08WudYLazhic/zkmutkRJiya3wPTbHjPb3R1OmxUkJCtA1UtYnBDojdJGGakgctH0I5UdsErdnWElORKQtYUqCvgvI= X-Spam-Status: No, score=-3018.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Every year or so, I take a stab at the objfile splitting work. This always fails and I end up not sending anything. This year, I decided to take a baby step instead, thinking maybe it would be possible to slowly grind away at the problem. This series is the first such step. It spreads the use of block_symbol through a bunch of code, trying to eliminate calls to symbol::value_address. The longer term idea here is to then add an objfile member to block_symbol. After this, it would be relatively simple to change symbols to be relocated at point of use. (This would be a significant step toward objfile splitting, but there's even more to do after that...) Regression tested on x86-64 Fedora 38. --- Tom Tromey (30): Introduce block-symbol.h Add block_symbol::address Easy conversions to use block_symbol::address Use block_symbol::address in ada-tasks.c Use block_symbol::address in printcmd.c Use block_symbol::address in tracepoint.c More use of block_symbol::address in tracepoint.c Use block_symbol::address in ax-gdb.c Use block_symbol::address in linespec.c Use block_symbol::address in ada-lang.c Use block_symbol::address in symmisc.c Introduce read_var_value overload Use read_var_value in gdb/compile Return a block_symbol from find_pc_sect_function Use read_var_value overload in finish_command_fsm Use block_symbol in overload-handling code Change evaluate_var_value to accept a block_symbol Change value_of_variable to take a block_symbol Return a block_symbol from get_frame_function Use read_var_value overload in return_command Use read_var_value overload in py-finishbreakpoint.c Use read_var_value overload in py-framefilter.c Use read_var_value overload in Guile Use read_var_value in read_frame_arg and read_frame_local Change print_variable_and_value to take a block_symbol Change find_frame_funname to return a block_symbol Change btrace_function::sym to a block_symbol Use read_var_value overload in Python Remove the old read_var_value Change language_defn::read_var_value to accept block_symbol gdb/ada-lang.c | 51 +++++++------ gdb/ada-tasks.c | 14 ++-- gdb/ax-gdb.c | 28 +++---- gdb/ax-gdb.h | 2 +- gdb/block-symbol.h | 41 +++++++++++ gdb/blockframe.c | 18 ++--- gdb/breakpoint.c | 4 +- gdb/btrace.c | 38 +++++----- gdb/btrace.h | 5 +- gdb/cli/cli-cmds.c | 4 +- gdb/compile/compile-c-symbols.c | 18 +++-- gdb/compile/compile-cplus-symbols.c | 6 +- gdb/compile/compile-cplus-types.c | 2 +- gdb/compile/compile-loc2c.c | 14 ++-- gdb/compile/compile.h | 6 +- gdb/cp-support.c | 46 +++++++----- gdb/cp-support.h | 6 +- gdb/dwarf2/ada-imported.c | 2 +- gdb/dwarf2/loc.c | 16 ++-- gdb/dwarf2/loc.h | 3 +- gdb/eval.c | 62 +++++++--------- gdb/expop.h | 5 ++ gdb/f-valprint.c | 4 +- gdb/findvar.c | 24 +++--- gdb/frame.c | 2 +- gdb/frame.h | 9 ++- gdb/guile/guile-internal.h | 2 +- gdb/guile/scm-block.c | 6 +- gdb/guile/scm-frame.c | 7 +- gdb/guile/scm-symbol.c | 78 ++++++++++---------- gdb/infcall.c | 4 +- gdb/infcmd.c | 29 ++++---- gdb/infrun.c | 10 +-- gdb/inline-frame.c | 2 +- gdb/language.h | 14 +--- gdb/linespec.c | 15 ++-- gdb/mi/mi-cmd-stack.c | 20 ++--- gdb/printcmd.c | 21 +++--- gdb/python/py-block.c | 6 +- gdb/python/py-finishbreakpoint.c | 11 +-- gdb/python/py-frame.c | 15 ++-- gdb/python/py-framefilter.c | 64 +++++++--------- gdb/python/py-objfile.c | 16 ++-- gdb/python/py-record-btrace.c | 2 +- gdb/python/py-symbol.c | 143 ++++++++++++++++++------------------ gdb/python/py-type.c | 2 +- gdb/python/py-unwind.c | 4 +- gdb/python/python-internal.h | 4 +- gdb/record-btrace.c | 8 +- gdb/rust-lang.c | 2 +- gdb/skip.c | 2 +- gdb/solib-frv.c | 2 +- gdb/sparc-tdep.c | 4 +- gdb/stack.c | 59 ++++++++------- gdb/stack.h | 2 +- gdb/symmisc.c | 15 ++-- gdb/symtab.c | 4 +- gdb/symtab.h | 22 ++---- gdb/tracepoint.c | 24 +++--- gdb/tracepoint.h | 2 +- gdb/valarith.c | 9 +-- gdb/valops.c | 75 ++++++++++--------- gdb/value.c | 2 +- gdb/value.h | 18 ++--- 64 files changed, 597 insertions(+), 558 deletions(-) --- base-commit: 04f0f42bcf4fb5f7bbde0b954f816c5f6ff7f571 change-id: 20231029-split-objfile-2023-bound-sym-october-8da7ff1061cc Best regards,