From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by sourceware.org (Postfix) with ESMTPS id E05BC3858D1E for ; Mon, 6 May 2024 15:09:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E05BC3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=jetbrains.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=jetbrains.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E05BC3858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::431 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715008178; cv=none; b=FEFJUFPEj+lE7UpTghqiUSo/E8wIlsAsz6uq+TdmJsX+VtZCzSBe2ldKUQmRL3upBuO9vgiCU4ReugH9lgziCxdYFQ30bRyesd6nqp0IthxJRIrSWT7IPUh0hg9S5IhBWWDZTGaUXvyApRfWATTuX4OiJZrtZ37s72+bsDIAlQo= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715008178; c=relaxed/simple; bh=EmuPqqEzDftu2PYfziGmn92/0GMTNdwqhcH+bRNNiOA=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=IzawSiFPND3gd9TTemruRa5wIH9e73A4yy/ca8Go/Nto7WgtOtFARGQh1xcoO4A3M0QHD6sqN26stTTdnpi/HPlW9UGzBf7wTXu39T4WFWQarVIRm1Hm9gnu9bIns1AyUM8QRvwCdcnUmoTDFsHPgiIYptPaMAZCcpyL23bzAA0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-34dc8d3fbf1so1658936f8f.1 for ; Mon, 06 May 2024 08:09:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jetbrains.com; s=googleapps; t=1715008175; x=1715612975; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=vNvhF6i1/l6DJ3IYCtPC0kULo+x8JwWp2ZuOHwa3Zk0=; b=QU2Mt7yMffcDDyxeJBAG491BSgmR7s/axW5AcNE0hdfwbgsvdjasUi+aoR2SM4643O thg61Cd2n6+GwL70ZGR/dtSgN3j88WnQRlkv2/iL/WAPJN+EIQOEU+bHTxN5vE0EPaOE cOr4FiaykThQ/bQxb5RplyTztMQdgc3alqq4A= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715008175; x=1715612975; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vNvhF6i1/l6DJ3IYCtPC0kULo+x8JwWp2ZuOHwa3Zk0=; b=sHc7tR6aLRLeEg0gARe/ocoM3Kc9h3BfCRjDk7me9a/UtNQ3OLVLWkraBehttHqm3U q7dYdRdEv9HpUlbk2hd88f+OQijh1IP5pxmMlSeoQdAG6vYXUs5l5XYb3Uy+Bw7OBqeK L4DmfUjtCCAjgQGhrRALG3RxAriFIrjUgLxZivWMJEqhg4V9fZ/Oa+8mTDAzsGuM0Am+ D3p3dYkR7NEME8HsL/hdoJrv/8XkasM6x0IJkDb6YghNhsAExRI94f/YMiK78f/JkD1F JZmA7sZ1S4VA3/te0cLFbpg5KK1K5sGfsG/xcY8eY8/jUV4uJW/PAw1CnoNzbbupYRnO jB7w== X-Gm-Message-State: AOJu0YxN6B807DD2gkLM8m28505DIuiT+I7K0OmGrlOdVA2p1yuQHnAF 525/Ym+ldWLWowPv9BlYw+HY9uuXV7qWN04uGiCv1Ey68XXlyLpgAxxEp2WNAqx/d2hXiMzNJdo = X-Google-Smtp-Source: AGHT+IE4TEZQt38yS5E8fkHeq2kWH21kvRPER4L3rGCQOnEGTSTPOAVenOjvvpdLFkyWXdFka6t9oQ== X-Received: by 2002:a5d:6947:0:b0:34f:7b5a:4289 with SMTP id r7-20020a5d6947000000b0034f7b5a4289mr215175wrw.68.1715008174869; Mon, 06 May 2024 08:09:34 -0700 (PDT) Received: from lubuntu2.labs.intellij.net (ad96e1c12.dsl.de.colt.net. [217.110.28.18]) by smtp.gmail.com with ESMTPSA id e30-20020a5d595e000000b0034e8784473dsm7965982wri.41.2024.05.06.08.09.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 May 2024 08:09:34 -0700 (PDT) From: Dmitry Neverov To: gdb-patches@sourceware.org Cc: dmitry.neverov@jetbrains.com Subject: [PATCH v3][PR symtab/30520 1/4] gdb/symtab: check name matches before expanding a CU Date: Mon, 6 May 2024 17:09:17 +0200 Message-Id: <20240506150920.1220092-1-dmitry.neverov@jetbrains.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: From: "Dmitry.Neverov" The added check fixes the case when an unqualified lookup name without template arguments causes expansion of many CUs which contain the name with template arguments. This is similar to what dw2_expand_symtabs_matching_symbol does before expanding the CU. In the referenced issue the lookup name was wxObjectDataPtr and many CUs had names like wxObjectDataPtr. This caused their expansion and the lookup took around a minute. The added check helps to avoid the expansion and makes the symbol lookup to return in a second or so. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30520 --- gdb/dwarf2/read.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 049ee4d52ff..e2f010b7849 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -16694,9 +16694,25 @@ cooked_index_functions::expand_symtabs_matching = lookup_name_without_params.match_type (); if ((match_type == symbol_name_match_type::FULL || (lang != language_ada - && match_type == symbol_name_match_type::EXPRESSION)) - && parent != nullptr) - continue; + && match_type == symbol_name_match_type::EXPRESSION))) + { + if (parent != nullptr) + continue; + + if (entry->lang != language_unknown) + { + const language_defn *lang_def = language_def (entry->lang); + lookup_name_info last_segment_lookup_name ( + last_name.data (), symbol_name_match_type::FULL, + false, true); + symbol_name_matcher_ftype *name_matcher + = lang_def->get_symbol_name_matcher + (last_segment_lookup_name); + if (!name_matcher (entry->canonical, + last_segment_lookup_name, nullptr)) + continue; + } + } } else { -- 2.34.1