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:
parent
aecbdf5f34
commit
245703b3ce
6 changed files with 16 additions and 86 deletions
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 ();
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue