Allow multiple partial symbol readers per objfile
This patch finally changes gdb so that an objfile can have multiple sources of partial symbols (or mixed partial symbols and other kinds of indices). This is done by having each symbol reader create its own psymbol_functions object and add it to the 'qf' list in the objfile. gdb/ChangeLog 2021-03-20 Tom Tromey <tom@tromey.com> * xcoffread.c (xcoff_initial_scan): Create partial symtabs. * symfile.c (syms_from_objfile_1, reread_symbols): Update. * psymtab.h (make_psymbol_functions): Don't declare. * psymtab.c (make_psymbol_functions): Remove. (maintenance_print_psymbols): Update. * psympriv.h (struct psymbol_functions): Add no-argument constructor. * objfiles.h (struct objfile) <reset_psymtabs>: Remove. <partial_symtabs>: Remove. * mdebugread.c (mdebug_build_psymtabs): Create partial symtabs. * elfread.c (read_partial_symbols): Update. (elf_symfile_read): Remove check for existing partial symbols. Don't clear "qf". * dwarf2/read.c (dwarf2_has_info): Remove check for existing partial symbols. (dwarf2_build_psymtabs): Add psymbol_functions parameter. Create partial symtabs. * dwarf2/public.h (dwarf2_build_psymtabs): Add psymbol_functions parameter. * dbxread.c (dbx_symfile_read): Create partial symtabs. * ctfread.c (elfctf_build_psymtabs): Create partial symtabs.
This commit is contained in:
parent
e11145903f
commit
eb36a3eb2f
13 changed files with 67 additions and 61 deletions
|
@ -447,13 +447,6 @@ public:
|
|||
|
||||
DISABLE_COPY_AND_ASSIGN (objfile);
|
||||
|
||||
/* Reset the storage for the partial symbol tables. */
|
||||
|
||||
void reset_psymtabs ()
|
||||
{
|
||||
partial_symtabs.reset (new psymtab_storage ());
|
||||
}
|
||||
|
||||
typedef next_adapter<struct compunit_symtab> compunits_range;
|
||||
|
||||
/* A range adapter that makes it possible to iterate over all
|
||||
|
@ -635,10 +628,6 @@ public:
|
|||
|
||||
struct compunit_symtab *compunit_symtabs = nullptr;
|
||||
|
||||
/* The partial symbol tables. */
|
||||
|
||||
std::shared_ptr<psymtab_storage> partial_symtabs;
|
||||
|
||||
/* The object file's BFD. Can be null if the objfile contains only
|
||||
minimal symbols, e.g. the run time common symbols for SunOS4. */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue