From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id GW+/GApmqGmERxQAWB0awg (envelope-from ) for ; Wed, 04 Mar 2026 12:04:10 -0500 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=labware.com header.i=@labware.com header.a=rsa-sha256 header.s=mimecast20220511 header.b=izaFSnx0; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 5AD8D1E0DD; Wed, 04 Mar 2026 12:04:10 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 49B2A1E089 for ; Wed, 04 Mar 2026 12:04:09 -0500 (EST) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id DB6134BA23D7 for ; Wed, 4 Mar 2026 17:04:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DB6134BA23D7 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=labware.com header.i=@labware.com header.a=rsa-sha256 header.s=mimecast20220511 header.b=izaFSnx0 Received: from us-smtp-delivery-114.mimecast.com (us-smtp-delivery-114.mimecast.com [170.10.129.114]) by sourceware.org (Postfix) with ESMTP id 01ED94BA2E11 for ; Wed, 4 Mar 2026 17:00:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 01ED94BA2E11 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=labware.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=labware.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 01ED94BA2E11 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.114 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1772643628; cv=none; b=jm7m8D7XptZx9CNh2n0YfEOJqZNBk0p++eeymPKKWB4NxncDHHGuLXUl8BGLt42kyXmoQENbphPwL8pivn3DxR4XQwJmQgxtsbF1KtWGICEjiGRQQf4nhu+aNhtTC1qpv9a4KuLXC6gZZ6B1XfRwgQWpO07H6PwK/tPUZvbKx7A= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1772643628; c=relaxed/simple; bh=sVee8RLoynlPX8A98TWzUi4IYal/OIWvvrAYe/vBKxc=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=sZaq2r5nDpc5iPF419VmkdcgfhSNEDzQ7YMs/MkxWoAHY13gTlj2Q+DnCdD2w8DITOwrRHLHlCTatQLjtr0LBQSxEzOz6m3IK42FqSaXfsKVaKrOcw9QzUjKedgCx/cJNcX5L/G1Q2V0ZiKsAuHKd4cL/QnHlXSvdwfQUyWrD58= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 01ED94BA2E11 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=labware.com; s=mimecast20220511; t=1772643622; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cOiurwG+eJ+ENm2cNLjVfYWPVyeSkfyGeiwx6M0I07U=; b=izaFSnx0qYeF2eBooqTZTEMdQu8WWWf5EfKRAWDKFEfN7NY6m5S4Ss6yyoEcUEb8bNNTxu l0JWVWk5/J4bbDGovpJTtzBICBsjy5EYwdbDv0DQxogpaiaT2jlvqZdis0uvigMOth4D+S pvpyTgDq5Z3rDc7aPCwwbmldnOa5dgg= Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11020090.outbound.protection.outlook.com [52.101.46.90]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-13-0O-36EgFMe6RTmqO06vNrw-1; Wed, 04 Mar 2026 12:00:21 -0500 X-MC-Unique: 0O-36EgFMe6RTmqO06vNrw-1 X-Mimecast-MFC-AGG-ID: 0O-36EgFMe6RTmqO06vNrw_1772643620 Received: from SA1PR17MB5365.namprd17.prod.outlook.com (2603:10b6:806:1d8::11) by IA3PR17MB7264.namprd17.prod.outlook.com (2603:10b6:208:51c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar 2026 17:00:18 +0000 Received: from SA1PR17MB5365.namprd17.prod.outlook.com ([fe80::9a:538a:fa42:730e]) by SA1PR17MB5365.namprd17.prod.outlook.com ([fe80::9a:538a:fa42:730e%3]) with mapi id 15.20.9654.022; Wed, 4 Mar 2026 17:00:18 +0000 From: Jan Vrany To: gdb-patches@sourceware.org CC: Jan Vrany Subject: [PATCH v2 6/7] gdb: remove address map from struct blockvector Date: Wed, 4 Mar 2026 16:59:13 +0000 Message-ID: <20260304165914.3209106-7-jan.vrany@labware.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260304165914.3209106-1-jan.vrany@labware.com> References: <20260304165914.3209106-1-jan.vrany@labware.com> X-ClientProxiedBy: LO6P123CA0058.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:310::19) To SA1PR17MB5365.namprd17.prod.outlook.com (2603:10b6:806:1d8::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA1PR17MB5365:EE_|IA3PR17MB7264:EE_ X-MS-Office365-Filtering-Correlation-Id: 362c6e23-58fd-4781-68ff-08de7a0f83a0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014 X-Microsoft-Antispam-Message-Info: 5dNk9uGesQMD8eWOQ6xXlDUjXBBNHKTqF2QgWl1tWKEPsob10/bVBpJey/aLVb2jkwfS6x1GFmzKnfBM9Gg8W6/VeBph+zTtovn3jWbd3sXljaOsEoXc9ZHPNILE+OxtLpdFQJWvrTYR5R01BG9Jasu4O+oLOYoxg/vo+soHF7g+P/3M6A7ozM+XT9bm7X+X6ElVErV3frRqWlm3T9L6wEFWc+wiBFL5/UXnnmJLZkTijfUgghySOZ5lFVmtyX1jtJjt4KAHjv5ZowvbgiHVs/wuxYA4DzNsljo/DFTRj0CR0QTLPdV+1SUR/kWqUK3cagpeUr+r3xZDin9GuPasmC0HIk4Ctey1Ftoqziy9qwcfFaSJw970ko1GTuwOsZtSV1nU/vpZzt5IfDw9+CkkEfibEwiWq3XG4IcZi3GwfaP/sMHnGQsMhvn92w+/m3ctatYuT5nrlvPPGn/I3YmolT5+OvG2zpVDAq6v5z6Hm1irFA2pC4RXS5fFi0Ad75LsE/T59Xf5rgFGZ5AwToL0sizdll6zmpVqsieFRua9sLML7EbFWD7M4xdB/A3LzwZ5kq3MGJ5huevfpKCpstXf2+A/uNc4lH2aNsjo7UoC0ec9zEHp7GjOXyWmGlsH69rukayat5+GvZiP0T61tXYXbukmN+nJeSSAKmHzhVnA9d/MW3OxN1PwqasJSgHF+VM+P3AW9Rvf3jxSiFabPCHXEv+IBgdsxn+o/ACz32uDukQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA1PR17MB5365.namprd17.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sJDjDW1YFmY03NdNyRreUm02xC3Sep/ssYlt3C/PAzn9g3LOStxW47kGOgGV?= =?us-ascii?Q?/e7sDqawo6e7ghNuKknUgkOWY+NIIdeDRUrBhNKpLd9ok6fMX8CFpUBA1riA?= =?us-ascii?Q?peqeA7GYcU7ZZsJWJe6L8dGF3qvNQ4Tts1L9i4QPWJ47lI+UjceglcuELyAT?= =?us-ascii?Q?F1WfL05nr7D+a7KnzWeoUE24ju1cps48ga7bQVLupkVQxOjyGqsB4rmUQO7z?= =?us-ascii?Q?n0cF/4Xx2vIY69Ut4YvdVjPBBCGIEHOs5Gbhag7jLIUwQB0HmaDepCgfNFQ+?= =?us-ascii?Q?KkFCcpx4rEWHka5LjnXYP6M3LjMDSVv5tke1t5cAwxENtTfsCkuV8owuSrQC?= =?us-ascii?Q?v2Ah045PN+2VKXG0QsUqyzDKjLfmb+hXpOrJedDsZ1v6BEA3ThcZKcfGY6qi?= =?us-ascii?Q?Qdw3MugrAKomwxsjLoKN+WGqudixUqLx3mSNNLlg4EHc6hWo/c/omMpLa4eB?= =?us-ascii?Q?AEoDO3YdpznSyqWxHrlOtDMvnHgkKuMg27V75qYfhekEMFIUxJRS1wFrHnwE?= =?us-ascii?Q?coaoox1urImd5v87b75OyauBepEtnkO7gkU2bNpsE6OIwgGp4bPlY+lMafDe?= =?us-ascii?Q?RnJZcCK9/prMcjqcZwvxpOljN82AvxXLIlA3nA+dpM3qlpq09Q2sKPDoma4N?= =?us-ascii?Q?RUlcqT96tTjOIc2N2pnwqurisL3JlpUXaOk7WZKrbOMXA7kSACJHhqeY/eqx?= =?us-ascii?Q?Cvi+bSWajVlXJO9xLDoB3Mxq7jLgJJH+MIofUU+4UrkcOCqeA2mzsxpmxYPU?= =?us-ascii?Q?hfm5uFNesHPy3kdSV1KRMpjzHYx2jVftok7jI0/u5B6DXHwf0BhCBYKgpmVY?= =?us-ascii?Q?JGFgoX1V3FvWYqxEy/MkFToBtUfwmDcHznWHBNRbI86xE4Z1JsLEjeKVs1ZO?= =?us-ascii?Q?rCF2azFA015dC4J+/dYA/4m9fl1TxzHo7Aju6kLYFqFgS8d9sV5Tvc9mdscZ?= =?us-ascii?Q?icZZKAXg/UQHRIaEd2i+X+4QIHxxwIy75QWlwMLh4mXlXoyprCcPDoGLRFrD?= =?us-ascii?Q?GoRSVVmvsbVFRBJRpzOF3OD3uEKLX9ASL7rfPRZHnr4fHV9a/L58lmGYChTo?= =?us-ascii?Q?bNIWnSCLRqS6RE7F6ZwIXEmm0joXeQsvMM6mSI/Su6/91yXn1u5eQHckc8cJ?= =?us-ascii?Q?1KF97wUhnLYTLyfh9cEUJYUQvsUemJj9TtAjUEXibygz0b0NZJCYVA4SfkDH?= =?us-ascii?Q?NqepzZHqG60XjXAj2g6j523PrPRjh9ekShaeF03W8/qSUhcgLkzXgpyy0yz5?= =?us-ascii?Q?a8nekckXtRJXYk+ORgBCLYm9ehX6y3PJMB4Uj6+MjI8Y3U4aOhmFhTHhc63/?= =?us-ascii?Q?29XYJB+A/DlJbwtNm69b3BqkCYO5FCJ3waEwveDIH3EpI93tXngVmgtuxo8I?= =?us-ascii?Q?dySVT4W/1Nr3k+PE2f4e+qkPQSi8aM2i3dVtaKiETuDc8oTsmM4Ay4RPExb3?= =?us-ascii?Q?AOpns6suxX3yh/X8N0WgwamaTs/zq/OqKUnryNwi8ofuG7P3a2TyWOwvI6i+?= =?us-ascii?Q?HAi1V+UexoKitMYe8aKUeDF7dsdfj8RJooiKjdpwN+pBWgp37v5U4SB/sGNL?= =?us-ascii?Q?uHtAg6bBfzMALnS/kJAhftC63O0kbaxuRvYzsFmXQxCAkiTUj1vlJvlzIavK?= =?us-ascii?Q?Ruc+RKihzWQkgRQzzgI3+Wyoehx7WtMIXmRNOTU2sJ3P5kX75RDoW16PLpVO?= =?us-ascii?Q?8zTw69pMsqmNhihravhLVTYt68RJD9XQ7P/bPmbHs0kiw38uq4Q5XA3HcTKX?= =?us-ascii?Q?wZhvNdYEiA=3D=3D?= X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 362c6e23-58fd-4781-68ff-08de7a0f83a0 X-MS-Exchange-CrossTenant-AuthSource: SA1PR17MB5365.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 17:00:18.6337 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b5db0322-1aa0-4c0a-859c-ad0f96966f4c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BM0ZPdRnxvGDv9zQScOAQc1116kT0MCL3i9uFd77aSKN1FvvrolWlk+ILdqlNNG329Foyj0XeDB7e7RrMdpG+w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR17MB7264 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: bs-zS6jtsCOAgYesjE6BbTSGaNHh0CjTywaADDtT98s_1772643620 X-Mimecast-Originator: labware.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=WINDOWS-1252 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~public-inbox=simark.ca@sourceware.org This commit removes m_map member and its accessors from struct blockvector since it is no longer used. It also updates unit test accordingly. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D33829 --- gdb/block-selftests.c | 90 ++++++++++++------------------------------- gdb/block.c | 10 ----- gdb/block.h | 13 ------- 3 files changed, 24 insertions(+), 89 deletions(-) diff --git a/gdb/block-selftests.c b/gdb/block-selftests.c index d23783d6bdc..77b8d67ded8 100644 --- a/gdb/block-selftests.c +++ b/gdb/block-selftests.c @@ -40,35 +40,19 @@ make_block (struct blockvector &bv, struct obstack &ob,= CORE_ADDR start, return b; } =20 -/* A helper to create and set address map given a blockvector. */ static void -make_map (struct blockvector &bv, struct obstack &ob) +test_blockvector_lookup_contains () { - struct addrmap_mutable map; - - for (int i =3D bv.num_blocks () - 1; i > STATIC_BLOCK; i--) - { - auto b =3D bv.block (i); - map.set_empty (b->start (), b->end () - 1, b); - } - - bv.set_map (new (&ob) addrmap_fixed (&ob, &map)); -} - -/* Create and return blockvector with following blocks: + /* Create blockvector with following blocks: =20 =09B0 0x1000 - 0x4000 (global block) =09B1 0x1000 - 0x4000 (static block) -=09 B2 0x1000 - 0x2000 +=09 B2 0x1000 - 0x2000 =09=09=09=09(hole) -=09 B3 0x3000 - 0x4000 - - If USE_MAP is true, then also set blockvector's address map. -*/ -static blockvector_up -make_blockvector (struct obstack &ob, bool use_map) -{ - auto bv =3D std::make_unique (0); +=09 B3 0x3000 - 0x4000 + */ + auto_obstack ob; + blockvector_up bv =3D std::make_unique (0); =20 auto global_block =3D make_block (*bv.get (), ob, 0x1000, 0x4000); auto static_block =3D make_block (*bv.get (), ob, 0x1000, 0x4000, @@ -76,51 +60,25 @@ make_blockvector (struct obstack &ob, bool use_map) make_block (*bv.get (), ob, 0x1000, 0x2000, static_block); make_block (*bv.get (), ob, 0x3000, 0x4000, static_block); =20 - if (use_map) - make_map (*bv.get (), ob); + /* Test address outside global block's range. */ + SELF_CHECK (bv->lookup (0x0500) =3D=3D nullptr); + SELF_CHECK (bv->contains (0x0500) =3D=3D false); =20 - return bv; -} + /* Test address falling into a block. */ + SELF_CHECK (bv->lookup (0x1500) =3D=3D bv->block (2)); + SELF_CHECK (bv->contains (0x1500) =3D=3D true); =20 -static void -test_blockvector_lookup_contains () -{ - for (bool with_map : { false, true }) - { - /* Test blockvector without an address map. */ - auto_obstack ob; - blockvector_up bv =3D make_blockvector (ob, with_map); - - /* Test address outside global block's range. */ - SELF_CHECK (bv->lookup (0x0500) =3D=3D nullptr); - SELF_CHECK (bv->contains (0x0500) =3D=3D false); - - /* Test address falling into a block. */ - SELF_CHECK (bv->lookup (0x1500) =3D=3D bv->block (2)); - SELF_CHECK (bv->contains (0x1500) =3D=3D true); - - /* Test address falling into a "hole". If BV has an address map, -=09 lookup () returns nullptr and contains (). returns false. If not, -=09 lookup () return static block and contains() returns true. */ - if (with_map) -=09{ -=09 SELF_CHECK (bv->lookup (0x2500) =3D=3D nullptr); -=09 SELF_CHECK (bv->contains (0x2500) =3D=3D false); -=09} - else -=09{ -=09 SELF_CHECK (bv->lookup (0x2500) =3D=3D bv->block (STATIC_BLOCK)); -=09 SELF_CHECK (bv->contains (0x2500) =3D=3D true); -=09} - - /* Test address falling into a block above the "hole". */ - SELF_CHECK (bv->lookup (0x3500) =3D=3D bv->block (3)); - SELF_CHECK (bv->contains (0x3500) =3D=3D true); - - /* Test address outside global block's range. */ - SELF_CHECK (bv->lookup (0x4000) =3D=3D nullptr); - SELF_CHECK (bv->contains (0x4000) =3D=3D false); - } + /* Test address falling into a "hole". */ + SELF_CHECK (bv->lookup (0x2500) =3D=3D bv->block (STATIC_BLOCK)); + SELF_CHECK (bv->contains (0x2500) =3D=3D true); + + /* Test address falling into a block above the "hole". */ + SELF_CHECK (bv->lookup (0x3500) =3D=3D bv->block (3)); + SELF_CHECK (bv->contains (0x3500) =3D=3D true); + + /* Test address outside global block's range. */ + SELF_CHECK (bv->lookup (0x4000) =3D=3D nullptr); + SELF_CHECK (bv->contains (0x4000) =3D=3D false); } =20 } /* namespace selftests */ diff --git a/gdb/block.c b/gdb/block.c index b964674865b..cd0f60ef3cb 100644 --- a/gdb/block.c +++ b/gdb/block.c @@ -842,11 +842,6 @@ blockvector::lookup (CORE_ADDR addr) const if (addr < start || end <=3D addr) return nullptr; =20 - /* If we have an addrmap mapping code addresses to blocks, then use - that. */ - if (map () !=3D nullptr) - return (const struct block *) map ()->find (addr); - /* Otherwise, use binary search to find the last block that starts before PC. Note: GLOBAL_BLOCK is block 0, STATIC_BLOCK is block 1. @@ -925,11 +920,6 @@ void blockvector::relocate (struct objfile *objfile, =09=09 gdb::array_view offsets) { - int block_line_section =3D SECT_OFF_TEXT (objfile); - - if (m_map !=3D nullptr) - m_map->relocate (offsets[block_line_section]); - for (struct block *b : m_blocks) b->relocate (objfile, offsets); } diff --git a/gdb/block.h b/gdb/block.h index 59cabbd620d..9a7e8a591d3 100644 --- a/gdb/block.h +++ b/gdb/block.h @@ -492,14 +492,6 @@ struct blockvector const struct block *static_block () const { return this->block (STATIC_BLOCK); } =20 - /* Const version of the above. */ - const addrmap_fixed *map () const - { return m_map; } - - /* Set this blockvector's address -> block map. */ - void set_map (addrmap_fixed *map) - { m_map =3D map; } - /* Block comparison function. Returns true if B1 must be ordered before B2 in a blockvector, false otherwise. */ static bool block_less_than (const struct block *b1, const struct block = *b2); @@ -526,11 +518,6 @@ struct blockvector =09=09 gdb::array_view offsets); =20 private: - /* An address map mapping addresses to blocks in this blockvector. - This pointer is zero if the blocks' start and end addresses are - enough. */ - addrmap_fixed *m_map =3D nullptr; - /* The blocks themselves. */ std::vector m_blocks; }; --=20 2.51.0