summaryrefslogtreecommitdiff
path: root/gdb/symfile-debug.c
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2021-04-15 11:29:55 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2021-06-25 20:54:28 +0100
commitfc4d5ebf8f8fa30ae3f5c26270df0163ad72000c (patch)
tree6b78299ed4202c52690e26f485ea226cad48b93f /gdb/symfile-debug.c
parentd038ce48f1adebd6917a1cfb595efd6f93d613ff (diff)
downloadbinutils-gdb-fc4d5ebf8f8fa30ae3f5c26270df0163ad72000c.tar.gz
gdb: add new function quick_symbol_functions::has_unexpanded_symbols
Adds a new function to the quick_symbol_functions API to let us know if there are any unexpanded symbols. This functionality is required by a later commit. After this commit the functionality is unused, and untested. The new function objfile::has_unexpanded_symtabs is added to the symfile-debug.c file which is a little strange, but this is (currently) where many of the other objfile::* functions (that call onto the quick_symbol_functions) are defined, so I'm reluctant to break this pattern. There should be no user visible changes after this commit. gdb/ChangeLog: * dwarf2/read.c (struct dwarf2_base_index_functions) <has_unexpanded_symtabs>: Declare. (dwarf2_base_index_functions::has_unexpanded_symtabs): Define new function. * objfiles.h (struct objfile) <has_unexpanded_symtabs>: Declare. * psympriv.h (struct psymbol_functions) <has_unexpanded_symtabs>: Declare. * psymtab.c (psymbol_functions::has_unexpanded_symtabs): Define new function. * quick-symbol.h (struct quick_symbol_functions) <has_unexpanded_symtabs>: Declare. * symfile-debug.c (objfile::has_unexpanded_symtabs): Define new function.
Diffstat (limited to 'gdb/symfile-debug.c')
-rw-r--r--gdb/symfile-debug.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index b839194e2f7..a10af68f5b1 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -100,6 +100,31 @@ objfile::has_partial_symbols ()
return retval;
}
+/* See objfiles.h. */
+bool
+objfile::has_unexpanded_symtabs ()
+{
+ if (debug_symfile)
+ fprintf_filtered (gdb_stdlog, "qf->has_unexpanded_symtabs (%s)\n",
+ objfile_debug_name (this));
+
+ bool result = false;
+ for (const auto &iter : qf)
+ {
+ if (iter->has_unexpanded_symtabs (this))
+ {
+ result = true;
+ break;
+ }
+ }
+
+ if (debug_symfile)
+ fprintf_filtered (gdb_stdlog, "qf->has_unexpanded_symtabs (%s) = %d\n",
+ objfile_debug_name (this), (result ? 1 : 0));
+
+ return result;
+}
+
struct symtab *
objfile::find_last_source_symtab ()
{