diff options
author | Tom Tromey <tom@tromey.com> | 2023-12-06 14:35:21 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2024-01-18 08:20:16 -0700 |
commit | 9fac3e79fdec94b53fffdab6e8605d0ff8bab9d6 (patch) | |
tree | ec441a8a21903db57382a2f301f3195a3aed6ee7 /gdb/dwarf2 | |
parent | 5902fa8a555c43780dedfde1ed1a8be933b395f9 (diff) | |
download | gdb-9fac3e79fdec94b53fffdab6e8605d0ff8bab9d6.zip gdb-9fac3e79fdec94b53fffdab6e8605d0ff8bab9d6.tar.gz gdb-9fac3e79fdec94b53fffdab6e8605d0ff8bab9d6.tar.bz2 |
Move cooked_index_functions to cooked-index.h
This moves the declaration of cooked_index_functions to
cooked-index.h. This makes it visible for use by the rewritten
.debug_names reader, and it also lets us move the implementation of
make_quick_functions into cooked-index.c, where it really belongs.
Diffstat (limited to 'gdb/dwarf2')
-rw-r--r-- | gdb/dwarf2/cooked-index.c | 6 | ||||
-rw-r--r-- | gdb/dwarf2/cooked-index.h | 94 | ||||
-rw-r--r-- | gdb/dwarf2/read.c | 100 |
3 files changed, 100 insertions, 100 deletions
diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c index 54c6229..542ec2f 100644 --- a/gdb/dwarf2/cooked-index.c +++ b/gdb/dwarf2/cooked-index.c @@ -616,6 +616,12 @@ cooked_index::get_main () const return best_entry; } +quick_symbol_functions_up +cooked_index::make_quick_functions () const +{ + return quick_symbol_functions_up (new cooked_index_functions); +} + /* See cooked-index.h. */ void diff --git a/gdb/dwarf2/cooked-index.h b/gdb/dwarf2/cooked-index.h index 6caa813..24c83b5 100644 --- a/gdb/dwarf2/cooked-index.h +++ b/gdb/dwarf2/cooked-index.h @@ -737,4 +737,98 @@ private: dwarf2_per_bfd *m_per_bfd; }; +/* An implementation of quick_symbol_functions for the cooked DWARF + index. */ + +struct cooked_index_functions : public dwarf2_base_index_functions +{ + cooked_index *wait (struct objfile *objfile, bool allow_quit) + { + dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile); + cooked_index *table + = (gdb::checked_static_cast<cooked_index *> + (per_objfile->per_bfd->index_table.get ())); + table->wait (cooked_state::MAIN_AVAILABLE, allow_quit); + return table; + } + + dwarf2_per_cu_data *find_per_cu (dwarf2_per_bfd *per_bfd, + unrelocated_addr adjusted_pc) override; + + struct compunit_symtab *find_compunit_symtab_by_address + (struct objfile *objfile, CORE_ADDR address) override; + + bool has_unexpanded_symtabs (struct objfile *objfile) override + { + wait (objfile, true); + return dwarf2_base_index_functions::has_unexpanded_symtabs (objfile); + } + + struct symtab *find_last_source_symtab (struct objfile *objfile) override + { + wait (objfile, true); + return dwarf2_base_index_functions::find_last_source_symtab (objfile); + } + + void forget_cached_source_info (struct objfile *objfile) override + { + wait (objfile, true); + dwarf2_base_index_functions::forget_cached_source_info (objfile); + } + + void print_stats (struct objfile *objfile, bool print_bcache) override + { + wait (objfile, true); + dwarf2_base_index_functions::print_stats (objfile, print_bcache); + } + + void dump (struct objfile *objfile) override + { + cooked_index *index = wait (objfile, true); + gdb_printf ("Cooked index in use:\n"); + gdb_printf ("\n"); + index->dump (objfile->arch ()); + } + + void expand_all_symtabs (struct objfile *objfile) override + { + wait (objfile, true); + dwarf2_base_index_functions::expand_all_symtabs (objfile); + } + + bool expand_symtabs_matching + (struct objfile *objfile, + gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher, + const lookup_name_info *lookup_name, + gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher, + gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify, + block_search_flags search_flags, + domain_enum domain, + enum search_domain kind) override; + + struct compunit_symtab *find_pc_sect_compunit_symtab + (struct objfile *objfile, struct bound_minimal_symbol msymbol, + CORE_ADDR pc, struct obj_section *section, int warn_if_readin) override + { + wait (objfile, true); + return (dwarf2_base_index_functions::find_pc_sect_compunit_symtab + (objfile, msymbol, pc, section, warn_if_readin)); + } + + void map_symbol_filenames + (struct objfile *objfile, + gdb::function_view<symbol_filename_ftype> fun, + bool need_fullname) override + { + wait (objfile, true); + return (dwarf2_base_index_functions::map_symbol_filenames + (objfile, fun, need_fullname)); + } + + void compute_main_name (struct objfile *objfile) override + { + wait (objfile, false); + } +}; + #endif /* GDB_DWARF2_COOKED_INDEX_H */ diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index cac194d..8010c01 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -16651,100 +16651,6 @@ cooked_indexer::make_index (cutu_reader *reader) } } -/* An implementation of quick_symbol_functions for the cooked DWARF - index. */ - -struct cooked_index_functions : public dwarf2_base_index_functions -{ - cooked_index *wait (struct objfile *objfile, bool allow_quit) - { - dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile); - cooked_index *table - = (gdb::checked_static_cast<cooked_index *> - (per_objfile->per_bfd->index_table.get ())); - table->wait (cooked_state::MAIN_AVAILABLE, allow_quit); - return table; - } - - dwarf2_per_cu_data *find_per_cu (dwarf2_per_bfd *per_bfd, - unrelocated_addr adjusted_pc) override; - - struct compunit_symtab *find_compunit_symtab_by_address - (struct objfile *objfile, CORE_ADDR address) override; - - bool has_unexpanded_symtabs (struct objfile *objfile) override - { - wait (objfile, true); - return dwarf2_base_index_functions::has_unexpanded_symtabs (objfile); - } - - struct symtab *find_last_source_symtab (struct objfile *objfile) override - { - wait (objfile, true); - return dwarf2_base_index_functions::find_last_source_symtab (objfile); - } - - void forget_cached_source_info (struct objfile *objfile) override - { - wait (objfile, true); - dwarf2_base_index_functions::forget_cached_source_info (objfile); - } - - void print_stats (struct objfile *objfile, bool print_bcache) override - { - wait (objfile, true); - dwarf2_base_index_functions::print_stats (objfile, print_bcache); - } - - void dump (struct objfile *objfile) override - { - cooked_index *index = wait (objfile, true); - gdb_printf ("Cooked index in use:\n"); - gdb_printf ("\n"); - index->dump (objfile->arch ()); - } - - void expand_all_symtabs (struct objfile *objfile) override - { - wait (objfile, true); - dwarf2_base_index_functions::expand_all_symtabs (objfile); - } - - bool expand_symtabs_matching - (struct objfile *objfile, - gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher, - const lookup_name_info *lookup_name, - gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher, - gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify, - block_search_flags search_flags, - domain_enum domain, - enum search_domain kind) override; - - struct compunit_symtab *find_pc_sect_compunit_symtab - (struct objfile *objfile, struct bound_minimal_symbol msymbol, - CORE_ADDR pc, struct obj_section *section, int warn_if_readin) override - { - wait (objfile, true); - return (dwarf2_base_index_functions::find_pc_sect_compunit_symtab - (objfile, msymbol, pc, section, warn_if_readin)); - } - - void map_symbol_filenames - (struct objfile *objfile, - gdb::function_view<symbol_filename_ftype> fun, - bool need_fullname) override - { - wait (objfile, true); - return (dwarf2_base_index_functions::map_symbol_filenames - (objfile, fun, need_fullname)); - } - - void compute_main_name (struct objfile *objfile) override - { - wait (objfile, false); - } -}; - dwarf2_per_cu_data * cooked_index_functions::find_per_cu (dwarf2_per_bfd *per_bfd, unrelocated_addr adjusted_pc) @@ -16919,12 +16825,6 @@ start_debug_info_reader (dwarf2_per_objfile *per_objfile) idx->start_reading (); } -quick_symbol_functions_up -cooked_index::make_quick_functions () const -{ - return quick_symbol_functions_up (new cooked_index_functions); -} - /* Read the .debug_loclists or .debug_rnglists header (they are the same format) |