aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2022-10-20 13:54:56 -0600
committerTom Tromey <tom@tromey.com>2022-12-19 08:05:14 -0700
commit6829683679ce66f3ff3aa184609afa59ac349637 (patch)
tree670d4555fc44771aaf950e0f5919343c29cebb71 /gdb
parent975249ff4e260453217f4a98b1033b0c7a6e6dc5 (diff)
downloadgdb-6829683679ce66f3ff3aa184609afa59ac349637.zip
gdb-6829683679ce66f3ff3aa184609afa59ac349637.tar.gz
gdb-6829683679ce66f3ff3aa184609afa59ac349637.tar.bz2
Remove quick_symbol_functions::relocated
quick_symbol_functions::relocated is only needed for psymtabs, and there it is only needed for Rust. However, because we've switched the DWARF reader away from psymtabs, this means there's no longer a need for this method at all.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/objfiles.c4
-rw-r--r--gdb/psympriv.h15
-rw-r--r--gdb/psymtab.c69
-rw-r--r--gdb/quick-symbol.h7
4 files changed, 4 insertions, 91 deletions
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 09aba0f..ffdb36a 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -667,10 +667,6 @@ objfile_relocate1 (struct objfile *objfile,
}
}
- /* Notify the quick symbol object. */
- for (const auto &iter : objfile->qf)
- iter->relocated ();
-
/* Relocate isolated symbols. */
{
struct symbol *iter;
diff --git a/gdb/psympriv.h b/gdb/psympriv.h
index 61fb5c0..8dc79e9 100644
--- a/gdb/psympriv.h
+++ b/gdb/psympriv.h
@@ -536,17 +536,15 @@ struct psymbol_functions : public quick_symbol_functions
CORE_ADDR pc, struct obj_section *section, int warn_if_readin) override;
struct compunit_symtab *find_compunit_symtab_by_address
- (struct objfile *objfile, CORE_ADDR address) override;
+ (struct objfile *objfile, CORE_ADDR address) override
+ {
+ return nullptr;
+ }
void map_symbol_filenames (struct objfile *objfile,
gdb::function_view<symbol_filename_ftype> fun,
bool need_fullname) override;
- void relocated () override
- {
- m_psymbol_map.clear ();
- }
-
/* Return a range adapter for the psymtabs. */
psymtab_storage::partial_symtab_range partial_symbols
(struct objfile *objfile);
@@ -588,11 +586,6 @@ private:
/* Storage for the partial symbols. */
std::shared_ptr<psymtab_storage> m_partial_symtabs;
-
- /* Map symbol addresses to the partial symtab that defines the
- object at that address. */
-
- std::vector<std::pair<CORE_ADDR, partial_symtab *>> m_psymbol_map;
};
#endif /* PSYMPRIV_H */
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 424e611..35832ae 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1103,75 +1103,6 @@ psymbol_functions::has_unexpanded_symtabs (struct objfile *objfile)
return false;
}
-/* Helper function for psym_find_compunit_symtab_by_address that fills
- in m_psymbol_map for a given range of psymbols. */
-
-void
-psymbol_functions::fill_psymbol_map
- (struct objfile *objfile,
- struct partial_symtab *psymtab,
- std::set<CORE_ADDR> *seen_addrs,
- const std::vector<partial_symbol *> &symbols)
-{
- for (partial_symbol *psym : symbols)
- {
- if (psym->aclass == LOC_STATIC)
- {
- CORE_ADDR addr = psym->address (objfile);
- if (seen_addrs->find (addr) == seen_addrs->end ())
- {
- seen_addrs->insert (addr);
- m_psymbol_map.emplace_back (addr, psymtab);
- }
- }
- }
-}
-
-/* See find_compunit_symtab_by_address in quick_symbol_functions, in
- symfile.h. */
-
-compunit_symtab *
-psymbol_functions::find_compunit_symtab_by_address (struct objfile *objfile,
- CORE_ADDR address)
-{
- if (m_psymbol_map.empty ())
- {
- std::set<CORE_ADDR> seen_addrs;
-
- for (partial_symtab *pst : partial_symbols (objfile))
- {
- fill_psymbol_map (objfile, pst,
- &seen_addrs,
- pst->global_psymbols);
- fill_psymbol_map (objfile, pst,
- &seen_addrs,
- pst->static_psymbols);
- }
-
- m_psymbol_map.shrink_to_fit ();
-
- std::sort (m_psymbol_map.begin (), m_psymbol_map.end (),
- [] (const std::pair<CORE_ADDR, partial_symtab *> &a,
- const std::pair<CORE_ADDR, partial_symtab *> &b)
- {
- return a.first < b.first;
- });
- }
-
- auto iter = std::lower_bound
- (m_psymbol_map.begin (), m_psymbol_map.end (), address,
- [] (const std::pair<CORE_ADDR, partial_symtab *> &a,
- CORE_ADDR b)
- {
- return a.first < b;
- });
-
- if (iter == m_psymbol_map.end () || iter->first != address)
- return NULL;
-
- return psymtab_to_symtab (objfile, iter->second);
-}
-
/* Partially fill a partial symtab. It will be completely filled at
diff --git a/gdb/quick-symbol.h b/gdb/quick-symbol.h
index c55989e..f4120b0 100644
--- a/gdb/quick-symbol.h
+++ b/gdb/quick-symbol.h
@@ -212,13 +212,6 @@ struct quick_symbol_functions
gdb::function_view<symbol_filename_ftype> fun,
bool need_fullname) = 0;
- /* This is called when the objfile is relocated. It can be used to
- clean up any internal caches. */
- virtual void relocated ()
- {
- /* Do nothing. */
- }
-
/* 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'. */