aboutsummaryrefslogtreecommitdiff
path: root/gdb/symfile-debug.c
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
commitd1eef86d12f5aa2f8461add1180df9db4b59a39d (patch)
tree085a1f465fc21fd51c7d8b03fa35e44bc660a1f6 /gdb/symfile-debug.c
parenteb00e4686dd1a1530737e2de7eae971d61332da1 (diff)
downloadgdb-d1eef86d12f5aa2f8461add1180df9db4b59a39d.zip
gdb-d1eef86d12f5aa2f8461add1180df9db4b59a39d.tar.gz
gdb-d1eef86d12f5aa2f8461add1180df9db4b59a39d.tar.bz2
Introduce objfile::require_partial_symbols
This adds a new method, objfile::require_partial_symbols. This reuses most of the code from the old function in psymtab.c. That function is now made static, and simplified. gdb/ChangeLog 2021-03-20 Tom Tromey <tom@tromey.com> * symfile.c (read_symbols): Use objfile method. * symfile-debug.c (objfile::require_partial_symbols): New method. * psymtab.h (require_partial_symbols): Don't declare. * psymtab.c (require_partial_symbols): Use objfile method. Now static. (psymbol_functions::map_symtabs_matching_filename, OBJFILE) (psymbol_functions::lookup_symbol) (psymbol_functions::lookup_global_symbol_language) (psymbol_functions::find_last_source_symtab) (psymbol_functions::forget_cached_source_info) (psymbol_functions::print_stats) (psymbol_functions::expand_symtabs_for_function) (psymbol_functions::expand_all_symtabs) (psymbol_functions::expand_symtabs_with_fullname) (psymbol_functions::map_symbol_filenames) (psymbol_functions::map_matching_symbols) (psymbol_functions::expand_symtabs_matching) (psymbol_functions::find_compunit_symtab_by_address) (maintenance_print_psymbols, maintenance_info_psymtabs) (maintenance_check_psymtabs): Update. * objfiles.h (struct objfile) <require_partial_symbols>: Declare new method.
Diffstat (limited to 'gdb/symfile-debug.c')
-rw-r--r--gdb/symfile-debug.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index 94559c7..9997453 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -357,6 +357,27 @@ objfile::lookup_global_symbol_language (const char *name,
return result;
}
+void
+objfile::require_partial_symbols (bool verbose)
+{
+ if ((flags & OBJF_PSYMTABS_READ) == 0)
+ {
+ flags |= OBJF_PSYMTABS_READ;
+
+ if (qf->can_lazily_read_symbols ())
+ {
+ if (verbose)
+ printf_filtered (_("Reading symbols from %s...\n"),
+ objfile_name (this));
+ qf->read_partial_symbols (this);
+
+ if (verbose && !objfile_has_symbols (this))
+ printf_filtered (_("(No debugging symbols found in %s)\n"),
+ objfile_name (this));
+ }
+ }
+}
+
/* Debugging version of struct sym_probe_fns. */