mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-22 02:50:08 +08:00
Rearrange psymtab_storage construction
This changes objfile so that it doesn't construct a psymtab_storage object until the psymtab functions are installed. It also applies a similar treatment to reread_symbols. gdb/ChangeLog 2021-03-20 Tom Tromey <tom@tromey.com> * symfile.c (syms_from_objfile_1): Call reset_psymtabs. (reread_symbols): Move reset_psymtabs call later. * objfiles.c (objfile::objfile): Don't initialize partial_symtabs.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2021-03-20 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* symfile.c (syms_from_objfile_1): Call reset_psymtabs.
|
||||||
|
(reread_symbols): Move reset_psymtabs call later.
|
||||||
|
* objfiles.c (objfile::objfile): Don't initialize
|
||||||
|
partial_symtabs.
|
||||||
|
|
||||||
2021-03-20 Tom Tromey <tom@tromey.com>
|
2021-03-20 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* dwarf2/read.c (dwarf2_build_psymtabs): Call
|
* dwarf2/read.c (dwarf2_build_psymtabs): Call
|
||||||
|
@ -323,7 +323,6 @@ build_objfile_section_table (struct objfile *objfile)
|
|||||||
objfile::objfile (bfd *abfd, const char *name, objfile_flags flags_)
|
objfile::objfile (bfd *abfd, const char *name, objfile_flags flags_)
|
||||||
: flags (flags_),
|
: flags (flags_),
|
||||||
pspace (current_program_space),
|
pspace (current_program_space),
|
||||||
partial_symtabs (new psymtab_storage ()),
|
|
||||||
obfd (abfd)
|
obfd (abfd)
|
||||||
{
|
{
|
||||||
const char *expanded_name;
|
const char *expanded_name;
|
||||||
|
@ -904,6 +904,7 @@ syms_from_objfile_1 (struct objfile *objfile,
|
|||||||
const int mainline = add_flags & SYMFILE_MAINLINE;
|
const int mainline = add_flags & SYMFILE_MAINLINE;
|
||||||
|
|
||||||
objfile_set_sym_fns (objfile, find_sym_fns (objfile->obfd));
|
objfile_set_sym_fns (objfile, find_sym_fns (objfile->obfd));
|
||||||
|
objfile->reset_psymtabs ();
|
||||||
objfile->qf = make_psymbol_functions (objfile->partial_symtabs);
|
objfile->qf = make_psymbol_functions (objfile->partial_symtabs);
|
||||||
|
|
||||||
if (objfile->sf == NULL)
|
if (objfile->sf == NULL)
|
||||||
@ -2522,8 +2523,6 @@ reread_symbols (void)
|
|||||||
error (_("Can't read symbols from %s: %s."), objfile_name (objfile),
|
error (_("Can't read symbols from %s: %s."), objfile_name (objfile),
|
||||||
bfd_errmsg (bfd_get_error ()));
|
bfd_errmsg (bfd_get_error ()));
|
||||||
|
|
||||||
objfile->reset_psymtabs ();
|
|
||||||
|
|
||||||
/* NB: after this call to obstack_free, objfiles_changed
|
/* NB: after this call to obstack_free, objfiles_changed
|
||||||
will need to be called (see discussion below). */
|
will need to be called (see discussion below). */
|
||||||
obstack_free (&objfile->objfile_obstack, 0);
|
obstack_free (&objfile->objfile_obstack, 0);
|
||||||
@ -2555,6 +2554,7 @@ reread_symbols (void)
|
|||||||
based on whether .gdb_index is present, and we need it to
|
based on whether .gdb_index is present, and we need it to
|
||||||
start over. PR symtab/15885 */
|
start over. PR symtab/15885 */
|
||||||
objfile_set_sym_fns (objfile, find_sym_fns (objfile->obfd));
|
objfile_set_sym_fns (objfile, find_sym_fns (objfile->obfd));
|
||||||
|
objfile->reset_psymtabs ();
|
||||||
objfile->qf = make_psymbol_functions (objfile->partial_symtabs);
|
objfile->qf = make_psymbol_functions (objfile->partial_symtabs);
|
||||||
|
|
||||||
build_objfile_section_table (objfile);
|
build_objfile_section_table (objfile);
|
||||||
|
Reference in New Issue
Block a user