From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id YTk9Gsy4JGkgLCoAWB0awg (envelope-from ) for ; Mon, 24 Nov 2025 14:58:04 -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=fwd1o5bH; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 66CB61E0B6; Mon, 24 Nov 2025 14:58:04 -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 server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (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 5F9C21E048 for ; Mon, 24 Nov 2025 14:58:03 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D78B83858401 for ; Mon, 24 Nov 2025 19:58:01 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D78B83858401 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=fwd1o5bH 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 D4D383858406 for ; Mon, 24 Nov 2025 19:55:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D4D383858406 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 D4D383858406 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=1764014158; cv=none; b=ERRlawBsF7jDumGRykjFRN5tI+Zq7072jVUXLRpueWCs3BQndrnGuWLx7k1ixpt9qux+4iGwF2YyzBD24lw3Zpccr8yQNYARTuCgOo7+VbOnxQEtLl3tt64kI1c6AGmkKCl0+Ilnn+wNXFs21Gslamq5c7LJ5EZ40ylBw+FE1SI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1764014158; c=relaxed/simple; bh=JV5Y1qqVOeD8rth+16iCmuT+gOUTfAsJ7x9R6Z7jwbU=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=mFnteAZpKoB1jviB2sgaIfunJGY4O4lIxVkIgtumO/vL6eeWtqhSBskKZZvPVXCIQ1aY09bxn7bclTefcSIQ/9pHKZgjBqZ/KFBCPkwKeZcTMavDHz3jVa9of2eHDTUi/F9ct1M/apK65BrrWCXtclQgS0rwbiyWo9sOYAxPRKw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D4D383858406 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=labware.com; s=mimecast20220511; t=1764014158; 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=Oo5rkqiiXIKQi1/3UCTnk06ATqaJsl/dB7o02bYtw3k=; b=fwd1o5bHlwKZ2nTn4p2bjD6cAGqlb7Bz0HxaT4zJq29+Y2yyw+gzetqiT1d+JmPYfaAR42 SND84TUDtp94VEOMKuGdV3+/qE7sc0mYoobVOD3KgVS6lcSDJatOY4YfuRoOEHkNQ0k29L 8fEktmACQ8ZN0G/4Y6Z31B8Nf0UEuSw= Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11022124.outbound.protection.outlook.com [40.93.195.124]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-79-svZiQby6N26Y-SqdI5P0CA-1; Mon, 24 Nov 2025 14:55:57 -0500 X-MC-Unique: svZiQby6N26Y-SqdI5P0CA-1 X-Mimecast-MFC-AGG-ID: svZiQby6N26Y-SqdI5P0CA_1764014156 Received: from SA1PR17MB5365.namprd17.prod.outlook.com (2603:10b6:806:1d8::11) by SA1PR17MB4769.namprd17.prod.outlook.com (2603:10b6:806:19c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Mon, 24 Nov 2025 19:55:55 +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.9366.009; Mon, 24 Nov 2025 19:55:54 +0000 From: Jan Vrany To: gdb-patches@sourceware.org CC: Jan Vrany Subject: [PATCH v2 01/13] gdb: reimplement readnow_functions::search Date: Mon, 24 Nov 2025 19:55:23 +0000 Message-ID: <20251124195535.2116845-2-jan.vrany@labware.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251124195535.2116845-1-jan.vrany@labware.com> References: <20251124195535.2116845-1-jan.vrany@labware.com> X-ClientProxiedBy: LO4P265CA0156.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2c7::18) To SA1PR17MB5365.namprd17.prod.outlook.com (2603:10b6:806:1d8::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA1PR17MB5365:EE_|SA1PR17MB4769:EE_ X-MS-Office365-Filtering-Correlation-Id: c1130b0f-5d6b-4f27-d073-08de2b9379f4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024 X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6z/ff4y6nybRjmacvXUlz6bTYlBiu1wt6C8XqLJGdjz6m/5pYjOdgJ1XRULm?= =?us-ascii?Q?tHNrLLQfvwbUt/TNnK99aFpRARS5Be+xkZ3gGy+TEn1YZ2SIkuLXrhRdiPE8?= =?us-ascii?Q?ImgB75Kqv7F1USIKxafJxu1SJM6dhGk3qBedhYTt5nBMReXYMRWSbr0umbKA?= =?us-ascii?Q?SoDlDWqzlKC899F3Tqa2gehAdoOvta32tDXe5Y0+nE5vrobTUTJlATIWlnXp?= =?us-ascii?Q?X/AaqIOE8RV0gcqViHk76/FfsyXhfBkN1Ad4deJIBMmYE9Ns3+5g6zEh0M8D?= =?us-ascii?Q?8sgJsaAIpFjKXKUcRoiEuEopZCnI0Nm76yE4CZnm/zwcCbkod1n0zwHoOHx7?= =?us-ascii?Q?4Tu58u4pqosC6O2UyJZPMrZDA8L6cG6Y0I14JQAMQuvmt4CAWie08FE3Xy9b?= =?us-ascii?Q?bEXp6+jhnBBStkfitTC7e8KAGoNoxURWKD7+TU+Hq4vAOkm0z6hPHK2nNLei?= =?us-ascii?Q?TyULLRNvUelmHXb68+pkqmz+cRbSfdyhgjnhV1tHcUg1/WmLvdnzcFAbZn2S?= =?us-ascii?Q?bD6dYaBNmpLZefGbmLmf8TE6p9ga8XoMADynFMcF2Vv1yW2j/TjoHzVkwYEa?= =?us-ascii?Q?6mco4tDmjCY6ZqjBK4dTfjZLDNmv0+EoG35u6YgE8+yovGn+3cDc9gl5zMzk?= =?us-ascii?Q?gWMeK5zD5HaFSTTWewvaW+iCW0F7xNmmdvcaOzhGUvpmPBuYu3I1Gj4aV1Cv?= =?us-ascii?Q?yd63XIb5kyDXJj780EsWtMzvOnkX/kkE2zJe5ghO5TE0uGflqav4TLZmIH/d?= =?us-ascii?Q?0LEKI0mKoAUSl7Jh8YeFY4YFHj7rFNYPl+c5IgG85scNyR9Ssups4UVCJEti?= =?us-ascii?Q?3CJE6tSxnzUiN2W/02zHf92wdq0CbAdEMRd/JbFSbh7iH6aPUIuaWJLMSeJU?= =?us-ascii?Q?N+F6UaH2fDVATDGjEjhs2Q4LZzxAJdZJqZ4r4GL2C1jRBl2aWNmTdfN1Rj4h?= =?us-ascii?Q?Sevs3yiiUCaPW/X9AmwjJ/1NqWxdqVC+oubP0H5nvPRIHGBLR7/SqWMznJZ9?= =?us-ascii?Q?xHPaJajjBkFBpu/sz9OF+inMM06KwQP5oZFOAUiZ4SqcHoy+MbnwTOzRduIl?= =?us-ascii?Q?fbdxccRNsAphIBNzXgmWrz35suZXXBfExIOrYAQ0hxb00lDaUx9cT4yjofpU?= =?us-ascii?Q?jgEzNEuxVEd1HF0AIy2JI9m3uMzVRgE7RWmiFrnha69J/iDDcxTgOaYjNd+W?= =?us-ascii?Q?6FKqv3VOnArtm5YX1ruQ0Rm6y2bDWEbFhx2FjzmdlrZm200JTzJN9pY47kkM?= =?us-ascii?Q?dBFkJX6XNL0MGCXAMsWHMqg8UrKqKFznFjgVlTCbYI0737jm8ZwYy37FbZdR?= =?us-ascii?Q?TUpOVuMoc03XYoV0B3uZcRAPrqtmHhn/83hOWz6hKgvx+HLPqT2robDZJJax?= =?us-ascii?Q?ReWsMoAJ4usyufimCrh0sKA6nFUnKUY5V0D9T4pzQ3QUTxWXP0f0kIs2GEQZ?= =?us-ascii?Q?6T8zfKnLxAG3sQpHJgs2S5V67tX9/yK5?= 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)(366016)(376014)(1800799024); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RcfdBRlDfAkcNIiAHC950q+n0KWc6Arbh4szVqTwZpb1MHfciEMplNtsJouO?= =?us-ascii?Q?cPVJXxl2fRD9Qx8+uWna1vW88tmgUUwYoj16Xzw42tAKXY2xHUijsnP5Gcli?= =?us-ascii?Q?KbouMnlopZKduBHY1ExHaxo7SAzt5tzavGxiazh04y6SlogXkcc9v9aY4LMm?= =?us-ascii?Q?s7Cyu1c1th7Tc9mDPEDNk9drcl3aS6M3+7IMQ1N/QujslycG0Cr4dMV5nav9?= =?us-ascii?Q?FRWymxMExSTYNzxA/8XSFG0W8yfALsDxBuHrAuC3J0zNSJR0UTg5TWTSNKmD?= =?us-ascii?Q?XKILeucZsLXCWOOqPUECdoZVIyxRGhqhk7LiHgV8ea8dpil4WpHvFym+6gJh?= =?us-ascii?Q?52+iwayFKwv/r0nTGu6z3AbVesgqN0jxzb2hlSvab1Mv571+3AMdOqVnIOaa?= =?us-ascii?Q?57p+dTCQMd/HYCvBe6+F429/tCCsHLav6Pxp4tp8ANo40wygvUrOMoLQ2Hbl?= =?us-ascii?Q?ClOO/wxBFyUnoXM5GagvPZEN/CTMFdTwhAZR77HvRPfz/+IBem7XEkSfR6RH?= =?us-ascii?Q?wT744fOFvngYnAcrA5ViFKvgRdO5ZuGsuow/sHFpcnas1H/3E8EIkmx6FK3M?= =?us-ascii?Q?JKnFtIoUxTobCPUhL18n1ts0TLJ99yv5Q5eoJcNbL+Kau8kakNgeWtCHEIKE?= =?us-ascii?Q?CTn5fyVkLymIkpRaClR5dSyCILYGxCHPf7QK1dtNZSwFwo3lIaEX/bW5YMx/?= =?us-ascii?Q?JFIfg2ue5mFeTT1r7yOlosX88IvDF7p2g+XXZYTS3S6YQTzGttvOHLolVeeW?= =?us-ascii?Q?5Yyb9VgRn9RD3YeEgsEDVF8lCvbQaC56Px2SCorbCa/q6XHZXCL6KsJYOHWv?= =?us-ascii?Q?bxhYRm5epi9E9Noq2CSD7ezPKk9JJG+3PZjeycaAYHJ4W1s5xhTlFeCcEjtk?= =?us-ascii?Q?6gdCI6bdmpxEVx+0P43grRwb3vEa64zvMqsG4RztJ7luOhN0PsCdhUEng150?= =?us-ascii?Q?CSfbzkE83+7NL1ng9BmL4BqLEupuZe3iUlw0384nYF6h8ZCM8tph03pl8TNy?= =?us-ascii?Q?w/9th+IvLwWk1g6e9lV+qe5NtQ+f8x2zvcXwWOLvmIIDUau0hCviwQDwQmlU?= =?us-ascii?Q?TW9+XeakqFLXvwRcwd657eeS6WdM+oMp5KovedagM6lv663II6RKJsubSBSg?= =?us-ascii?Q?AgGfShWrzVPid9HORsduKPwfcvrJvN1F8SuzIbO72WEj8N+yctTdI0Jtrg4B?= =?us-ascii?Q?XjT+clQ8XsgodGnOE6Hj6VMO/8QNlBEQNjf/IzBG//PVeSG989gctXEX5kP+?= =?us-ascii?Q?VRxDBElh02wRkNmOKXPu7muK6iyAwirmQkSG3PV7my1qVVJcxwtBAnNrzA2H?= =?us-ascii?Q?cRiTtAsNCNz3609+ie4WykY0swPEP4SKCNJmNwNoUsdMX0OX8UXsSAGF0qIa?= =?us-ascii?Q?ANYSlAVqkxXX3qsVUZkZFtWwLEPzjeVHJXEKo4VREli0i5gYnvw94RW5gWDm?= =?us-ascii?Q?Uti19zqP4PqE4vGFsLykLMX18BgcZRLtsUkf3wXc6JcwVdTxO695/gz/j9k8?= =?us-ascii?Q?FjmA0LkCJICnqPQXUDJzHgkTMci62jLf7svjimZNTW9pApbVKT5AQEKUAhtZ?= =?us-ascii?Q?MD9Cwhf6/WZ35cPy060lr0l3eGICES5Sv4baQOAw?= X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1130b0f-5d6b-4f27-d073-08de2b9379f4 X-MS-Exchange-CrossTenant-AuthSource: SA1PR17MB5365.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 19:55:54.0618 (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: Uesbo3qNA04rlUSMKINAU0DhNeaAjYw7rye54gw2NL8Ypln0+RgSRRsuhPLpgIDkWOHadhH1iT64nnL/KkNhow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR17MB4769 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: nYIP1xbW2yu4wrSFW24tAm-_b8ihx-n06zouYk_ReoQ_1764014156 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 reimplements readnow_functions::search without using DWARF data structures. This will allow readnow_functions to be used in other cases, for example in JIT reader. I was bit surprised to realize that original code did not use lookup_name to match symbols at all, and this calling listener with more CUs than needed. I did try to use it as described in the comment but run into issues (test failures) when completing symbols so I decided not to. With this change, running all tests with -readnow shown no regressions (on my Debian, x86_64 machine). Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D33554 --- gdb/dwarf2/read.c | 49 +++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index b34c3463774..561e2dc2add 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -1546,26 +1546,41 @@ struct readnow_functions : public dwarf2_base_index= _functions =09 domain_search_flags domain, =09 search_symtabs_lang_matcher lang_matcher) override { - dwarf2_per_objfile *per_objfile =3D get_dwarf2_per_objfile (objfile); - auto_bool_vector cus_to_skip; - dw_search_file_matcher (per_objfile, cus_to_skip, file_matcher); + /* This invariant is documented in quick-functions.h. */ + gdb_assert (lookup_name !=3D nullptr || symbol_matcher =3D=3D nullptr)= ; =20 - for (const auto &per_cu : per_objfile->per_bfd->all_units) + for (compunit_symtab &cu : objfile->compunits ()) { -=09QUIT; - -=09/* Skip various types of unit that should not be searched -=09 directly: partial units and dummy units. */ -=09if (/* Note that we request the non-strict unit type here. If -=09 there was an error while reading, like in -=09 dw-form-strx-out-of-bounds.exp, then the unit type may -=09 not be set. */ -=09 per_cu->unit_type (false) =3D=3D DW_UT_partial -=09 || per_cu->unit_type (false) =3D=3D 0 -=09 || per_objfile->get_symtab (per_cu.get ()) =3D=3D nullptr) +=09if (lang_matcher !=3D nullptr && !lang_matcher (cu.language ())) =09 continue; -=09if (!dw2_search_one (per_cu.get (), per_objfile, cus_to_skip, -=09=09=09 file_matcher, listener, lang_matcher)) + +=09if (file_matcher !=3D nullptr) +=09 { +=09 bool matched =3D false; +=09 for (auto st : cu.filetabs ()) +=09 { +=09=09if (file_matcher (st->filename (), false)) +=09=09 { +=09=09 matched =3D true; +=09=09 break; +=09=09 } +=09=09if ((basenames_may_differ +=09=09 || file_matcher (lbasename (st->filename ()), true)) +=09=09 && file_matcher (symtab_to_fullname (st), false)) +=09=09 { +=09=09 matched =3D true; +=09=09 break; +=09=09 } +=09 } +=09 if (!matched) +=09 continue; +=09 } + +=09/* Here we simply call the listener (if any) without bothering to +=09 consult lookup_name and symbol_matcher (if any). This should be +=09 okay since i) all symtabs are already expanded and ii) listeners +=09 iterate over matching symbols themselves. */ +=09if (listener !=3D nullptr && !listener (&cu)) =09 return false; } return true; --=20 2.51.0