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.
This commit is contained in:
Tom Tromey 2023-01-01 12:14:21 -07:00
parent aecbdf5f34
commit 245703b3ce
6 changed files with 16 additions and 86 deletions

View 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,

View 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,

View 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 ();
}

View 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;

View 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

View 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