From 6a053cb1ff643cec3349d7f2f47ae5573f82d613 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 6 Jan 2020 14:34:52 -0700 Subject: Change section_offsets to a std::vector This changes section_offsets to be specialization of a std::vector and updates all the users. It also removes the ANOFFSET and SIZEOF_N_SECTION_OFFSETS macros. Most of this is just a generic sort of cleanup, that reduces the number of lines of code. However, a couple spots were doing weird things. objfile_relocate did: - std::vector - new_debug_offsets (SIZEOF_N_SECTION_OFFSETS (debug_objfile->num_sections)); ... which seems to greatly over-estimate the number of elements needed. This appeared in set_objfile_default_section_offset: - std::vector offsets (objf->num_sections, - { { offset } }); ... which makes sense due to type safety, but is also actively confusing given that section_offsets was previously also a kind of vector type. Tested on x86-64 Fedora 30. gdb/ChangeLog 2020-01-08 Tom Tromey * xcoffread.c (enter_line_range, read_xcoff_symtab) (process_xcoff_symbol, xcoff_symfile_offsets): Update. * symtab.h (MSYMBOL_VALUE_ADDRESS): Update. (struct section_offsets, ANOFFSET, SIZEOF_N_SECTION_OFFSETS): Remove. (section_offsets): New typedef. * symtab.c (fixup_section, get_msymbol_address): Update. * symmisc.c (dump_msymbols): Update. * symfile.h (relative_addr_info_to_section_offsets) (symfile_map_offsets_to_segments): Update. * symfile.c (build_section_addr_info_from_objfile) (init_objfile_sect_indices): Update. (struct place_section_arg): Change type of "offsets". (place_section): Update. (relative_addr_info_to_section_offsets): Change type of "section_offsets". Remove "num_sections" parameter. (default_symfile_offsets, syms_from_objfile_1) (set_objfile_default_section_offset): Update. (reread_symbols): No need to preserve section offsets by hand. (symfile_map_offsets_to_segments): Change type of "offsets". * stap-probe.c (relocate_address): Update. * stabsread.h (process_one_symbol): Update. * solib-target.c (struct lm_info_target) : Change type. (solib_target_relocate_section_addresses): Update. * solib-svr4.c (enable_break, svr4_relocate_main_executable): Update. * solib-frv.c (frv_relocate_main_executable): Update. * solib-dsbt.c (dsbt_relocate_main_executable): Update. * solib-aix.c (solib_aix_get_section_offsets): Change return type. (solib_aix_solib_create_inferior_hook): Update. * remote.c (remote_target::get_offsets): Update. * psymtab.c (find_pc_sect_psymtab): Update. * psympriv.h (struct partial_symbol) : Update. * objfiles.h (obj_section_offset): Update. (struct objfile) : Change type. : Remove. (objfile_relocate): Update. * objfiles.c (entry_point_address_query): Update (relocate_one_symbol): Change type of "section_offsets". (objfile_relocate1, objfile_relocate1): Change type of "new_offsets". (objfile_rebase1): Update. * mipsread.c (mipscoff_symfile_read): Update. (read_alphacoff_dynamic_symtab): Remove "section_offsets" parameter. * mdebugread.c (parse_symbol): Change type of "section_offsets". (parse_external, psymtab_to_symtab_1): Update. * machoread.c (macho_symfile_offsets): Update. * ia64-tdep.c (ia64_find_unwind_table): Update. * hppa-tdep.c (read_unwind_info): Update. * hppa-bsd-tdep.c (hppabsd_find_global_pointer): Update. * dwarf2read.c (create_addrmap_from_index) (create_addrmap_from_aranges, dw2_find_pc_sect_compunit_symtab) (process_psymtab_comp_unit_reader, add_partial_symbol) (add_partial_subprogram, process_full_comp_unit) (read_file_scope, read_func_scope, read_lexical_block_scope) (read_call_site_scope, dwarf2_rnglists_process) (dwarf2_ranges_process, dwarf2_ranges_read) (dwarf_decode_lines_1, var_decode_location, new_symbol) (dwarf2_fetch_die_loc_sect_off, dwarf2_per_cu_text_offset): Update. * dwarf2-frame.c (execute_cfa_program, dwarf2_frame_find_fde): Update. * dtrace-probe.c (dtrace_probe::get_relocated_address): Update. * dbxread.c (read_dbx_symtab, read_ofile_symtab): Update. (process_one_symbol): Change type of "section_offsets". * ctfread.c (get_objfile_text_range): Update. * coffread.c (coff_symtab_read, enter_linenos) (process_coff_symbol): Update. * coff-pe-read.c (add_pe_forwarded_sym): Update. * amd64-windows-tdep.c (amd64_windows_find_unwind_info): Update. Change-Id: I147eb967e9b44d82f4048039de7bb44b80cd72fb --- gdb/ChangeLog | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) (limited to 'gdb/ChangeLog') diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9733a10..b10989a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,81 @@ 2020-01-08 Tom Tromey + * xcoffread.c (enter_line_range, read_xcoff_symtab) + (process_xcoff_symbol, xcoff_symfile_offsets): Update. + * symtab.h (MSYMBOL_VALUE_ADDRESS): Update. + (struct section_offsets, ANOFFSET, SIZEOF_N_SECTION_OFFSETS): + Remove. + (section_offsets): New typedef. + * symtab.c (fixup_section, get_msymbol_address): Update. + * symmisc.c (dump_msymbols): Update. + * symfile.h (relative_addr_info_to_section_offsets) + (symfile_map_offsets_to_segments): Update. + * symfile.c (build_section_addr_info_from_objfile) + (init_objfile_sect_indices): Update. + (struct place_section_arg): Change type of "offsets". + (place_section): Update. + (relative_addr_info_to_section_offsets): Change type of + "section_offsets". Remove "num_sections" parameter. + (default_symfile_offsets, syms_from_objfile_1) + (set_objfile_default_section_offset): Update. + (reread_symbols): No need to preserve section offsets by hand. + (symfile_map_offsets_to_segments): Change type of "offsets". + * stap-probe.c (relocate_address): Update. + * stabsread.h (process_one_symbol): Update. + * solib-target.c (struct lm_info_target) : Change type. + (solib_target_relocate_section_addresses): Update. + * solib-svr4.c (enable_break, svr4_relocate_main_executable): + Update. + * solib-frv.c (frv_relocate_main_executable): Update. + * solib-dsbt.c (dsbt_relocate_main_executable): Update. + * solib-aix.c (solib_aix_get_section_offsets): Change return + type. + (solib_aix_solib_create_inferior_hook): Update. + * remote.c (remote_target::get_offsets): Update. + * psymtab.c (find_pc_sect_psymtab): Update. + * psympriv.h (struct partial_symbol) : Update. + * objfiles.h (obj_section_offset): Update. + (struct objfile) : Change type. + : Remove. + (objfile_relocate): Update. + * objfiles.c (entry_point_address_query): Update + (relocate_one_symbol): Change type of "section_offsets". + (objfile_relocate1, objfile_relocate1): Change type of + "new_offsets". + (objfile_rebase1): Update. + * mipsread.c (mipscoff_symfile_read): Update. + (read_alphacoff_dynamic_symtab): Remove "section_offsets" + parameter. + * mdebugread.c (parse_symbol): Change type of "section_offsets". + (parse_external, psymtab_to_symtab_1): Update. + * machoread.c (macho_symfile_offsets): Update. + * ia64-tdep.c (ia64_find_unwind_table): Update. + * hppa-tdep.c (read_unwind_info): Update. + * hppa-bsd-tdep.c (hppabsd_find_global_pointer): Update. + * dwarf2read.c (create_addrmap_from_index) + (create_addrmap_from_aranges, dw2_find_pc_sect_compunit_symtab) + (process_psymtab_comp_unit_reader, add_partial_symbol) + (add_partial_subprogram, process_full_comp_unit) + (read_file_scope, read_func_scope, read_lexical_block_scope) + (read_call_site_scope, dwarf2_rnglists_process) + (dwarf2_ranges_process, dwarf2_ranges_read) + (dwarf_decode_lines_1, var_decode_location, new_symbol) + (dwarf2_fetch_die_loc_sect_off, dwarf2_per_cu_text_offset): + Update. + * dwarf2-frame.c (execute_cfa_program, dwarf2_frame_find_fde): + Update. + * dtrace-probe.c (dtrace_probe::get_relocated_address): Update. + * dbxread.c (read_dbx_symtab, read_ofile_symtab): Update. + (process_one_symbol): Change type of "section_offsets". + * ctfread.c (get_objfile_text_range): Update. + * coffread.c (coff_symtab_read, enter_linenos) + (process_coff_symbol): Update. + * coff-pe-read.c (add_pe_forwarded_sym): Update. + * amd64-windows-tdep.c (amd64_windows_find_unwind_info): Update. + +2020-01-08 Tom Tromey + * dwarf2read.c (parse_macro_definition): Use std::string. (parse_macro_definition): Likewise. -- cgit v1.1