aboutsummaryrefslogtreecommitdiff
path: root/gdb/quick-symbol.h
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-03-20 17:23:40 -0600
committerTom Tromey <tom@tromey.com>2021-03-20 17:23:44 -0600
commiteb00e4686dd1a1530737e2de7eae971d61332da1 (patch)
tree72c57133482f5dbc22fe2d204357ab13c194bc06 /gdb/quick-symbol.h
parentb29b98cf8411ac136d17fc68236fc029447f1461 (diff)
downloadfsf-binutils-gdb-eb00e4686dd1a1530737e2de7eae971d61332da1.zip
fsf-binutils-gdb-eb00e4686dd1a1530737e2de7eae971d61332da1.tar.gz
fsf-binutils-gdb-eb00e4686dd1a1530737e2de7eae971d61332da1.tar.bz2
Remove sym_fns::sym_read_psymbols
Partial symbols are read via the sym_fns::sym_read_psymbols function pointer. In order to separate the partial symbols from the objfile, this must instead be done via a virtual method on quick_symbol_functions. This patch implements this change. gdb/ChangeLog 2021-03-20 Tom Tromey <tom@tromey.com> * xcoffread.c (xcoff_sym_fns): Update. * symfile.h (struct sym_fns) <sym_read_psymbols>: Remove. * symfile-debug.c (objfile::has_partial_symbols): Use can_lazily_read_symbols. (debug_sym_read_psymbols): Remove. (debug_sym_fns, install_symfile_debug_logging): Update. * quick-symbol.h (struct quick_symbol_functions) <can_lazily_read_symbols, read_partial_symbols>: New methods. * psymtab.c (require_partial_symbols): Use new 'qf' methods. * mipsread.c (ecoff_sym_fns): Update. * machoread.c (macho_sym_fns): Update. * elfread.c (struct lazy_dwarf_reader): New. (elf_symfile_read): Update. (read_psyms): Now a method of lazy_dwarf_reader. (elf_sym_fns): Update. (elf_sym_fns_lazy_psyms): Remove. * dbxread.c (aout_sym_fns): Update. * coffread.c (coff_sym_fns): Update.
Diffstat (limited to 'gdb/quick-symbol.h')
-rw-r--r--gdb/quick-symbol.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/gdb/quick-symbol.h b/gdb/quick-symbol.h
index 315a97a..dd2b896 100644
--- a/gdb/quick-symbol.h
+++ b/gdb/quick-symbol.h
@@ -237,6 +237,20 @@ struct quick_symbol_functions
{
/* 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'. */
+ 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;