aboutsummaryrefslogtreecommitdiff
path: root/gdb/psymtab.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/psymtab.c')
-rw-r--r--gdb/psymtab.c114
1 files changed, 52 insertions, 62 deletions
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 8c02fa2..c022daa 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -132,8 +132,8 @@ partial_map_expand_apply (struct objfile *objfile,
/* Psymtab version of map_symtabs_matching_filename. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static bool
-psym_map_symtabs_matching_filename
+bool
+psymbol_functions::map_symtabs_matching_filename
(struct objfile *objfile,
const char *name,
const char *real_path,
@@ -359,12 +359,13 @@ find_pc_sect_psymtab (struct objfile *objfile, CORE_ADDR pc,
/* Psymtab version of find_pc_sect_compunit_symtab. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static struct compunit_symtab *
-psym_find_pc_sect_compunit_symtab (struct objfile *objfile,
- struct bound_minimal_symbol msymbol,
- CORE_ADDR pc,
- struct obj_section *section,
- int warn_if_readin)
+struct compunit_symtab *
+psymbol_functions::find_pc_sect_compunit_symtab
+ (struct objfile *objfile,
+ struct bound_minimal_symbol msymbol,
+ CORE_ADDR pc,
+ struct obj_section *section,
+ int warn_if_readin)
{
struct partial_symtab *ps = find_pc_sect_psymtab (objfile, pc, section,
msymbol);
@@ -449,10 +450,10 @@ find_pc_sect_psymbol (struct objfile *objfile,
/* Psymtab version of lookup_symbol. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static struct compunit_symtab *
-psym_lookup_symbol (struct objfile *objfile,
- block_enum block_index, const char *name,
- const domain_enum domain)
+struct compunit_symtab *
+psymbol_functions::lookup_symbol (struct objfile *objfile,
+ block_enum block_index, const char *name,
+ const domain_enum domain)
{
const int psymtab_index = (block_index == GLOBAL_BLOCK ? 1 : 0);
struct compunit_symtab *stab_best = NULL;
@@ -500,9 +501,11 @@ psym_lookup_symbol (struct objfile *objfile,
/* Psymtab version of lookup_global_symbol_language. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static enum language
-psym_lookup_global_symbol_language (struct objfile *objfile, const char *name,
- domain_enum domain, bool *symbol_found_p)
+enum language
+psymbol_functions::lookup_global_symbol_language (struct objfile *objfile,
+ const char *name,
+ domain_enum domain,
+ bool *symbol_found_p)
{
*symbol_found_p = false;
if (objfile->sf == NULL)
@@ -754,8 +757,8 @@ psymtab_to_symtab (struct objfile *objfile, struct partial_symtab *pst)
/* Psymtab version of find_last_source_symtab. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static struct symtab *
-psym_find_last_source_symtab (struct objfile *ofp)
+struct symtab *
+psymbol_functions::find_last_source_symtab (struct objfile *ofp)
{
struct partial_symtab *cs_pst = NULL;
@@ -792,8 +795,8 @@ psym_find_last_source_symtab (struct objfile *ofp)
/* Psymtab version of forget_cached_source_info. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static void
-psym_forget_cached_source_info (struct objfile *objfile)
+void
+psymbol_functions::forget_cached_source_info (struct objfile *objfile)
{
for (partial_symtab *pst : require_partial_symbols (objfile, true))
{
@@ -975,8 +978,8 @@ dump_psymtab (struct objfile *objfile, struct partial_symtab *psymtab,
/* Psymtab version of print_stats. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static void
-psym_print_stats (struct objfile *objfile)
+void
+psymbol_functions::print_stats (struct objfile *objfile)
{
int i;
@@ -992,8 +995,8 @@ psym_print_stats (struct objfile *objfile)
/* Psymtab version of dump. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static void
-psym_dump (struct objfile *objfile)
+void
+psymbol_functions::dump (struct objfile *objfile)
{
struct partial_symtab *psymtab;
@@ -1017,9 +1020,9 @@ psym_dump (struct objfile *objfile)
/* Psymtab version of expand_symtabs_for_function. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static void
-psym_expand_symtabs_for_function (struct objfile *objfile,
- const char *func_name)
+void
+psymbol_functions::expand_symtabs_for_function (struct objfile *objfile,
+ const char *func_name)
{
lookup_name_info base_lookup (func_name, symbol_name_match_type::FULL);
lookup_name_info lookup_name = base_lookup.make_ignore_params ();
@@ -1040,8 +1043,8 @@ psym_expand_symtabs_for_function (struct objfile *objfile,
/* Psymtab version of expand_all_symtabs. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static void
-psym_expand_all_symtabs (struct objfile *objfile)
+void
+psymbol_functions::expand_all_symtabs (struct objfile *objfile)
{
for (partial_symtab *psymtab : require_partial_symbols (objfile, true))
psymtab_to_symtab (objfile, psymtab);
@@ -1050,9 +1053,9 @@ psym_expand_all_symtabs (struct objfile *objfile)
/* Psymtab version of expand_symtabs_with_fullname. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static void
-psym_expand_symtabs_with_fullname (struct objfile *objfile,
- const char *fullname)
+void
+psymbol_functions::expand_symtabs_with_fullname (struct objfile *objfile,
+ const char *fullname)
{
for (partial_symtab *p : require_partial_symbols (objfile, true))
{
@@ -1072,10 +1075,11 @@ psym_expand_symtabs_with_fullname (struct objfile *objfile,
/* Psymtab version of map_symbol_filenames. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static void
-psym_map_symbol_filenames (struct objfile *objfile,
- symbol_filename_ftype *fun, void *data,
- int need_fullname)
+void
+psymbol_functions::map_symbol_filenames (struct objfile *objfile,
+ symbol_filename_ftype *fun,
+ void *data,
+ int need_fullname)
{
for (partial_symtab *ps : require_partial_symbols (objfile, true))
{
@@ -1148,8 +1152,8 @@ psymtab_to_fullname (struct partial_symtab *ps)
/* Psymtab version of map_matching_symbols. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static void
-psym_map_matching_symbols
+void
+psymbol_functions::map_matching_symbols
(struct objfile *objfile,
const lookup_name_info &name, domain_enum domain,
int global,
@@ -1273,8 +1277,8 @@ recursively_search_psymtabs
/* Psymtab version of expand_symtabs_matching. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static void
-psym_expand_symtabs_matching
+void
+psymbol_functions::expand_symtabs_matching
(struct objfile *objfile,
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
const lookup_name_info *lookup_name,
@@ -1335,8 +1339,8 @@ psym_expand_symtabs_matching
/* Psymtab version of has_symbols. See its definition in
the definition of quick_symbol_functions in symfile.h. */
-static bool
-psym_has_symbols (struct objfile *objfile)
+bool
+psymbol_functions::has_symbols (struct objfile *objfile)
{
return objfile->partial_symtabs->psymtabs != NULL;
}
@@ -1367,9 +1371,9 @@ psym_fill_psymbol_map (struct objfile *objfile,
/* See find_compunit_symtab_by_address in quick_symbol_functions, in
symfile.h. */
-static compunit_symtab *
-psym_find_compunit_symtab_by_address (struct objfile *objfile,
- CORE_ADDR address)
+compunit_symtab *
+psymbol_functions::find_compunit_symtab_by_address (struct objfile *objfile,
+ CORE_ADDR address)
{
if (objfile->psymbol_map.empty ())
{
@@ -1409,25 +1413,11 @@ psym_find_compunit_symtab_by_address (struct objfile *objfile,
return psymtab_to_symtab (objfile, iter->second);
}
-const struct quick_symbol_functions psym_functions =
+quick_symbol_functions_up
+make_psymbol_functions ()
{
- psym_has_symbols,
- psym_find_last_source_symtab,
- psym_forget_cached_source_info,
- psym_map_symtabs_matching_filename,
- psym_lookup_symbol,
- psym_lookup_global_symbol_language,
- psym_print_stats,
- psym_dump,
- psym_expand_symtabs_for_function,
- psym_expand_all_symtabs,
- psym_expand_symtabs_with_fullname,
- psym_map_matching_symbols,
- psym_expand_symtabs_matching,
- psym_find_pc_sect_compunit_symtab,
- psym_find_compunit_symtab_by_address,
- psym_map_symbol_filenames
-};
+ return quick_symbol_functions_up (new psymbol_functions);
+}