diff options
author | Tom Tromey <tom@tromey.com> | 2018-11-23 12:20:05 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-01-09 18:28:14 -0700 |
commit | aed57c537116ae91f553ac835b3f96d1f87b3bb0 (patch) | |
tree | c2699609b04041be0ab313616b8a20e771a7a47e /gdb/psymtab.c | |
parent | 99d89cdea6c296bdd94ce532350d139d3900ff78 (diff) | |
download | gdb-aed57c537116ae91f553ac835b3f96d1f87b3bb0.zip gdb-aed57c537116ae91f553ac835b3f96d1f87b3bb0.tar.gz gdb-aed57c537116ae91f553ac835b3f96d1f87b3bb0.tar.bz2 |
Remove most uses of ALL_OBJFILES
This removes most uses of ALL_OBJFILES, replacing them with ranged for
loops. The remaining uses are all in macros, and will be removed in
subsequent patches.
gdb/ChangeLog
2019-01-09 Tom Tromey <tom@tromey.com>
* symtab.c (iterate_over_symtabs, matching_obj_sections)
(expand_symtab_containing_pc, lookup_static_symbol)
(basic_lookup_transparent_type, find_pc_sect_compunit_symtab)
(find_symbol_at_address, find_line_symtab, find_main_name): Use
all_objfiles.
* probe.c (find_probe_by_pc, collect_probes): Use all_objfiles.
* breakpoint.c (create_overlay_event_breakpoint)
(create_longjmp_master_breakpoint)
(create_std_terminate_master_breakpoint)
(create_exception_master_breakpoint): Use all_objfiles.
* linux-thread-db.c (try_thread_db_load_from_pdir)
(has_libpthread): Use all_objfiles.
* ada-lang.c (add_nonlocal_symbols): Use all_objfiles.
* linespec.c (iterate_over_all_matching_symtabs)
(search_minsyms_for_name): Use all_objfiles.
* maint.c (maintenance_info_sections): Use all_objfiles.
* main.c (captured_main_1): Use all_objfiles.
* spu-tdep.c (spu_objfile_from_frame): Use all_objfiles.
* guile/scm-objfile.c (gdbscm_objfiles): Use all_objfiles.
* guile/scm-pretty-print.c
(ppscm_find_pretty_printer_from_objfiles): Use all_objfiles.
* solib-spu.c (append_ocl_sos): Use all_objfiles.
* symmisc.c (maintenance_print_symbols): Use all_objfiles.
(maintenance_print_msymbols): Use all_objfiles.
* source.c (select_source_symtab): Use all_objfiles.
* jit.c (jit_find_objf_with_entry_addr): Use all_objfiles.
* symfile.c (remove_symbol_file_command)
(expand_symtabs_matching, map_symbol_filenames): Use
all_objfiles.
* ppc-linux-tdep.c (ppc_linux_spe_context_inferior_created): Use
all_objfiles.
* dwarf2-frame.c (dwarf2_frame_find_fde): Use all_objfiles.
* objc-lang.c (find_methods): Use all_objfiles.
* objfiles.c (have_partial_symbols, have_full_symbols)
(have_minimal_symbols, qsort_cmp)
(default_iterate_over_objfiles_in_search_order): Use
all_objfiles.
* hppa-tdep.c (find_unwind_entry): Use all_objfiles.
* psymtab.c (maintenance_print_psymbols): Use all_objfiles.
(maintenance_check_psymtabs): Use all_objfiles.
(ALL_PSYMTABS): Remove.
* compile/compile-object-run.c (do_module_cleanup): Use
all_objfiles.
* blockframe.c (find_pc_partial_function): Use all_objfiles.
* cp-support.c (add_symbol_overload_list_qualified): Use
all_objfiles.
* windows-tdep.c (windows_iterate_over_objfiles_in_search_order):
Use all_objfiles.
* dwarf-index-write.c (save_gdb_index_command): Use all_objfiles.
* python/py-xmethods.c (gdbpy_get_matching_xmethod_workers): Use
all_objfiles.
* python/py-objfile.c (objfpy_lookup_objfile_by_name)
(objfpy_lookup_objfile_by_build_id): Use all_objfiles.
* python/py-prettyprint.c (find_pretty_printer_from_objfiles):
Uses all_objfiles.
* solib.c (solib_read_symbols): Use all_objfiles
Diffstat (limited to 'gdb/psymtab.c')
-rw-r--r-- | gdb/psymtab.c | 159 |
1 files changed, 76 insertions, 83 deletions
diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 804558e..cd1f503 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -108,12 +108,6 @@ require_partial_symbols (struct objfile *objfile, int verbose) #undef ALL_OBJFILE_PSYMTABS -/* Traverse all psymtabs in all objfiles. */ - -#define ALL_PSYMTABS(objfile, p) \ - ALL_OBJFILES (objfile) \ - ALL_OBJFILE_PSYMTABS_REQUIRED (objfile, p) - /* Helper function for psym_map_symtabs_matching_filename that expands the symtabs and calls the iterator. */ @@ -1874,7 +1868,6 @@ maintenance_print_psymbols (const char *args, int from_tty) { struct ui_file *outfile = gdb_stdout; char *address_arg = NULL, *source_arg = NULL, *objfile_arg = NULL; - struct objfile *objfile; struct partial_symtab *ps; int i, outfile_idx, found; CORE_ADDR pc = 0; @@ -1944,7 +1937,7 @@ maintenance_print_psymbols (const char *args, int from_tty) } found = 0; - ALL_OBJFILES (objfile) + for (objfile *objfile : all_objfiles (current_program_space)) { int printed_objfile_header = 0; int print_for_objfile = 1; @@ -2148,93 +2141,93 @@ maintenance_check_psymtabs (const char *ignore, int from_tty) struct compunit_symtab *cust = NULL; struct partial_symtab *ps; const struct blockvector *bv; - struct objfile *objfile; struct block *b; int length; - ALL_PSYMTABS (objfile, ps) - { - struct gdbarch *gdbarch = get_objfile_arch (objfile); - - /* We don't call psymtab_to_symtab here because that may cause symtab - expansion. When debugging a problem it helps if checkers leave - things unchanged. */ - cust = ps->compunit_symtab; - - /* First do some checks that don't require the associated symtab. */ - if (ps->text_high (objfile) < ps->text_low (objfile)) + for (objfile *objfile : all_objfiles (current_program_space)) + ALL_OBJFILE_PSYMTABS_REQUIRED (objfile, ps) { - printf_filtered ("Psymtab "); - puts_filtered (ps->filename); - printf_filtered (" covers bad range "); - fputs_filtered (paddress (gdbarch, ps->text_low (objfile)), - gdb_stdout); - printf_filtered (" - "); - fputs_filtered (paddress (gdbarch, ps->text_high (objfile)), - gdb_stdout); - printf_filtered ("\n"); - continue; - } + struct gdbarch *gdbarch = get_objfile_arch (objfile); - /* Now do checks requiring the associated symtab. */ - if (cust == NULL) - continue; - bv = COMPUNIT_BLOCKVECTOR (cust); - b = BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK); - partial_symbol **psym = &objfile->static_psymbols[ps->statics_offset]; - length = ps->n_static_syms; - while (length--) - { - sym = block_lookup_symbol (b, symbol_search_name (*psym), - symbol_name_match_type::SEARCH_NAME, - (*psym)->domain); - if (!sym) + /* We don't call psymtab_to_symtab here because that may cause symtab + expansion. When debugging a problem it helps if checkers leave + things unchanged. */ + cust = ps->compunit_symtab; + + /* First do some checks that don't require the associated symtab. */ + if (ps->text_high (objfile) < ps->text_low (objfile)) { - printf_filtered ("Static symbol `"); - puts_filtered ((*psym)->name); - printf_filtered ("' only found in "); + printf_filtered ("Psymtab "); puts_filtered (ps->filename); - printf_filtered (" psymtab\n"); + printf_filtered (" covers bad range "); + fputs_filtered (paddress (gdbarch, ps->text_low (objfile)), + gdb_stdout); + printf_filtered (" - "); + fputs_filtered (paddress (gdbarch, ps->text_high (objfile)), + gdb_stdout); + printf_filtered ("\n"); + continue; } - psym++; - } - b = BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK); - psym = &objfile->global_psymbols[ps->globals_offset]; - length = ps->n_global_syms; - while (length--) - { - sym = block_lookup_symbol (b, symbol_search_name (*psym), - symbol_name_match_type::SEARCH_NAME, - (*psym)->domain); - if (!sym) + + /* Now do checks requiring the associated symtab. */ + if (cust == NULL) + continue; + bv = COMPUNIT_BLOCKVECTOR (cust); + b = BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK); + partial_symbol **psym = &objfile->static_psymbols[ps->statics_offset]; + length = ps->n_static_syms; + while (length--) + { + sym = block_lookup_symbol (b, symbol_search_name (*psym), + symbol_name_match_type::SEARCH_NAME, + (*psym)->domain); + if (!sym) + { + printf_filtered ("Static symbol `"); + puts_filtered ((*psym)->name); + printf_filtered ("' only found in "); + puts_filtered (ps->filename); + printf_filtered (" psymtab\n"); + } + psym++; + } + b = BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK); + psym = &objfile->global_psymbols[ps->globals_offset]; + length = ps->n_global_syms; + while (length--) { - printf_filtered ("Global symbol `"); - puts_filtered ((*psym)->name); - printf_filtered ("' only found in "); + sym = block_lookup_symbol (b, symbol_search_name (*psym), + symbol_name_match_type::SEARCH_NAME, + (*psym)->domain); + if (!sym) + { + printf_filtered ("Global symbol `"); + puts_filtered ((*psym)->name); + printf_filtered ("' only found in "); + puts_filtered (ps->filename); + printf_filtered (" psymtab\n"); + } + psym++; + } + if (ps->raw_text_high () != 0 + && (ps->text_low (objfile) < BLOCK_START (b) + || ps->text_high (objfile) > BLOCK_END (b))) + { + printf_filtered ("Psymtab "); puts_filtered (ps->filename); - printf_filtered (" psymtab\n"); + printf_filtered (" covers "); + fputs_filtered (paddress (gdbarch, ps->text_low (objfile)), + gdb_stdout); + printf_filtered (" - "); + fputs_filtered (paddress (gdbarch, ps->text_high (objfile)), + gdb_stdout); + printf_filtered (" but symtab covers only "); + fputs_filtered (paddress (gdbarch, BLOCK_START (b)), gdb_stdout); + printf_filtered (" - "); + fputs_filtered (paddress (gdbarch, BLOCK_END (b)), gdb_stdout); + printf_filtered ("\n"); } - psym++; } - if (ps->raw_text_high () != 0 - && (ps->text_low (objfile) < BLOCK_START (b) - || ps->text_high (objfile) > BLOCK_END (b))) - { - printf_filtered ("Psymtab "); - puts_filtered (ps->filename); - printf_filtered (" covers "); - fputs_filtered (paddress (gdbarch, ps->text_low (objfile)), - gdb_stdout); - printf_filtered (" - "); - fputs_filtered (paddress (gdbarch, ps->text_high (objfile)), - gdb_stdout); - printf_filtered (" but symtab covers only "); - fputs_filtered (paddress (gdbarch, BLOCK_START (b)), gdb_stdout); - printf_filtered (" - "); - fputs_filtered (paddress (gdbarch, BLOCK_END (b)), gdb_stdout); - printf_filtered ("\n"); - } - } } void |