From fc4d5ebf8f8fa30ae3f5c26270df0163ad72000c Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Thu, 15 Apr 2021 11:29:55 +0100 Subject: 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) : Declare. (dwarf2_base_index_functions::has_unexpanded_symtabs): Define new function. * objfiles.h (struct objfile) : Declare. * psympriv.h (struct psymbol_functions) : Declare. * psymtab.c (psymbol_functions::has_unexpanded_symtabs): Define new function. * quick-symbol.h (struct quick_symbol_functions) : Declare. * symfile-debug.c (objfile::has_unexpanded_symtabs): Define new function. --- gdb/symfile-debug.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gdb/symfile-debug.c') diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c index b839194..a10af68 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 () { -- cgit v1.1