Remove two quick_symbol_functions methods
authorTom Tromey <tom@tromey.com>
Sun, 1 Jan 2023 19:14:21 +0000 (12:14 -0700)
committerTom Tromey <tom@tromey.com>
Tue, 9 Jan 2024 01:40:21 +0000 (18:40 -0700)
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
gdb/objfiles.h
gdb/psymtab.c
gdb/quick-symbol.h
gdb/symfile-debug.c
gdb/symfile.c

index 9dee2ee..74aea1a 100644 (file)
@@ -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,
index a7b5a71..621342d 100644 (file)
@@ -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<quick_symbol_functions_up> &
-  qf_require_partial_symbols ()
-  {
-    this->require_partial_symbols (true);
-    return qf;
-  }
-
 public:
 
   /* The object file's original name as specified by the user,
index ca1bcf1..3395907 100644 (file)
@@ -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 ();
 }
 
index 56714ba..4cd2341 100644 (file)
@@ -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> quick_symbol_functions_up;
index 7b73b42..32c3ed9 100644 (file)
@@ -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<symbol_filename_ftype> 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
index 2bfe36e..d218dfe 100644 (file)
@@ -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