From: Tom Tromey Date: Sun, 1 Jan 2023 19:14:21 +0000 (-0700) Subject: Remove two quick_symbol_functions methods X-Git-Tag: binutils-2_42~185 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=245703b3ce7522ddbf9290267129878ad8c6c725;p=thirdparty%2Fbinutils-gdb.git Remove two quick_symbol_functions methods 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. --- 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 a7b5a71485e..621342d22b7 100644 --- a/gdb/objfiles.h +++ b/gdb/objfiles.h @@ -616,9 +616,6 @@ public: 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 { @@ -703,17 +700,6 @@ public: 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 ca1bcf18c4d..33959073003 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 56714ba4d6b..4cd234162ae 100644 --- a/gdb/quick-symbol.h +++ b/gdb/quick-symbol.h @@ -193,20 +193,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 7b73b42b70d..32c3ed9d349 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, @@ -410,7 +406,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)) @@ -435,7 +431,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); @@ -463,7 +459,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); } @@ -475,7 +471,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); } @@ -489,7 +485,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) @@ -514,7 +510,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); @@ -525,35 +521,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 2bfe36ee6ef..d218dfe7c6d 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. */ @@ -2622,8 +2620,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