mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 02:24:17 +08:00
Let expand_symtabs_matching short-circuit
This changes expand_symtabs_exp_notify_ftype to return bool, and updates all the uses. Now, if the notification function returns false, the call is short-circuited and stops examining symtabs. This is a step toward replacing map_symtabs_matching_filename with expand_symtabs_matching. gdb/ChangeLog 2021-04-17 Tom Tromey <tom@tromey.com> * symtab.c (default_collect_symbol_completion_matches_break_on): Update. * symfile.h (expand_symtabs_matching): Return bool. * symfile.c (expand_symtabs_matching): Return bool. * symfile-debug.c (objfile::expand_symtabs_matching): Return bool. * quick-symbol.h (expand_symtabs_exp_notify_ftype): Return bool. (struct quick_symbol_functions) <expand_symtabs_matching>: Return bool. * psymtab.c (psymbol_functions::expand_symtabs_matching): Return bool. * psympriv.h (struct psymbol_functions) <expand_symtabs_matching>: Return bool. * objfiles.h (struct objfile) <expand_symtabs_matching>: Return bool. * dwarf2/read.c (struct dwarf2_gdb_index) <expand_symtabs_matching>: Return bool. (struct dwarf2_debug_names_index) <expand_symtabs_matching>: Return bool. (dw2_expand_symtabs_matching_symbol): Return bool. (dw2_expand_symtabs_matching_one, dw2_expand_marked_cus) (dw2_expand_symtabs_matching) (dwarf2_gdb_index::expand_symtabs_matching) (dwarf2_debug_names_index::expand_symtabs_matching) (dwarf2_debug_names_index::expand_symtabs_matching): Return bool.
This commit is contained in:
@ -1,3 +1,31 @@
|
|||||||
|
2021-04-17 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* symtab.c (default_collect_symbol_completion_matches_break_on):
|
||||||
|
Update.
|
||||||
|
* symfile.h (expand_symtabs_matching): Return bool.
|
||||||
|
* symfile.c (expand_symtabs_matching): Return bool.
|
||||||
|
* symfile-debug.c (objfile::expand_symtabs_matching): Return
|
||||||
|
bool.
|
||||||
|
* quick-symbol.h (expand_symtabs_exp_notify_ftype): Return bool.
|
||||||
|
(struct quick_symbol_functions) <expand_symtabs_matching>: Return
|
||||||
|
bool.
|
||||||
|
* psymtab.c (psymbol_functions::expand_symtabs_matching): Return
|
||||||
|
bool.
|
||||||
|
* psympriv.h (struct psymbol_functions)
|
||||||
|
<expand_symtabs_matching>: Return bool.
|
||||||
|
* objfiles.h (struct objfile) <expand_symtabs_matching>: Return
|
||||||
|
bool.
|
||||||
|
* dwarf2/read.c (struct dwarf2_gdb_index)
|
||||||
|
<expand_symtabs_matching>: Return bool.
|
||||||
|
(struct dwarf2_debug_names_index) <expand_symtabs_matching>:
|
||||||
|
Return bool.
|
||||||
|
(dw2_expand_symtabs_matching_symbol): Return bool.
|
||||||
|
(dw2_expand_symtabs_matching_one, dw2_expand_marked_cus)
|
||||||
|
(dw2_expand_symtabs_matching)
|
||||||
|
(dwarf2_gdb_index::expand_symtabs_matching)
|
||||||
|
(dwarf2_debug_names_index::expand_symtabs_matching)
|
||||||
|
(dwarf2_debug_names_index::expand_symtabs_matching): Return bool.
|
||||||
|
|
||||||
2021-04-17 Tom Tromey <tom@tromey.com>
|
2021-04-17 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* quick-symbol.h (enum block_search_flag_values): New.
|
* quick-symbol.h (enum block_search_flag_values): New.
|
||||||
|
@ -2283,7 +2283,7 @@ struct dwarf2_gdb_index : public dwarf2_base_index_functions
|
|||||||
gdb::function_view<symbol_found_callback_ftype> callback,
|
gdb::function_view<symbol_found_callback_ftype> callback,
|
||||||
symbol_compare_ftype *ordered_compare) override;
|
symbol_compare_ftype *ordered_compare) override;
|
||||||
|
|
||||||
void expand_symtabs_matching
|
bool expand_symtabs_matching
|
||||||
(struct objfile *objfile,
|
(struct objfile *objfile,
|
||||||
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
const lookup_name_info *lookup_name,
|
const lookup_name_info *lookup_name,
|
||||||
@ -2312,7 +2312,7 @@ struct dwarf2_debug_names_index : public dwarf2_base_index_functions
|
|||||||
gdb::function_view<symbol_found_callback_ftype> callback,
|
gdb::function_view<symbol_found_callback_ftype> callback,
|
||||||
symbol_compare_ftype *ordered_compare) override;
|
symbol_compare_ftype *ordered_compare) override;
|
||||||
|
|
||||||
void expand_symtabs_matching
|
bool expand_symtabs_matching
|
||||||
(struct objfile *objfile,
|
(struct objfile *objfile,
|
||||||
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
const lookup_name_info *lookup_name,
|
const lookup_name_info *lookup_name,
|
||||||
@ -3822,7 +3822,7 @@ dwarf2_base_index_functions::expand_symtabs_with_fullname
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static bool
|
||||||
dw2_expand_symtabs_matching_symbol
|
dw2_expand_symtabs_matching_symbol
|
||||||
(mapped_index_base &index,
|
(mapped_index_base &index,
|
||||||
const lookup_name_info &lookup_name_in,
|
const lookup_name_info &lookup_name_in,
|
||||||
@ -3830,7 +3830,7 @@ dw2_expand_symtabs_matching_symbol
|
|||||||
gdb::function_view<bool (offset_type)> match_callback,
|
gdb::function_view<bool (offset_type)> match_callback,
|
||||||
dwarf2_per_objfile *per_objfile);
|
dwarf2_per_objfile *per_objfile);
|
||||||
|
|
||||||
static void
|
static bool
|
||||||
dw2_expand_symtabs_matching_one
|
dw2_expand_symtabs_matching_one
|
||||||
(dwarf2_per_cu_data *per_cu,
|
(dwarf2_per_cu_data *per_cu,
|
||||||
dwarf2_per_objfile *per_objfile,
|
dwarf2_per_objfile *per_objfile,
|
||||||
@ -4125,7 +4125,7 @@ mapped_index_base::build_name_components (dwarf2_per_objfile *per_objfile)
|
|||||||
symbol name that matches, calls MATCH_CALLBACK, passing it the
|
symbol name that matches, calls MATCH_CALLBACK, passing it the
|
||||||
symbol's index in the mapped_index_base symbol table. */
|
symbol's index in the mapped_index_base symbol table. */
|
||||||
|
|
||||||
static void
|
static bool
|
||||||
dw2_expand_symtabs_matching_symbol
|
dw2_expand_symtabs_matching_symbol
|
||||||
(mapped_index_base &index,
|
(mapped_index_base &index,
|
||||||
const lookup_name_info &lookup_name_in,
|
const lookup_name_info &lookup_name_in,
|
||||||
@ -4210,12 +4210,16 @@ dw2_expand_symtabs_matching_symbol
|
|||||||
|
|
||||||
/* Finally call the callback, once per match. */
|
/* Finally call the callback, once per match. */
|
||||||
ULONGEST prev = -1;
|
ULONGEST prev = -1;
|
||||||
|
bool result = true;
|
||||||
for (offset_type idx : matches)
|
for (offset_type idx : matches)
|
||||||
{
|
{
|
||||||
if (prev != idx)
|
if (prev != idx)
|
||||||
{
|
{
|
||||||
if (!match_callback (idx))
|
if (!match_callback (idx))
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
prev = idx;
|
prev = idx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4223,6 +4227,8 @@ dw2_expand_symtabs_matching_symbol
|
|||||||
/* Above we use a type wider than idx's for 'prev', since 0 and
|
/* Above we use a type wider than idx's for 'prev', since 0 and
|
||||||
(offset_type)-1 are both possible values. */
|
(offset_type)-1 are both possible values. */
|
||||||
static_assert (sizeof (prev) > sizeof (offset_type), "");
|
static_assert (sizeof (prev) > sizeof (offset_type), "");
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if GDB_SELF_TEST
|
#if GDB_SELF_TEST
|
||||||
@ -4663,7 +4669,7 @@ run_test ()
|
|||||||
dw_expand_symtabs_matching_file_matcher), expand the CU and call
|
dw_expand_symtabs_matching_file_matcher), expand the CU and call
|
||||||
EXPANSION_NOTIFY on it. */
|
EXPANSION_NOTIFY on it. */
|
||||||
|
|
||||||
static void
|
static bool
|
||||||
dw2_expand_symtabs_matching_one
|
dw2_expand_symtabs_matching_one
|
||||||
(dwarf2_per_cu_data *per_cu,
|
(dwarf2_per_cu_data *per_cu,
|
||||||
dwarf2_per_objfile *per_objfile,
|
dwarf2_per_objfile *per_objfile,
|
||||||
@ -4679,15 +4685,16 @@ dw2_expand_symtabs_matching_one
|
|||||||
gdb_assert (symtab != nullptr);
|
gdb_assert (symtab != nullptr);
|
||||||
|
|
||||||
if (expansion_notify != NULL && symtab_was_null)
|
if (expansion_notify != NULL && symtab_was_null)
|
||||||
expansion_notify (symtab);
|
return expansion_notify (symtab);
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Helper for dw2_expand_matching symtabs. Called on each symbol
|
/* Helper for dw2_expand_matching symtabs. Called on each symbol
|
||||||
matched, to expand corresponding CUs that were marked. IDX is the
|
matched, to expand corresponding CUs that were marked. IDX is the
|
||||||
index of the symbol name that matched. */
|
index of the symbol name that matched. */
|
||||||
|
|
||||||
static void
|
static bool
|
||||||
dw2_expand_marked_cus
|
dw2_expand_marked_cus
|
||||||
(dwarf2_per_objfile *per_objfile, offset_type idx,
|
(dwarf2_per_objfile *per_objfile, offset_type idx,
|
||||||
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
@ -4764,9 +4771,12 @@ dw2_expand_marked_cus
|
|||||||
}
|
}
|
||||||
|
|
||||||
dwarf2_per_cu_data *per_cu = per_objfile->per_bfd->get_cutu (cu_index);
|
dwarf2_per_cu_data *per_cu = per_objfile->per_bfd->get_cutu (cu_index);
|
||||||
dw2_expand_symtabs_matching_one (per_cu, per_objfile, file_matcher,
|
if (!dw2_expand_symtabs_matching_one (per_cu, per_objfile, file_matcher,
|
||||||
expansion_notify);
|
expansion_notify))
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If FILE_MATCHER is non-NULL, set all the
|
/* If FILE_MATCHER is non-NULL, set all the
|
||||||
@ -4846,7 +4856,7 @@ dw_expand_symtabs_matching_file_matcher
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
dwarf2_gdb_index::expand_symtabs_matching
|
dwarf2_gdb_index::expand_symtabs_matching
|
||||||
(struct objfile *objfile,
|
(struct objfile *objfile,
|
||||||
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
@ -4859,7 +4869,7 @@ dwarf2_gdb_index::expand_symtabs_matching
|
|||||||
|
|
||||||
/* index_table is NULL if OBJF_READNOW. */
|
/* index_table is NULL if OBJF_READNOW. */
|
||||||
if (!per_objfile->per_bfd->index_table)
|
if (!per_objfile->per_bfd->index_table)
|
||||||
return;
|
return true;
|
||||||
|
|
||||||
dw_expand_symtabs_matching_file_matcher (per_objfile, file_matcher);
|
dw_expand_symtabs_matching_file_matcher (per_objfile, file_matcher);
|
||||||
|
|
||||||
@ -4869,22 +4879,28 @@ dwarf2_gdb_index::expand_symtabs_matching
|
|||||||
{
|
{
|
||||||
QUIT;
|
QUIT;
|
||||||
|
|
||||||
dw2_expand_symtabs_matching_one (per_cu, per_objfile,
|
if (!dw2_expand_symtabs_matching_one (per_cu, per_objfile,
|
||||||
file_matcher, expansion_notify);
|
file_matcher,
|
||||||
|
expansion_notify))
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mapped_index &index = *per_objfile->per_bfd->index_table;
|
mapped_index &index = *per_objfile->per_bfd->index_table;
|
||||||
|
|
||||||
dw2_expand_symtabs_matching_symbol (index, *lookup_name,
|
bool result
|
||||||
|
= dw2_expand_symtabs_matching_symbol (index, *lookup_name,
|
||||||
symbol_matcher,
|
symbol_matcher,
|
||||||
[&] (offset_type idx)
|
[&] (offset_type idx)
|
||||||
{
|
{
|
||||||
dw2_expand_marked_cus (per_objfile, idx, file_matcher, expansion_notify,
|
if (!dw2_expand_marked_cus (per_objfile, idx, file_matcher,
|
||||||
kind);
|
expansion_notify, kind))
|
||||||
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}, per_objfile);
|
}, per_objfile);
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* A helper for dw2_find_pc_sect_compunit_symtab which finds the most specific
|
/* A helper for dw2_find_pc_sect_compunit_symtab which finds the most specific
|
||||||
@ -5896,7 +5912,7 @@ dwarf2_debug_names_index::map_matching_symbols
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
dwarf2_debug_names_index::expand_symtabs_matching
|
dwarf2_debug_names_index::expand_symtabs_matching
|
||||||
(struct objfile *objfile,
|
(struct objfile *objfile,
|
||||||
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
@ -5909,7 +5925,7 @@ dwarf2_debug_names_index::expand_symtabs_matching
|
|||||||
|
|
||||||
/* debug_names_table is NULL if OBJF_READNOW. */
|
/* debug_names_table is NULL if OBJF_READNOW. */
|
||||||
if (!per_objfile->per_bfd->debug_names_table)
|
if (!per_objfile->per_bfd->debug_names_table)
|
||||||
return;
|
return true;
|
||||||
|
|
||||||
dw_expand_symtabs_matching_file_matcher (per_objfile, file_matcher);
|
dw_expand_symtabs_matching_file_matcher (per_objfile, file_matcher);
|
||||||
|
|
||||||
@ -5919,15 +5935,18 @@ dwarf2_debug_names_index::expand_symtabs_matching
|
|||||||
{
|
{
|
||||||
QUIT;
|
QUIT;
|
||||||
|
|
||||||
dw2_expand_symtabs_matching_one (per_cu, per_objfile, file_matcher,
|
if (!dw2_expand_symtabs_matching_one (per_cu, per_objfile,
|
||||||
expansion_notify);
|
file_matcher,
|
||||||
|
expansion_notify))
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mapped_debug_names &map = *per_objfile->per_bfd->debug_names_table;
|
mapped_debug_names &map = *per_objfile->per_bfd->debug_names_table;
|
||||||
|
|
||||||
dw2_expand_symtabs_matching_symbol (map, *lookup_name,
|
bool result
|
||||||
|
= dw2_expand_symtabs_matching_symbol (map, *lookup_name,
|
||||||
symbol_matcher,
|
symbol_matcher,
|
||||||
[&] (offset_type namei)
|
[&] (offset_type namei)
|
||||||
{
|
{
|
||||||
@ -5937,10 +5956,14 @@ dwarf2_debug_names_index::expand_symtabs_matching
|
|||||||
|
|
||||||
struct dwarf2_per_cu_data *per_cu;
|
struct dwarf2_per_cu_data *per_cu;
|
||||||
while ((per_cu = iter.next ()) != NULL)
|
while ((per_cu = iter.next ()) != NULL)
|
||||||
dw2_expand_symtabs_matching_one (per_cu, per_objfile, file_matcher,
|
if (!dw2_expand_symtabs_matching_one (per_cu, per_objfile,
|
||||||
expansion_notify);
|
file_matcher,
|
||||||
|
expansion_notify))
|
||||||
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}, per_objfile);
|
}, per_objfile);
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the content of the .gdb_index section of OBJ. SECTION_OWNER should point
|
/* Get the content of the .gdb_index section of OBJ. SECTION_OWNER should point
|
||||||
|
@ -603,7 +603,7 @@ public:
|
|||||||
symbol_compare_ftype *ordered_compare);
|
symbol_compare_ftype *ordered_compare);
|
||||||
|
|
||||||
/* See quick_symbol_functions. */
|
/* See quick_symbol_functions. */
|
||||||
void expand_symtabs_matching
|
bool expand_symtabs_matching
|
||||||
(gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
(gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
const lookup_name_info *lookup_name,
|
const lookup_name_info *lookup_name,
|
||||||
gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
|
gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
|
||||||
|
@ -541,7 +541,7 @@ struct psymbol_functions : public quick_symbol_functions
|
|||||||
gdb::function_view<symbol_found_callback_ftype> callback,
|
gdb::function_view<symbol_found_callback_ftype> callback,
|
||||||
symbol_compare_ftype *ordered_compare) override;
|
symbol_compare_ftype *ordered_compare) override;
|
||||||
|
|
||||||
void expand_symtabs_matching
|
bool expand_symtabs_matching
|
||||||
(struct objfile *objfile,
|
(struct objfile *objfile,
|
||||||
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
const lookup_name_info *lookup_name,
|
const lookup_name_info *lookup_name,
|
||||||
|
@ -1293,7 +1293,7 @@ recursively_search_psymtabs
|
|||||||
/* Psymtab version of expand_symtabs_matching. See its definition in
|
/* Psymtab version of expand_symtabs_matching. See its definition in
|
||||||
the definition of quick_symbol_functions in symfile.h. */
|
the definition of quick_symbol_functions in symfile.h. */
|
||||||
|
|
||||||
void
|
bool
|
||||||
psymbol_functions::expand_symtabs_matching
|
psymbol_functions::expand_symtabs_matching
|
||||||
(struct objfile *objfile,
|
(struct objfile *objfile,
|
||||||
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
@ -1346,9 +1346,12 @@ psymbol_functions::expand_symtabs_matching
|
|||||||
psymtab_to_symtab (objfile, ps);
|
psymtab_to_symtab (objfile, ps);
|
||||||
|
|
||||||
if (expansion_notify != NULL)
|
if (expansion_notify != NULL)
|
||||||
expansion_notify (symtab);
|
if (!expansion_notify (symtab))
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Psymtab version of has_symbols. See its definition in
|
/* Psymtab version of has_symbols. See its definition in
|
||||||
|
@ -52,9 +52,11 @@ typedef bool (expand_symtabs_file_matcher_ftype) (const char *filename,
|
|||||||
typedef bool (expand_symtabs_symbol_matcher_ftype) (const char *name);
|
typedef bool (expand_symtabs_symbol_matcher_ftype) (const char *name);
|
||||||
|
|
||||||
/* Callback for quick_symbol_functions->expand_symtabs_matching
|
/* Callback for quick_symbol_functions->expand_symtabs_matching
|
||||||
to be called after a symtab has been expanded. */
|
to be called after a symtab has been expanded. If this returns
|
||||||
|
true, more symtabs are checked; if it returns false, iteration
|
||||||
|
stops. */
|
||||||
|
|
||||||
typedef void (expand_symtabs_exp_notify_ftype) (compunit_symtab *symtab);
|
typedef bool (expand_symtabs_exp_notify_ftype) (compunit_symtab *symtab);
|
||||||
|
|
||||||
/* The "quick" symbol functions exist so that symbol readers can
|
/* The "quick" symbol functions exist so that symbol readers can
|
||||||
avoiding an initial read of all the symbols. For example, symbol
|
avoiding an initial read of all the symbols. For example, symbol
|
||||||
@ -206,8 +208,12 @@ struct quick_symbol_functions
|
|||||||
|
|
||||||
If SYMBOL_MATCHER returns false, then the symbol is skipped.
|
If SYMBOL_MATCHER returns false, then the symbol is skipped.
|
||||||
|
|
||||||
Otherwise, the symbol's symbol table is expanded. */
|
Otherwise, the symbol's symbol table is expanded and the
|
||||||
virtual void expand_symtabs_matching
|
notification function is called. If the notification function
|
||||||
|
returns false, execution stops and this method returns false.
|
||||||
|
Otherwise, more files are considered. This method will return
|
||||||
|
true if all calls to the notification function return true. */
|
||||||
|
virtual bool expand_symtabs_matching
|
||||||
(struct objfile *objfile,
|
(struct objfile *objfile,
|
||||||
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
const lookup_name_info *lookup_name,
|
const lookup_name_info *lookup_name,
|
||||||
|
@ -265,7 +265,7 @@ objfile::map_matching_symbols
|
|||||||
callback, ordered_compare);
|
callback, ordered_compare);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
objfile::expand_symtabs_matching
|
objfile::expand_symtabs_matching
|
||||||
(gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
(gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
const lookup_name_info *lookup_name,
|
const lookup_name_info *lookup_name,
|
||||||
@ -283,8 +283,11 @@ objfile::expand_symtabs_matching
|
|||||||
search_domain_name (kind));
|
search_domain_name (kind));
|
||||||
|
|
||||||
for (const auto &iter : qf)
|
for (const auto &iter : qf)
|
||||||
iter->expand_symtabs_matching (this, file_matcher, lookup_name,
|
if (!iter->expand_symtabs_matching (this, file_matcher, lookup_name,
|
||||||
symbol_matcher, expansion_notify, kind);
|
symbol_matcher, expansion_notify,
|
||||||
|
kind))
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct compunit_symtab *
|
struct compunit_symtab *
|
||||||
|
@ -3716,7 +3716,7 @@ symfile_free_objfile (struct objfile *objfile)
|
|||||||
Expand all symtabs that match the specified criteria.
|
Expand all symtabs that match the specified criteria.
|
||||||
See quick_symbol_functions.expand_symtabs_matching for details. */
|
See quick_symbol_functions.expand_symtabs_matching for details. */
|
||||||
|
|
||||||
void
|
bool
|
||||||
expand_symtabs_matching
|
expand_symtabs_matching
|
||||||
(gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
(gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
const lookup_name_info &lookup_name,
|
const lookup_name_info &lookup_name,
|
||||||
@ -3725,10 +3725,12 @@ expand_symtabs_matching
|
|||||||
enum search_domain kind)
|
enum search_domain kind)
|
||||||
{
|
{
|
||||||
for (objfile *objfile : current_program_space->objfiles ())
|
for (objfile *objfile : current_program_space->objfiles ())
|
||||||
objfile->expand_symtabs_matching (file_matcher,
|
if (!objfile->expand_symtabs_matching (file_matcher,
|
||||||
&lookup_name,
|
&lookup_name,
|
||||||
symbol_matcher,
|
symbol_matcher,
|
||||||
expansion_notify, kind);
|
expansion_notify, kind))
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Wrapper around the quick_symbol_functions map_symbol_filenames "method".
|
/* Wrapper around the quick_symbol_functions map_symbol_filenames "method".
|
||||||
|
@ -321,7 +321,7 @@ symfile_segment_data_up get_symfile_segment_data (bfd *abfd);
|
|||||||
|
|
||||||
extern scoped_restore_tmpl<int> increment_reading_symtab (void);
|
extern scoped_restore_tmpl<int> increment_reading_symtab (void);
|
||||||
|
|
||||||
void expand_symtabs_matching
|
bool expand_symtabs_matching
|
||||||
(gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
(gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
|
||||||
const lookup_name_info &lookup_name,
|
const lookup_name_info &lookup_name,
|
||||||
gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
|
gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
|
||||||
|
@ -5730,6 +5730,7 @@ default_collect_symbol_completion_matches_break_on
|
|||||||
add_symtab_completions (symtab,
|
add_symtab_completions (symtab,
|
||||||
tracker, mode, lookup_name,
|
tracker, mode, lookup_name,
|
||||||
sym_text, word, code);
|
sym_text, word, code);
|
||||||
|
return true;
|
||||||
},
|
},
|
||||||
ALL_DOMAIN);
|
ALL_DOMAIN);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user