From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) by sourceware.org (Postfix) with ESMTPS id B26563858C50 for ; Wed, 8 May 2024 20:22:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B26563858C50 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 B26563858C50 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::333 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715199747; cv=none; b=BlyImlejfjxKsIL3nuJ7VKYEXiARBNbUXZr0RiNm8z5p8bifLSTT82cJCGGkeRmZKmEWkVXU9aJ/t0XL3LRk1SWAVvmX+l7R0E108pRybgw5TC9JVTGOwfGr6Qvn9sZ97WTBeVzUDlcaVuJaq5w5EE9MPn++p+9hz15Y84PAoR8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715199747; c=relaxed/simple; bh=mBPQ8VWkyVxZ/diDEVqRHku8gC+W8GWnBx2jNW3dLUI=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=HTP65spTNgrHoD+fPYyc4z4Wltv7E112J8bUXYMcZ5P+Ruv+1fwSjvP8HtkclOmP3/183nntAl5bfIqQgrDBGnxKwA3C7rVIyGJK0ryQMcywswWp+Wr8cJ4LoEtMiXTzfpjV91HkMHoP/oG8ArTsnR8PSxvmk/yEoO5CTEu6bHc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-41ba0bb5837so1201535e9.3 for ; Wed, 08 May 2024 13:22:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jetbrains.com; s=googleapps; t=1715199744; x=1715804544; 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=KlXUWvd+HV22zcGhRpolWgX9/uoBnfb09XxjUxsl2VA=; b=Q7n+Q92Qc7H2uYjPm0w9U/Vs0UO82FjSe0cLIwsStq0S4uWX1/lq2/7DsH260/FFZk UFyEzbdsjhIafBfu9zhAdS9m4m+2av1Ch/6iz8AxG6UM3k6LCNC9wGkvahOTlG93rivt vcyjaTCqkfk2daO84THDvd35U2occcKeCdy9E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715199744; x=1715804544; 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=KlXUWvd+HV22zcGhRpolWgX9/uoBnfb09XxjUxsl2VA=; b=kcdJFOiy0468FpD2BCJt4ewt3AkIvUeahbPwq3BtFtXApvrwQ+74c/URJ3E6RrrS5Q zO8cVXxJ9Qwug+FENEZbGbJ/5RgLpCPvRx/6IY1W1UTTTgzsNC06eFLeXW8EjqGXRv12 qwOCNnaQ002xp0Emmx4xL1oX39sv8jdgRGqjKyyF9HEK4IrqodxChDvmk7wC0t2Crc57 hE00b/UoAADwT2yCbbecPafRO+3SkyLra0kZzPU09/KePXB3cxpwJeCkAyWuBaUWjCNT I/Yfg2mAxobyIl1CTIqHma1YO+fZC659ivly7oA1KVdh51tXFW3lKmZRuhrv0nPDhrs/ 4lEQ== X-Gm-Message-State: AOJu0YzPIs1EmnPI62yTqahUVQ6agRVyMg38t91M85N2CSbNZs2/IVNi 8MD0fnQ1jSgiYYg2dzqRPxNiwptmC4f7X/338g8qiPQpvIJexz2RFqtxBXbvxrh5kVaeBjJII8U = X-Google-Smtp-Source: AGHT+IEZWtMnQHjArib7xUOtV9rS7hHGFBib+i719PDafM6d1sNEnxaSwdBoI10mzGRtPXtqRjF0JA== X-Received: by 2002:a05:600c:1d89:b0:41c:3e1:9dbd with SMTP id 5b1f17b1804b1-41f71ad0bcdmr22022485e9.40.1715199744195; Wed, 08 May 2024 13:22:24 -0700 (PDT) Received: from lubuntu2.labs.intellij.net (ad96e1c12.dsl.de.colt.net. [217.110.28.18]) by smtp.gmail.com with ESMTPSA id bi18-20020a05600c3d9200b0041bff91ea43sm3398186wmb.37.2024.05.08.13.22.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 May 2024 13:22:23 -0700 (PDT) From: Dmitry Neverov To: gdb-patches@sourceware.org Cc: dmitry.neverov@jetbrains.com Subject: [PATCH v3][PR symtab/30520 v2 1/4] gdb/symtab: check name matches before expanding a CU Date: Wed, 8 May 2024 22:22:16 +0200 Message-Id: <20240508202219.3584915-1-dmitry.neverov@jetbrains.com> X-Mailer: git-send-email 2.40.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..16b9fd34522 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.40.1