From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from omta40.uswest2.a.cloudfilter.net (omta40.uswest2.a.cloudfilter.net [35.89.44.39]) by sourceware.org (Postfix) with ESMTPS id 06CD03845BD9 for ; Thu, 23 Nov 2023 05:32:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 06CD03845BD9 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 06CD03845BD9 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.39 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700717533; cv=none; b=fk9E9D6hneXbOwAi3Nx1Z5VUKz3Z3Qna9TescUrTdtKIa4ECt+KPriuJAt4gbd+B5Hji/bt3pLuiTVDLscO6YTakx3bsNymMS7dR0odbHPnoViLotAM/tPCrYM7resNzpSVCDAcHckoS7761ZA86LbWKzAkiUhup5l3v59srLvY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700717533; c=relaxed/simple; bh=l1JAXyoKlVZ+X+JXK2FpSeXfFabNPtx6+KDNycggbcU=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=GG6LIPsQ08Zo/e+eHbRQ8nsNsVGEPeiwUGU+yzMRRbnASXYB0rOcOJgNmsNwd85seNlMlKbuq0YUxb0snaamITN0WImuXq0yQttsWPBuaPNuwkkElkujdKKNvDJRz6iO7t4arK/1dbhEwGNpCc3uTbKxQO/QNvpxdFJbQltaRIc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6008a.ext.cloudfilter.net ([10.0.30.227]) by cmsmtp with ESMTPS id 61KqrkdoCL9Ag62Jpr2DyO; Thu, 23 Nov 2023 05:32:05 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id 62Jor5NkJ0xkr62Joro3AQ; Thu, 23 Nov 2023 05:32:04 +0000 X-Authority-Analysis: v=2.4 cv=N7U6qkxB c=1 sm=1 tr=0 ts=655ee3d4 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=BNY50KLci1gA:10 a=Qbun_eYptAEA:10 a=eoFT3E_SFiD_dCFiW3gA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=6OtfBRx3lbuQRvNyHFDxdK16hUPViZWQQa9a+r+ayNA=; b=vMLR0JkD4rSVHkyuY2HGhgKyFc Dc3nyWffqmoG6KTDCJdkoTRLC3/SpJg1wDca6cLDK8QVXgsNUtGQuBLghSxRKZkd9//y6DvKbTJPi dQ8CCyjm96vwl7XqHi6L0ja8x; Received: from 97-122-77-73.hlrn.qwest.net ([97.122.77.73]:46354 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 1r62Jo-003TGR-0E for gdb-patches@sourceware.org; Wed, 22 Nov 2023 22:32:04 -0700 From: Tom Tromey Date: Wed, 22 Nov 2023 22:32:22 -0700 Subject: [PATCH v3 13/18] Remove two quick_symbol_functions methods MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20231122-t-bg-dwarf-reading-v3-13-fc3180de63c4@tromey.com> References: <20231122-t-bg-dwarf-reading-v3-0-fc3180de63c4@tromey.com> In-Reply-To: <20231122-t-bg-dwarf-reading-v3-0-fc3180de63c4@tromey.com> 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: 1r62Jo-003TGR-0E 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]:46354 X-Source-Auth: tom+tromey.com X-Email-Count: 15 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfEASfwhj+AmtrgaetdU2ZbW6FSNyorA+95GpPUTAD2oNvSeARoHRJZ9V+JaZzvXm9HAorCem7zrcuEwQ0380YhH4HNRnBmtzt27suLu198ufsHh+4QDX hnDYUr8895UMBVtZe9Q6UXHUJHpbtnO5314rChDVeEjhuj1+6IVEexDMWg1k9FhwwpOcewNliq83RyJk58itt0rBtlwgQCTGxyU= X-Spam-Status: No, score=-3024.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,JMQ_SPF_NEUTRAL,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: quick_symbol_functions::read_partial_symbols is no longer implemented, so both it and quick_symbol_functions::can_lazily_read_symbols can be removed. This allows for other functions to be removed as well. Note that SYMFILE_NO_READ is now pretty much dead. I haven't removed it here -- but could if that's desirable. I tend to think that this functionality would be better implemented in the core; but whenever I dive into the non-DWARF readers it is pretty depressing. --- gdb/objfile-flags.h | 4 ---- gdb/objfiles.h | 14 ----------- gdb/psymtab.c | 1 - gdb/quick-symbol.h | 14 ----------- gdb/symfile-debug.c | 67 ++++++++++++++--------------------------------------- gdb/symfile.c | 4 ---- 6 files changed, 17 insertions(+), 87 deletions(-) diff --git a/gdb/objfile-flags.h b/gdb/objfile-flags.h index 9dee2ee51a0..74aea1a88d3 100644 --- a/gdb/objfile-flags.h +++ b/gdb/objfile-flags.h @@ -44,10 +44,6 @@ enum objfile_flag : unsigned add-symbol-file command. */ OBJF_USERLOADED = 1 << 2, /* User loaded */ - /* Set if we have tried to read partial symtabs for this objfile. - This is used to allow lazy reading of partial symtabs. */ - OBJF_PSYMTABS_READ = 1 << 3, - /* Set if this is the main symbol file (as opposed to symbol file for dynamically loaded code). */ OBJF_MAINLINE = 1 << 4, diff --git a/gdb/objfiles.h b/gdb/objfiles.h index 63f5db82cfa..06bcb092b48 100644 --- a/gdb/objfiles.h +++ b/gdb/objfiles.h @@ -622,9 +622,6 @@ struct objfile domain_enum domain, bool *symbol_found_p); - /* See quick_symbol_functions. */ - void require_partial_symbols (bool verbose); - /* Return the relocation offset applied to SECTION. */ CORE_ADDR section_offset (bfd_section *section) const { @@ -709,17 +706,6 @@ struct objfile section_iterator (sections_end, sections_end))); } -private: - - /* Ensure that partial symbols have been read and return the "quick" (aka - partial) symbol functions for this symbol reader. */ - const std::forward_list & - qf_require_partial_symbols () - { - this->require_partial_symbols (true); - return qf; - } - public: /* The object file's original name as specified by the user, diff --git a/gdb/psymtab.c b/gdb/psymtab.c index d4cd5810c20..ef5c0606fec 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -81,7 +81,6 @@ psymtab_storage::install_psymtab (partial_symtab *pst) psymtab_storage::partial_symtab_range psymbol_functions::partial_symbols (struct objfile *objfile) { - gdb_assert ((objfile->flags & OBJF_PSYMTABS_READ) != 0); return m_partial_symtabs->range (); } diff --git a/gdb/quick-symbol.h b/gdb/quick-symbol.h index 49505aef64a..f03e4cc1c1a 100644 --- a/gdb/quick-symbol.h +++ b/gdb/quick-symbol.h @@ -220,20 +220,6 @@ struct quick_symbol_functions virtual void compute_main_name (struct objfile *objfile) { } - - /* Return true if this class can lazily read the symbols. This may - only return true if there are in fact symbols to be read, because - this is used in the implementation of 'has_partial_symbols'. */ - virtual bool can_lazily_read_symbols () - { - return false; - } - - /* Read the partial symbols for OBJFILE. This will only ever be - called if can_lazily_read_symbols returns true. */ - virtual void read_partial_symbols (struct objfile *objfile) - { - } }; typedef std::unique_ptr quick_symbol_functions_up; diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c index ea9d0c47ba5..60f12e3be66 100644 --- a/gdb/symfile-debug.c +++ b/gdb/symfile-debug.c @@ -87,11 +87,7 @@ objfile::has_partial_symbols () not be present in this objfile. */ for (const auto &iter : qf) { - if ((flags & OBJF_PSYMTABS_READ) == 0 - && iter->can_lazily_read_symbols ()) - retval = true; - else - retval = iter->has_symbols (this); + retval = iter->has_symbols (this); if (retval) break; } @@ -112,7 +108,7 @@ objfile::has_unexpanded_symtabs () objfile_debug_name (this)); bool result = false; - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) { if (iter->has_unexpanded_symtabs (this)) { @@ -137,7 +133,7 @@ objfile::find_last_source_symtab () gdb_printf (gdb_stdlog, "qf->find_last_source_symtab (%s)\n", objfile_debug_name (this)); - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) { retval = iter->find_last_source_symtab (this); if (retval != nullptr) @@ -170,7 +166,7 @@ objfile::forget_cached_source_info () } } - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) iter->forget_cached_source_info (this); } @@ -217,7 +213,7 @@ objfile::map_symtabs_matching_filename return result; }; - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) { if (!iter->expand_symtabs_matching (this, match_one_filename, @@ -282,7 +278,7 @@ objfile::lookup_symbol (block_enum kind, const char *name, domain_enum domain) return true; }; - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) { if (!iter->expand_symtabs_matching (this, nullptr, @@ -313,7 +309,7 @@ objfile::print_stats (bool print_bcache) gdb_printf (gdb_stdlog, "qf->print_stats (%s, %d)\n", objfile_debug_name (this), print_bcache); - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) iter->print_stats (this, print_bcache); } @@ -339,7 +335,7 @@ objfile::expand_symtabs_for_function (const char *func_name) lookup_name_info base_lookup (func_name, symbol_name_match_type::FULL); lookup_name_info lookup_name = base_lookup.make_ignore_params (); - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) iter->expand_symtabs_matching (this, nullptr, &lookup_name, @@ -358,7 +354,7 @@ objfile::expand_all_symtabs () gdb_printf (gdb_stdlog, "qf->expand_all_symtabs (%s)\n", objfile_debug_name (this)); - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) iter->expand_all_symtabs (this); } @@ -376,7 +372,7 @@ objfile::expand_symtabs_with_fullname (const char *fullname) return filename_cmp (basenames ? basename : fullname, filename) == 0; }; - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) iter->expand_symtabs_matching (this, file_matcher, nullptr, @@ -401,7 +397,7 @@ objfile::expand_matching_symbols domain_name (domain), global, host_address_to_string (ordered_compare)); - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) iter->expand_matching_symbols (this, name, domain, global, ordered_compare); } @@ -428,7 +424,7 @@ objfile::expand_symtabs_matching host_address_to_string (&expansion_notify), search_domain_name (kind)); - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) if (!iter->expand_symtabs_matching (this, file_matcher, lookup_name, symbol_matcher, expansion_notify, search_flags, domain, kind)) @@ -453,7 +449,7 @@ objfile::find_pc_sect_compunit_symtab (struct bound_minimal_symbol msymbol, host_address_to_string (section), warn_if_readin); - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) { retval = iter->find_pc_sect_compunit_symtab (this, msymbol, pc, section, warn_if_readin); @@ -481,7 +477,7 @@ objfile::map_symbol_filenames (gdb::function_view fun, objfile_debug_name (this), need_fullname); - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) iter->map_symbol_filenames (this, fun, need_fullname); } @@ -493,7 +489,7 @@ objfile::compute_main_name () "qf->compute_main_name (%s)\n", objfile_debug_name (this)); - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) iter->compute_main_name (this); } @@ -507,7 +503,7 @@ objfile::find_compunit_symtab_by_address (CORE_ADDR address) hex_string (address)); struct compunit_symtab *result = NULL; - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) { result = iter->find_compunit_symtab_by_address (this, address); if (result != nullptr) @@ -532,7 +528,7 @@ objfile::lookup_global_symbol_language (const char *name, enum language result = language_unknown; *symbol_found_p = false; - for (const auto &iter : qf_require_partial_symbols ()) + for (const auto &iter : qf) { result = iter->lookup_global_symbol_language (this, name, domain, symbol_found_p); @@ -543,35 +539,6 @@ objfile::lookup_global_symbol_language (const char *name, return result; } -void -objfile::require_partial_symbols (bool verbose) -{ - if ((flags & OBJF_PSYMTABS_READ) == 0) - { - flags |= OBJF_PSYMTABS_READ; - - bool printed = false; - for (const auto &iter : qf) - { - if (iter->can_lazily_read_symbols ()) - { - if (verbose && !printed) - { - gdb_printf (_("Reading symbols from %ps...\n"), - styled_string (file_name_style.style (), - objfile_name (this))); - printed = true; - } - iter->read_partial_symbols (this); - } - } - if (printed && !objfile_has_symbols (this)) - gdb_printf (_("(No debugging symbols found in %ps)\n"), - styled_string (file_name_style.style (), - objfile_name (this))); - } -} - /* Call LOOKUP_FUNC to find the filename of a file containing the separate debug information matching OBJFILE. If LOOKUP_FUNC does return a filename then open this file and return a std::pair containing the diff --git a/gdb/symfile.c b/gdb/symfile.c index c5af186ad33..7cbd993be8f 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -790,8 +790,6 @@ read_symbols (struct objfile *objfile, symfile_add_flags add_flags) add_flags | SYMFILE_NOT_FILENAME, objfile); } } - if ((add_flags & SYMFILE_NO_READ) == 0) - objfile->require_partial_symbols (false); } /* Initialize entry point information for this objfile. */ @@ -2620,8 +2618,6 @@ reread_symbols (int from_tty) (*objfile->sf->sym_init) (objfile); clear_complaints (); - objfile->flags &= ~OBJF_PSYMTABS_READ; - /* We are about to read new symbols and potentially also DWARF information. Some targets may want to pass addresses read from DWARF DIE's through an adjustment function before -- 2.41.0