gdb: Split global symbol search into separate functions

In preparation for the next commit, this commit restructures the code
by splitting global_symbol_searcher::search into separate functions.
There should be no functional changes after this commit.

gdb/ChangeLog:

	* symtab.c (symbol_search::compare_search_syms): Update header
	comment.
	(global_symbol_searcher::is_suitable_msymbol): New function.
	(global_symbol_searcher::expand_symtabs): New function.
	(global_symbol_searcher::add_matching_symbols): New function.
	(global_symbol_searcher::add_matching_msymbols): New function.
	(global_symbol_searcher::search): Move most of the content
	into the new functions above, and call them as needed.
	* symtab.h (global_symbol_searcher) <expand_symtabs>: New member
	function.
	(global_symbol_searcher) <add_matching_symbols>: New member
	function.
	(global_symbol_searcher) <add_matching_msymbols>: New member
	function.
	(global_symbol_searcher) <is_suitable_msymbol>: New member
	function.

Change-Id: I06b26920f35c268f7a38d8203dc2c2813aa501c6
This commit is contained in:
Andrew Burgess
2019-12-02 11:36:45 +00:00
parent 293b38d60f
commit f97a63c5aa
3 changed files with 272 additions and 194 deletions

View File

@ -2124,6 +2124,29 @@ private:
/* When this flag is false then minsyms that match M_SYMBOL_REGEXP will
be included in the results, otherwise they are excluded. */
bool m_exclude_minsyms = false;
/* Expand symtabs in OBJFILE that match PREG, are of type M_KIND. Return
true if any msymbols were seen that we should later consider adding to
the results list. */
bool expand_symtabs (objfile *objfile,
const gdb::optional<compiled_regex> &preg) const;
/* Add symbols from symtabs in OBJFILE that match PREG, and TREG, and are
of type M_KIND, to the results vector RESULTS. */
void add_matching_symbols (objfile *objfile,
const gdb::optional<compiled_regex> &preg,
const gdb::optional<compiled_regex> &treg,
std::vector<symbol_search> *results) const;
/* Add msymbols from OBJFILE that match PREG and M_KIND, to the
results vector RESULTS. */
void add_matching_msymbols (objfile *objfile,
const gdb::optional<compiled_regex> &preg,
std::vector<symbol_search> *results) const;
/* Return true if MSYMBOL is of type KIND. */
static bool is_suitable_msymbol (const enum search_domain kind,
const minimal_symbol *msymbol);
};
/* When searching for Fortran symbols within modules (functions/variables)