/* Private partial symbol table definitions.
- Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ Copyright (C) 2009-2022 Free Software Foundation, Inc.
This file is part of GDB.
/* Return the unrelocated address of this partial symbol. */
CORE_ADDR unrelocated_address () const
{
- return ginfo.value.address;
+ return ginfo.value_address ();
}
/* Return the address of this partial symbol, relocated according to
the offsets provided in OBJFILE. */
CORE_ADDR address (const struct objfile *objfile) const
{
- return (ginfo.value.address
+ return (ginfo.value_address ()
+ objfile->section_offsets[ginfo.section_index ()]);
}
unrelocated. */
void set_unrelocated_address (CORE_ADDR addr)
{
- ginfo.value.address = addr;
+ ginfo.set_value_address (addr);
}
/* Note that partial_symbol does not derive from general_symbol_info
/* Name space code. */
- ENUM_BITFIELD(domain_enum_tag) domain : SYMBOL_DOMAIN_BITS;
+ ENUM_BITFIELD(domain_enum) domain : SYMBOL_DOMAIN_BITS;
/* Address class (for info_symbols). Note that we don't allow
synthetic "aclass" values here at present, simply because there's
struct partial_symtab
{
- /* Allocate a new partial symbol table associated with OBJFILE.
+ /* Allocate a new partial symbol table.
+
FILENAME (which must be non-NULL) is the filename of this partial
symbol table; it is copied into the appropriate storage. The
partial symtab will also be installed using
partial_symtab (const char *filename,
psymtab_storage *partial_symtabs,
- struct objfile *objfile)
+ objfile_per_bfd_storage *objfile_per_bfd)
ATTRIBUTE_NONNULL (2) ATTRIBUTE_NONNULL (3);
/* Like the above, but also sets the initial text low and text high
partial_symtab (const char *filename,
psymtab_storage *partial_symtabs,
- struct objfile *objfile,
+ objfile_per_bfd_storage *objfile_per_bfd,
CORE_ADDR addr)
ATTRIBUTE_NONNULL (2) ATTRIBUTE_NONNULL (3);
{
standard_psymtab (const char *filename,
psymtab_storage *partial_symtabs,
- struct objfile *objfile)
- : partial_symtab (filename, partial_symtabs, objfile)
+ objfile_per_bfd_storage *objfile_per_bfd)
+ : partial_symtab (filename, partial_symtabs, objfile_per_bfd)
{
}
standard_psymtab (const char *filename,
psymtab_storage *partial_symtabs,
- struct objfile *objfile,
+ objfile_per_bfd_storage *objfile_per_bfd,
CORE_ADDR addr)
- : partial_symtab (filename, partial_symtabs, objfile, addr)
+ : partial_symtab (filename, partial_symtabs, objfile_per_bfd, addr)
{
}
{
legacy_psymtab (const char *filename,
psymtab_storage *partial_symtabs,
- struct objfile *objfile)
- : standard_psymtab (filename, partial_symtabs, objfile)
+ objfile_per_bfd_storage *objfile_per_bfd)
+ : standard_psymtab (filename, partial_symtabs, objfile_per_bfd)
{
}
legacy_psymtab (const char *filename,
psymtab_storage *partial_symtabs,
- struct objfile *objfile,
+ objfile_per_bfd_storage *objfile_per_bfd,
CORE_ADDR addr)
- : standard_psymtab (filename, partial_symtabs, objfile, addr)
+ : standard_psymtab (filename, partial_symtabs, objfile_per_bfd, addr)
{
}
bool has_symbols (struct objfile *objfile) override;
+ bool has_unexpanded_symtabs (struct objfile *objfile) override;
+
struct symtab *find_last_source_symtab (struct objfile *objfile) override;
void forget_cached_source_info (struct objfile *objfile) override;
- bool map_symtabs_matching_filename
- (struct objfile *objfile, const char *name, const char *real_path,
- gdb::function_view<bool (symtab *)> callback) override;
-
- struct compunit_symtab *lookup_symbol (struct objfile *objfile,
- block_enum block_index,
- const char *name,
- domain_enum domain) override;
-
enum language lookup_global_symbol_language (struct objfile *objfile,
const char *name,
domain_enum domain,
void dump (struct objfile *objfile) override;
- void expand_symtabs_for_function (struct objfile *objfile,
- const char *func_name) override;
-
void expand_all_symtabs (struct objfile *objfile) override;
- void expand_symtabs_with_fullname (struct objfile *objfile,
- const char *fullname) override;
-
- void map_matching_symbols
+ void expand_matching_symbols
(struct objfile *,
const lookup_name_info &lookup_name,
domain_enum domain,
int global,
- gdb::function_view<symbol_found_callback_ftype> callback,
symbol_compare_ftype *ordered_compare) override;
- void expand_symtabs_matching
+ bool expand_symtabs_matching
(struct objfile *objfile,
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
const lookup_name_info *lookup_name,
gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+ block_search_flags search_flags,
+ domain_enum domain,
enum search_domain kind) override;
struct compunit_symtab *find_pc_sect_compunit_symtab
m_psymbol_map.clear ();
}
- /* Ensure the partial symbols for OBJFILE have been loaded. Return
- a range adapter for the psymtabs. */
- psymtab_storage::partial_symtab_range require_partial_symbols
+ /* Return a range adapter for the psymtabs. */
+ psymtab_storage::partial_symtab_range partial_symbols
(struct objfile *objfile);
/* Return the partial symbol storage associated with this