
This patch removes the global variable dwarf2_per_objfile. This global variable is set at the various entry points of dwarf2read.c (using dw2_setup), and is referred to throughout the file. Instead of passing data between functions in global variables like this one, it would be better if the functions that depend on it either received it as argument or got it from the existing arguments they receive. For example, a function receiving a reference to a dwarf2_per_cu_data can access it from dwarf2_per_cu_data::dwarf2_per_objfile. This patch has been tested on the buildbot. gdb/ChangeLog: * dwarf2read.c (struct mapped_debug_names): Add constructor. <dwarf2_per_objfile>: New field. (dwarf2_per_objfile): Remove global. (get_dwarf2_per_objfile): New function. (set_dwarf2_per_objfile): New function. (dwarf2_build_psymtabs_hard): Change objfile parameter to dwarf2_per_objfile. (abbrev_table_read_table): Add dwarf2_per_objfile parameter. (read_abbrev_offset): Likewise. (read_indirect_string): Likewise. (read_indirect_line_string): Likewise. (read_indirect_string_at_offset): Likewise. (read_indirect_string_from_dwz): Likewise. (dwarf2_find_containing_comp_unit): Change objfile parameter to dwarf2_per_objfile. (age_cached_comp_units): Add dwarf2_per_objfile parameter. (create_all_comp_units): Change objfile parameter to dwarf2_per_objfile. (create_all_type_units): Likewise. (process_queue): Add dwarf2_per_objfile parameter. (read_and_check_comp_unit_head): Likewise. (lookup_dwo_unit_in_dwp): Likewise. (get_dwp_file): Likewise. (process_cu_includes): Likewise. (struct free_dwo_file_cleanup_data): New struct. (dwarf2_has_info): Use get_dwarf2_per_objfile and set_dwarf2_per_objfile. (dwarf2_get_dwz_file): Add dwarf2_per_objfile parameter. (dw2_do_instantiate_symtab): Get dwarf2_per_objfile from context, adjust calls. (dw2_instantiate_symtab): Likewise. (dw2_get_cutu): Add dwarf2_per_objfile parameter. (dw2_get_cu): Likewise. (create_cu_from_index_list): Change objfile parameter to dwarf2_per_objfile. (create_cus_from_index_list): Get dwarf2_per_objfile from context, adjust calls. (create_cus_from_index): Likewise. (create_signatured_type_table_from_index): Change objfile parameter to dwarf2_per_objfile. (create_signatured_type_table_from_debug_names): Change objfile parameter to dwarf2_per_objfile. (create_addrmap_from_index): Likewise. (create_addrmap_from_aranges): Likewise. (dwarf2_read_index): Use get_dwarf2_per_objfile, adjust calls. (dw2_setup): Remove. (dw2_get_file_names_reader): Get dwarf2_per_objfile from context. (dw2_find_last_source_symtab): Get dwarf2_per_objfile using get_dwarf2_per_objfile. (dw2_forget_cached_source_info): Likewise. (dw2_map_symtabs_matching_filename): Likewise. (struct dw2_symtab_iterator) <index>: Remove. <dwarf2_per_objfile>: New field. (dw2_symtab_iter_init): Replace index parameter with dwarf2_per_objfile. (dw2_symtab_iter_next): Use dwarf2_per_objfile from iter. (dw2_lookup_symbol): Use get_dwarf2_per_objfile and adjust. (dw2_print_stats): Likewise. (dw2_dump): Likewise. (dw2_expand_symtabs_for_function): Likewise. (dw2_expand_all_symtabs): Likewise. (dw2_expand_symtabs_with_fullname): Likewise. (dw2_expand_marked_cus): Replace index and objfile parameters with dwarf2_per_objfile. (dw_expand_symtabs_matching_file_matcher): Add dwarf2_per_objfile parameter and adjust calls. (dw2_expand_symtabs_matching): Use get_dwarf2_per_objfile and adjust calls. (dw2_find_pc_sect_compunit_symtab): Don't call dw2_setup. (dw2_map_symbol_filenames): Use get_dwarf2_per_objfile and adjust calls. (create_cus_from_debug_names_list): Replace objfile parameter with dwarf2_per_objfile and adjust calls. (create_cus_from_debug_names): Likewise. (dwarf2_read_debug_names): Likewise. (mapped_debug_names::namei_to_name): Adjust call. (dw2_debug_names_iterator::next): Likewise. (dw2_debug_names_iterator::find_vec_in_debug_names): Likewise. (dw2_debug_names_lookup_symbol): Use get_dwarf2_per_objfile. (dw2_debug_names_dump): Likewise. (dw2_debug_names_expand_symtabs_for_function): Likewise. (dw2_debug_names_expand_symtabs_matching): Likewise. (dwarf2_initialize_objfile): Likewise. (dwarf2_build_psymtabs): Likewise. (get_abbrev_section_for_cu): Get dwarf2_per_objfile from this_cu. (error_check_comp_unit_head): Add dwarf2_per_objfile parameter. (read_and_check_comp_unit_head): Likewise. (read_abbrev_offset): Likewise. (create_debug_type_hash_table): Likewise. (create_debug_types_hash_table): Likewise. (create_all_type_units): Replace objfile parameter with dwarf2_per_objfile. (add_type_unit): Add dwarf2_per_objfile parameter. (fill_in_sig_entry_from_dwo_entry): Replace objfile parameter with dwarf2_per_objfile. (lookup_dwo_signatured_type): Get dwarf2_per_objfile from cu. (lookup_dwp_signatured_type): Likewise. (lookup_signatured_type): Likewise. (read_cutu_die_from_dwo): Likewise. (init_tu_and_read_dwo_dies): Likewise. (init_cutu_and_read_dies): Likewise. (init_cutu_and_read_dies_no_follow): Likewise. (allocate_type_unit_groups_table): Add objfile parameter. (create_type_unit_group): Use dwarf2_per_objfile from cu. (get_type_unit_group): Likewise. (process_psymtab_comp_unit): Update call. (build_type_psymtabs_reader): Use dwarf2_per_objfile from cu. (build_type_psymtabs_1): Add dwarf2_per_objfile parameter. (print_tu_stats): Likewise. (build_type_psymtab_dependencies): Use dwarf2_per_objfile passed in void* parameter. (build_type_psymtabs): Change objfile parameter to dwarf2_per_objfile. (process_skeletonless_type_unit): Use dwarf2_per_objfile passed in void* parameter. (process_skeletonless_type_units): Change objfile parameter to dwarf2_per_objfile. (set_partial_user): Likewise. (dwarf2_build_psymtabs_hard): Likewise. (read_comp_units_from_section): Likewise. (create_all_comp_units): Likewise. (scan_partial_symbols): Update calls. (add_partial_symbol): Likewise. (dwarf2_read_symtab): Use get_dwarf2_per_objfile. (maybe_queue_comp_unit): Use dwarf2_read_symtab from cu. (process_queue): Add dwarf2_per_objfile parameter. (get_compunit_symtab): Use dwarf2_per_objfile from cu. (compute_compunit_symtab_includes): Likewise. (process_cu_includes): Add dwarf2_per_objfile parameter. (process_full_comp_unit): Use dwarf2_per_objfile from cu. (process_full_type_unit): Likewise. (process_imported_unit_die): Update call. (handle_DW_AT_stmt_list): Use dwarf2_per_objfile from cu. (read_file_scope): Likewise. (allocate_dwo_file_hash_table): Add objfile parameter. (lookup_dwo_file_slot): Add dwarf2_per_objfile parameter. (create_cus_hash_table): Likewise. (create_dwp_hash_table): Likewise. (create_dwo_unit_in_dwp_v1): Likewise. (create_dwp_v2_section): Likewise. (create_dwo_unit_in_dwp_v2): Likewise. (lookup_dwo_unit_in_dwp): Likewise. (try_open_dwop_file): Likewise. (open_dwo_file): Likewise. Use dwarf2_per_objfile from cu. (open_and_init_dwo_file): Use dwarf2_per_objfile from cu, update cleanup to include a reference to dwarf2_per_objfile. (open_dwp_file): Add dwarf2_per_objfile parameter. (open_and_init_dwp_file): Likewise. (get_dwp_file): Likewise. (lookup_dwo_cutu): Use dwarf2_per_objfile from cu. (queue_and_load_all_dwo_tus): Update call. (free_dwo_file_cleanup): Use dwarf2_per_objfile from cleanup data. (dwarf2_rnglists_process): Use dwarf2_per_objfile from cu. (dwarf2_ranges_process): Likewise. (dwarf2_get_pc_bounds): Likewise. (mark_common_block_symbol_computed): Likewise. (abbrev_table_read_table): Add dwarf2_per_objfile parameter. (dwarf2_read_abbrevs): Update call. (read_partial_die): Use dwarf2_per_objfile from cu. (find_partial_die): Likewise. (fixup_partial_die): Likewise. (read_attribute_value): Likewise. (read_indirect_string_at_offset_from): Add objfile parameter. (read_indirect_string_at_offset): Add dwarf2_per_objfile parameter. (read_indirect_string_from_dwz): Add objfile parameter. (read_indirect_string): Add objfile parameter. (read_addr_index_1): Add dwarf2_per_objfile parameter. (read_addr_index): Use dwarf2_per_objfile from cu. (dwarf2_read_addr_index): Use dwarf2_per_objfile from cu, don't call dw2_setup. (read_str_index): Use dwarf2_per_objfile from cu. (get_debug_line_section): Likewise. (read_formatted_entries): Add dwarf2_per_objfile parameter. (dwarf_decode_line_header): Use dwarf2_per_objfile from cu. (new_symbol_full): Use dwarf2_per_objfile from cu. (build_error_marker_type): Likewise. (lookup_die_type): Likewise. (determine_prefix): Likewise. (follow_die_offset): Likewise. (dwarf2_fetch_die_loc_sect_off): Use get_dwarf2_per_objfile. (dwarf2_fetch_constant_bytes): Don't call dw2_setup. (dwarf2_fetch_die_type_sect_off): Likewise. (dwarf2_get_die_type): Likewise. (follow_die_sig_1): Use dwarf2_per_objfile from cu. (get_signatured_type): Likewise. (get_DW_AT_signature_type): Likewise. (dwarf_decode_macro_bytes): Add dwarf2_per_objfile parameter. (dwarf_decode_macros): Use dwarf2_per_objfile from cu. (cu_debug_loc_section): Likewise. (fill_in_loclist_baton): Likewise. (dwarf2_symbol_mark_computed): Likewise. (dwarf2_find_containing_comp_unit): Change objfile parameter to dwarf2_per_objfile. (free_cached_comp_units): Use dwarf2_per_objfile passed in void* parameter. (age_cached_comp_units): Add dwarf2_per_objfile parameter. (free_one_cached_comp_unit): Use dwarf2_per_objfile from cu. (dwarf2_free_objfile): Use get_dwarf2_per_objfile. (set_die_type): Use dwarf2_free_objfile from cu. (get_die_type_at_offset): Likewise. (dwarf2_per_objfile_free): Don't assign global variable. (debug_names) <constructor>: Add dwarf2_per_objfile parameter, update m_debugstrlookup construction. (debug_names::debug_str_lookup): Add dwarf2_per_objfile parameter. <m_dwarf2_per_objfile>: New field. <lookup>: Use m_dwarf2_per_objfile. (check_dwarf64_offsets): Add dwarf2_per_objfile parameter. (psyms_seen_size): Likewise. (write_gdbindex): Replace objfile parameter with dwarf2_per_objfile. (write_debug_names): Likewise. (write_psymtabs_to_index): Likewise. (save_gdb_index_command): Use get_dwarf2_per_objfile, update calls.
657 lines
25 KiB
Text
657 lines
25 KiB
Text
2018-01-07 Simon Marchi <simon.marchi@ericsson.com>
|
||
|
||
* dwarf2read.c (struct mapped_debug_names): Add constructor.
|
||
<dwarf2_per_objfile>: New field.
|
||
(dwarf2_per_objfile): Remove global.
|
||
(get_dwarf2_per_objfile): New function.
|
||
(set_dwarf2_per_objfile): New function.
|
||
(dwarf2_build_psymtabs_hard): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(abbrev_table_read_table): Add dwarf2_per_objfile parameter.
|
||
(read_abbrev_offset): Likewise.
|
||
(read_indirect_string): Likewise.
|
||
(read_indirect_line_string): Likewise.
|
||
(read_indirect_string_at_offset): Likewise.
|
||
(read_indirect_string_from_dwz): Likewise.
|
||
(dwarf2_find_containing_comp_unit): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(age_cached_comp_units): Add dwarf2_per_objfile parameter.
|
||
(create_all_comp_units): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(create_all_type_units): Likewise.
|
||
(process_queue): Add dwarf2_per_objfile parameter.
|
||
(read_and_check_comp_unit_head): Likewise.
|
||
(lookup_dwo_unit_in_dwp): Likewise.
|
||
(get_dwp_file): Likewise.
|
||
(process_cu_includes): Likewise.
|
||
(struct free_dwo_file_cleanup_data): New struct.
|
||
(dwarf2_has_info): Use get_dwarf2_per_objfile and
|
||
set_dwarf2_per_objfile.
|
||
(dwarf2_get_dwz_file): Add dwarf2_per_objfile parameter.
|
||
(dw2_do_instantiate_symtab): Get dwarf2_per_objfile from
|
||
context, adjust calls.
|
||
(dw2_instantiate_symtab): Likewise.
|
||
(dw2_get_cutu): Add dwarf2_per_objfile parameter.
|
||
(dw2_get_cu): Likewise.
|
||
(create_cu_from_index_list): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(create_cus_from_index_list): Get dwarf2_per_objfile from
|
||
context, adjust calls.
|
||
(create_cus_from_index): Likewise.
|
||
(create_signatured_type_table_from_index): Change objfile
|
||
parameter to dwarf2_per_objfile.
|
||
(create_signatured_type_table_from_debug_names): Change objfile
|
||
parameter to dwarf2_per_objfile.
|
||
(create_addrmap_from_index): Likewise.
|
||
(create_addrmap_from_aranges): Likewise.
|
||
(dwarf2_read_index): Use get_dwarf2_per_objfile, adjust calls.
|
||
(dw2_setup): Remove.
|
||
(dw2_get_file_names_reader): Get dwarf2_per_objfile from
|
||
context.
|
||
(dw2_find_last_source_symtab): Get dwarf2_per_objfile using
|
||
get_dwarf2_per_objfile.
|
||
(dw2_forget_cached_source_info): Likewise.
|
||
(dw2_map_symtabs_matching_filename): Likewise.
|
||
(struct dw2_symtab_iterator) <index>: Remove.
|
||
<dwarf2_per_objfile>: New field.
|
||
(dw2_symtab_iter_init): Replace index parameter with
|
||
dwarf2_per_objfile.
|
||
(dw2_symtab_iter_next): Use dwarf2_per_objfile from iter.
|
||
(dw2_lookup_symbol): Use get_dwarf2_per_objfile and adjust.
|
||
(dw2_print_stats): Likewise.
|
||
(dw2_dump): Likewise.
|
||
(dw2_expand_symtabs_for_function): Likewise.
|
||
(dw2_expand_all_symtabs): Likewise.
|
||
(dw2_expand_symtabs_with_fullname): Likewise.
|
||
(dw2_expand_marked_cus): Replace index and objfile parameters
|
||
with dwarf2_per_objfile.
|
||
(dw_expand_symtabs_matching_file_matcher): Add
|
||
dwarf2_per_objfile parameter and adjust calls.
|
||
(dw2_expand_symtabs_matching): Use get_dwarf2_per_objfile and
|
||
adjust calls.
|
||
(dw2_find_pc_sect_compunit_symtab): Don't call dw2_setup.
|
||
(dw2_map_symbol_filenames): Use get_dwarf2_per_objfile and
|
||
adjust calls.
|
||
(create_cus_from_debug_names_list): Replace objfile parameter
|
||
with dwarf2_per_objfile and adjust calls.
|
||
(create_cus_from_debug_names): Likewise.
|
||
(dwarf2_read_debug_names): Likewise.
|
||
(mapped_debug_names::namei_to_name): Adjust call.
|
||
(dw2_debug_names_iterator::next): Likewise.
|
||
(dw2_debug_names_iterator::find_vec_in_debug_names): Likewise.
|
||
(dw2_debug_names_lookup_symbol): Use get_dwarf2_per_objfile.
|
||
(dw2_debug_names_dump): Likewise.
|
||
(dw2_debug_names_expand_symtabs_for_function): Likewise.
|
||
(dw2_debug_names_expand_symtabs_matching): Likewise.
|
||
(dwarf2_initialize_objfile): Likewise.
|
||
(dwarf2_build_psymtabs): Likewise.
|
||
(get_abbrev_section_for_cu): Get dwarf2_per_objfile from
|
||
this_cu.
|
||
(error_check_comp_unit_head): Add dwarf2_per_objfile parameter.
|
||
(read_and_check_comp_unit_head): Likewise.
|
||
(read_abbrev_offset): Likewise.
|
||
(create_debug_type_hash_table): Likewise.
|
||
(create_debug_types_hash_table): Likewise.
|
||
(create_all_type_units): Replace objfile parameter with
|
||
dwarf2_per_objfile.
|
||
(add_type_unit): Add dwarf2_per_objfile parameter.
|
||
(fill_in_sig_entry_from_dwo_entry): Replace objfile parameter
|
||
with dwarf2_per_objfile.
|
||
(lookup_dwo_signatured_type): Get dwarf2_per_objfile from cu.
|
||
(lookup_dwp_signatured_type): Likewise.
|
||
(lookup_signatured_type): Likewise.
|
||
(read_cutu_die_from_dwo): Likewise.
|
||
(init_tu_and_read_dwo_dies): Likewise.
|
||
(init_cutu_and_read_dies): Likewise.
|
||
(init_cutu_and_read_dies_no_follow): Likewise.
|
||
(allocate_type_unit_groups_table): Add objfile parameter.
|
||
(create_type_unit_group): Use dwarf2_per_objfile from cu.
|
||
(get_type_unit_group): Likewise.
|
||
(process_psymtab_comp_unit): Update call.
|
||
(build_type_psymtabs_reader): Use dwarf2_per_objfile from cu.
|
||
(build_type_psymtabs_1): Add dwarf2_per_objfile parameter.
|
||
(print_tu_stats): Likewise.
|
||
(build_type_psymtab_dependencies): Use dwarf2_per_objfile passed
|
||
in void* parameter.
|
||
(build_type_psymtabs): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(process_skeletonless_type_unit): Use dwarf2_per_objfile
|
||
passed in void* parameter.
|
||
(process_skeletonless_type_units): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(set_partial_user): Likewise.
|
||
(dwarf2_build_psymtabs_hard): Likewise.
|
||
(read_comp_units_from_section): Likewise.
|
||
(create_all_comp_units): Likewise.
|
||
(scan_partial_symbols): Update calls.
|
||
(add_partial_symbol): Likewise.
|
||
(dwarf2_read_symtab): Use get_dwarf2_per_objfile.
|
||
(maybe_queue_comp_unit): Use dwarf2_read_symtab from cu.
|
||
(process_queue): Add dwarf2_per_objfile parameter.
|
||
(get_compunit_symtab): Use dwarf2_per_objfile from cu.
|
||
(compute_compunit_symtab_includes): Likewise.
|
||
(process_cu_includes): Add dwarf2_per_objfile parameter.
|
||
(process_full_comp_unit): Use dwarf2_per_objfile from cu.
|
||
(process_full_type_unit): Likewise.
|
||
(process_imported_unit_die): Update call.
|
||
(handle_DW_AT_stmt_list): Use dwarf2_per_objfile from cu.
|
||
(read_file_scope): Likewise.
|
||
(allocate_dwo_file_hash_table): Add objfile parameter.
|
||
(lookup_dwo_file_slot): Add dwarf2_per_objfile parameter.
|
||
(create_cus_hash_table): Likewise.
|
||
(create_dwp_hash_table): Likewise.
|
||
(create_dwo_unit_in_dwp_v1): Likewise.
|
||
(create_dwp_v2_section): Likewise.
|
||
(create_dwo_unit_in_dwp_v2): Likewise.
|
||
(lookup_dwo_unit_in_dwp): Likewise.
|
||
(try_open_dwop_file): Likewise.
|
||
(open_dwo_file): Likewise. Use dwarf2_per_objfile from cu.
|
||
(open_and_init_dwo_file): Use dwarf2_per_objfile from cu, update
|
||
cleanup to include a reference to dwarf2_per_objfile.
|
||
(open_dwp_file): Add dwarf2_per_objfile parameter.
|
||
(open_and_init_dwp_file): Likewise.
|
||
(get_dwp_file): Likewise.
|
||
(lookup_dwo_cutu): Use dwarf2_per_objfile from cu.
|
||
(queue_and_load_all_dwo_tus): Update call.
|
||
(free_dwo_file_cleanup): Use dwarf2_per_objfile from cleanup
|
||
data.
|
||
(dwarf2_rnglists_process): Use dwarf2_per_objfile from cu.
|
||
(dwarf2_ranges_process): Likewise.
|
||
(dwarf2_get_pc_bounds): Likewise.
|
||
(mark_common_block_symbol_computed): Likewise.
|
||
(abbrev_table_read_table): Add dwarf2_per_objfile parameter.
|
||
(dwarf2_read_abbrevs): Update call.
|
||
(read_partial_die): Use dwarf2_per_objfile from cu.
|
||
(find_partial_die): Likewise.
|
||
(fixup_partial_die): Likewise.
|
||
(read_attribute_value): Likewise.
|
||
(read_indirect_string_at_offset_from): Add objfile parameter.
|
||
(read_indirect_string_at_offset): Add dwarf2_per_objfile
|
||
parameter.
|
||
(read_indirect_string_from_dwz): Add objfile parameter.
|
||
(read_indirect_string): Add objfile parameter.
|
||
(read_addr_index_1): Add dwarf2_per_objfile parameter.
|
||
(read_addr_index): Use dwarf2_per_objfile from cu.
|
||
(dwarf2_read_addr_index): Use dwarf2_per_objfile from cu, don't
|
||
call dw2_setup.
|
||
(read_str_index): Use dwarf2_per_objfile from cu.
|
||
(get_debug_line_section): Likewise.
|
||
(read_formatted_entries): Add dwarf2_per_objfile parameter.
|
||
(dwarf_decode_line_header): Use dwarf2_per_objfile from cu.
|
||
(new_symbol_full): Use dwarf2_per_objfile from cu.
|
||
(build_error_marker_type): Likewise.
|
||
(lookup_die_type): Likewise.
|
||
(determine_prefix): Likewise.
|
||
(follow_die_offset): Likewise.
|
||
(dwarf2_fetch_die_loc_sect_off): Use get_dwarf2_per_objfile.
|
||
(dwarf2_fetch_constant_bytes): Don't call dw2_setup.
|
||
(dwarf2_fetch_die_type_sect_off): Likewise.
|
||
(dwarf2_get_die_type): Likewise.
|
||
(follow_die_sig_1): Use dwarf2_per_objfile from cu.
|
||
(get_signatured_type): Likewise.
|
||
(get_DW_AT_signature_type): Likewise.
|
||
(dwarf_decode_macro_bytes): Add dwarf2_per_objfile parameter.
|
||
(dwarf_decode_macros): Use dwarf2_per_objfile from cu.
|
||
(cu_debug_loc_section): Likewise.
|
||
(fill_in_loclist_baton): Likewise.
|
||
(dwarf2_symbol_mark_computed): Likewise.
|
||
(dwarf2_find_containing_comp_unit): Change objfile parameter to
|
||
dwarf2_per_objfile.
|
||
(free_cached_comp_units): Use dwarf2_per_objfile passed in void*
|
||
parameter.
|
||
(age_cached_comp_units): Add dwarf2_per_objfile parameter.
|
||
(free_one_cached_comp_unit): Use dwarf2_per_objfile from cu.
|
||
(dwarf2_free_objfile): Use get_dwarf2_per_objfile.
|
||
(set_die_type): Use dwarf2_free_objfile from cu.
|
||
(get_die_type_at_offset): Likewise.
|
||
(dwarf2_per_objfile_free): Don't assign global variable.
|
||
(debug_names) <constructor>: Add dwarf2_per_objfile
|
||
parameter, update m_debugstrlookup construction.
|
||
(debug_names::debug_str_lookup): Add dwarf2_per_objfile
|
||
parameter.
|
||
<m_dwarf2_per_objfile>: New field.
|
||
<lookup>: Use m_dwarf2_per_objfile.
|
||
(check_dwarf64_offsets): Add dwarf2_per_objfile parameter.
|
||
(psyms_seen_size): Likewise.
|
||
(write_gdbindex): Replace objfile parameter with
|
||
dwarf2_per_objfile.
|
||
(write_debug_names): Likewise.
|
||
(write_psymtabs_to_index): Likewise.
|
||
(save_gdb_index_command): Use get_dwarf2_per_objfile, update
|
||
calls.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@ericsson.com>
|
||
|
||
* dwarf2read.c (struct dwarf2_cu) <objfile>: Remove.
|
||
<dwarf2_per_objfile>: New field.
|
||
(struct dwarf2_per_cu_data) <objfile>: Remove.
|
||
<dwarf2_per_objfile>: New field.
|
||
(create_cu_from_index_list): Assign dwarf2_per_objfile instead
|
||
of objfile.
|
||
(create_signatured_type_table_from_index): Likewise.
|
||
(create_debug_type_hash_table): Likewise.
|
||
(fill_in_sig_entry_from_dwo_entry): Likewise.
|
||
(lookup_dwo_unit): Access objfile through dwarf2_per_objfile.
|
||
(create_type_unit_group): Assign dwarf2_per_objfile instead of
|
||
objfile.
|
||
(create_partial_symtab): Access objfile through
|
||
dwarf2_per_objfile.
|
||
(process_psymtab_comp_unit_reader): Likewise.
|
||
(read_comp_units_from_section): Likewise.
|
||
(scan_partial_symbols): Likewise.
|
||
(add_partial_symbol): Likewise.
|
||
(add_partial_subprogram): Likewise.
|
||
(peek_die_abbrev): Likewise.
|
||
(fixup_go_packaging): Likewise.
|
||
(process_full_comp_unit): Likewise.
|
||
(process_full_type_unit): Likewise.
|
||
(process_imported_unit_die): Likewise.
|
||
(dwarf2_compute_name): Likewise.
|
||
(dwarf2_physname): Likewise.
|
||
(read_import_statement): Likewise.
|
||
(create_cus_hash_table): Assign dwarf2_physname instead of
|
||
objfile.
|
||
(read_func_scope): Access objfile through dwarf2_per_objfile.
|
||
(read_lexical_block_scope): Likewise.
|
||
(read_call_site_scope): Likewise.
|
||
(read_variable): Likewise.
|
||
(dwarf2_rnglists_process): Likewise.
|
||
(dwarf2_ranges_process): Likewise.
|
||
(dwarf2_ranges_read): Likewise.
|
||
(dwarf2_record_block_ranges): Likewise.
|
||
(dwarf2_add_field): Likewise.
|
||
(dwarf2_add_member_fn): Likewise.
|
||
(read_structure_type): Likewise.
|
||
(process_structure_scope): Likewise.
|
||
(read_enumeration_type): Likewise.
|
||
(read_array_type): Likewise.
|
||
(read_common_block): Likewise.
|
||
(read_namespace_type): Likewise.
|
||
(read_namespace): Likewise.
|
||
(read_module_type): Likewise.
|
||
(read_tag_pointer_type): Likewise.
|
||
(read_tag_ptr_to_member_type): Likewise.
|
||
(read_tag_string_type): Likewise.
|
||
(read_subroutine_type): Likewise.
|
||
(read_typedef): Likewise.
|
||
(read_base_type): Likewise.
|
||
(attr_to_dynamic_prop): Likewise.
|
||
(read_subrange_type): Likewise.
|
||
(read_unspecified_type): Likewise.
|
||
(load_partial_dies): Likewise.
|
||
(read_partial_die): Likewise.
|
||
(find_partial_die): Likewise.
|
||
(guess_partial_die_structure_name): Likewise.
|
||
(fixup_partial_die): Likewise.
|
||
(read_attribute_value): Likewise.
|
||
(read_addr_index_from_leb128): Likewise.
|
||
(dwarf2_read_addr_index): Likewise.
|
||
(dwarf2_string_attr): Likewise.
|
||
(lnp_state_machine::check_line_address): Likewise.
|
||
(dwarf_decode_lines_1): Likewise.
|
||
(dwarf_decode_lines): Likewise.
|
||
(dwarf2_start_symtab): Likewise.
|
||
(var_decode_location): Likewise.
|
||
(new_symbol_full): Likewise.
|
||
(dwarf2_const_value_data): Likewise.
|
||
(dwarf2_const_value_attr): Likewise.
|
||
(dwarf2_const_value): Likewise.
|
||
(die_type): Likewise.
|
||
(die_containing_type): Likewise.
|
||
(lookup_die_type): Likewise.
|
||
(guess_full_die_structure_name): Likewise.
|
||
(anonymous_struct_prefix): Likewise.
|
||
(dwarf2_name): Likewise.
|
||
(follow_die_ref_or_sig): Likewise.
|
||
(follow_die_offset): Likewise.
|
||
(follow_die_ref): Likewise.
|
||
(dwarf2_fetch_die_loc_sect_off): Likewise.
|
||
(dwarf2_fetch_constant_bytes): Likewise.
|
||
(dwarf2_fetch_die_type_sect_off): Likewise.
|
||
(dwarf2_get_die_type): Likewise.
|
||
(follow_die_sig): Likewise.
|
||
(decode_locdesc): Likewise.
|
||
(dwarf2_per_cu_objfile): Likewise.
|
||
(dwarf2_per_cu_text_offset): Likewise.
|
||
(init_one_comp_unit): Assign dwarf2_per_objfile instead of
|
||
objfile.
|
||
(set_die_type): Access objfile through
|
||
dwarf2_per_objfile.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@ericsson.com>
|
||
|
||
* valprint.c (converted_character_d): Remove typedef.
|
||
(DEF_VEC_O (converted_character_d)): Remove.
|
||
(count_next_character): Use std::vector.
|
||
(print_converted_chars_to_obstack): Likewise.
|
||
(generic_printstr): Likewise.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
|
||
|
||
* xml-support.h (struct gdb_xml_value): Add constructor.
|
||
<value>: Change type to unique_xmalloc_ptr.
|
||
(gdb_xml_value_s): Remove typedef.
|
||
(DEF_VEC_O (gdb_xml_value_s)): Remove.
|
||
(gdb_xml_element_start_handler): Change parameter type to
|
||
std::vector.
|
||
(xml_find_attribute): Likewise.
|
||
* xml-support.c (xml_find_attribute): Change parameter type to
|
||
std::vector and adjust.
|
||
(gdb_xml_values_cleanup): Remove.
|
||
(gdb_xml_parser::start_element): Adjust to std::vector.
|
||
(xinclude_start_include): Change paraeter type to std::vector
|
||
and adjust.
|
||
* btrace.c (check_xml_btrace_version): Likewise.
|
||
(parse_xml_btrace_block): Likewise.
|
||
(parse_xml_btrace_pt_config_cpu): Likewise.
|
||
(parse_xml_btrace_pt): Likewise.
|
||
(parse_xml_btrace_conf_bts): Likewise.
|
||
(parse_xml_btrace_conf_pt): Likewise.
|
||
* memory-map.c (memory_map_start_memory): Likewise.
|
||
(memory_map_start_property): Likewise.
|
||
* osdata.c (osdata_start_osdata): Likewise.
|
||
(osdata_start_item): Likewise.
|
||
(osdata_start_column): Likewise.
|
||
* remote.c (start_thread): Likewise.
|
||
* solib-aix.c (library_list_start_library): Likewise.
|
||
(library_list_start_list): Likewise.
|
||
* solib-svr4.c (library_list_start_library): Likewise.
|
||
(svr4_library_list_start_list): Likewise.
|
||
* solib-target.c (library_list_start_segment): Likewise.
|
||
(library_list_start_section): Likewise.
|
||
(library_list_start_library): Likewise.
|
||
(library_list_start_list): Likewise.
|
||
* tracepoint.c (traceframe_info_start_memory): Likewise.
|
||
(traceframe_info_start_tvar): Likewise.
|
||
* xml-syscall.c (syscall_start_syscall): Likewise.
|
||
* xml-tdesc.c (tdesc_start_target): Likewise.
|
||
(tdesc_start_feature): Likewise.
|
||
(tdesc_start_reg): Likewise.
|
||
(tdesc_start_union): Likewise.
|
||
(tdesc_start_struct): Likewise.
|
||
(tdesc_start_flags): Likewise.
|
||
(tdesc_start_enum): Likewise.
|
||
(tdesc_start_field): Likewise.
|
||
(tdesc_start_enum_value): Likewise.
|
||
(tdesc_start_vector): Likewise.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
|
||
|
||
* extension.h (struct xmethod_worker) <clone>: Remove.
|
||
* python/py-xmethods.c (struct python_xmethod_worker) <clone>:
|
||
Remove.
|
||
(python_xmethod_worker::clone): Remove.
|
||
* valops.c (find_overload_match): Use std::move instead of
|
||
clone.
|
||
|
||
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
|
||
|
||
* extension-priv.h (enum ext_lang_rc): Remove, move to extension.h.
|
||
(struct extension_language_ops) <clone_xmethod_worker_data>: Remove.
|
||
<free_xmethod_worker_data>: Remove.
|
||
<get_matching_xmethod_workers>: Chance VEC to std::vector.
|
||
<get_xmethod_arg_types>: Remove.
|
||
<get_xmethod_result_type>: Remove.
|
||
<invoke_xmethod>: Remove.
|
||
* extension.c (new_xmethod_worker): Remove.
|
||
(clone_xmethod_worker): Remove.
|
||
(get_matching_xmethod_workers): Return void, pass std::vector by
|
||
pointer.
|
||
(get_xmethod_arg_types): Rename to...
|
||
(xmethod_worker::get_arg_types): ... this, and adjust.
|
||
(get_xmethod_result_type): Rename to...
|
||
(xmethod_worker::get_result_type): ... this, and adjust.
|
||
(invoke_xmethod): Remove.
|
||
(free_xmethod_worker): Remove.
|
||
(free_xmethod_worker_vec): Remove.
|
||
* extension.h (enum ext_lang_rc): Move here from
|
||
extension-priv.h.
|
||
(struct xmethod_worker): Add constructor and destructor.
|
||
<data>: Remove.
|
||
<value>: Remove.
|
||
<invoke, clone, do_get_result_type, do_get_arg_types>: New
|
||
virtual pure methods.
|
||
<get_arg_types, get_result_type>: New methods.
|
||
(xmethod_worker_ptr): Remove typedef.
|
||
(DEF_VEC_P (xmethod_worker_ptr)): Remove.
|
||
(xmethod_worker_vec): Remove typedef.
|
||
(xmethod_worker_up): New typedef.
|
||
(invoke_xmethod): Remove.
|
||
(clone_xmethod_worker): Remove.
|
||
(free_xmethod_worker): Remove.
|
||
(free_xmethod_worker_vec): Remove.
|
||
(get_xmethod_arg_types): Remove.
|
||
(get_xmethod_result_type): Remove.
|
||
* valops.c (find_method_list): Use std::vector, don't use
|
||
intermediate vector.
|
||
(value_find_oload_method_list): Use std::vector.
|
||
(find_overload_match): Use std::vector.
|
||
(find_oload_champ): Use std::vector.
|
||
* value.c (value_free): Use operator delete.
|
||
(value_of_xmethod): Rename to...
|
||
(value_from_xmethod): ... this. Don't assign
|
||
xmethod_worker::value, take rvalue-reference.
|
||
(result_type_of_xmethod): Adjust.
|
||
(call_xmethod): Adjust.
|
||
* value.h: Include extension.h.
|
||
(struct xmethod_worker): Don't forward-declare.
|
||
(value_of_xmethod): Rename to...
|
||
(value_from_xmethod): ... this, take rvalue-reference.
|
||
* python/py-xmethods.c (struct gdbpy_worker_data): Rename to...
|
||
(struct python_xmethod_worker): ... this, add constructor and
|
||
destructor.
|
||
<invoke, clone, do_get_arg_types, do_get_result_type>: Implement.
|
||
(gdbpy_free_xmethod_worker_data): Rename to...
|
||
(python_xmethod_worker::~python_xmethod_worker): ... this and
|
||
adjust.
|
||
(gdbpy_clone_xmethod_worker_data): Rename to...
|
||
(python_xmethod_worker::clone): ... this and adjust.
|
||
(gdbpy_get_matching_xmethod_workers): Use std::vector, don't use
|
||
temporary vector.
|
||
(gdbpy_get_xmethod_arg_types): Rename to...
|
||
(python_xmethod_worker::do_get_arg_types): ... this and adjust.
|
||
(gdbpy_get_xmethod_result_type): Rename to...
|
||
(python_xmethod_worker::do_get_result_type): ... this and
|
||
adjust.
|
||
(gdbpy_invoke_xmethod): Rename to...
|
||
(python_xmethod_worker::invoke): ... this and adjust.
|
||
(new_python_xmethod_worker): Rename to...
|
||
(python_xmethod_worker::python_xmethod_worker): ... this and
|
||
adjust.
|
||
* python/python-internal.h (gdbpy_clone_xmethod_worker_data):
|
||
Remove.
|
||
(gdbpy_free_xmethod_worker_data): Remove.
|
||
(gdbpy_get_matching_xmethod_workers): Use std::vector.
|
||
(gdbpy_get_xmethod_arg_types): Remove.
|
||
(gdbpy_get_xmethod_result_type): Remove.
|
||
(gdbpy_invoke_xmethod): Remove.
|
||
* python/python.c (python_extension_ops): Remove obsolete
|
||
callbacks.
|
||
|
||
2018-01-05 Pedro Alves <palves@redhat.com>
|
||
|
||
PR gdb/18653
|
||
* common/signals-state-save-restore.c
|
||
(save_original_signals_state): New parameter 'quiet'. Warn if we
|
||
find a custom handler preinstalled, instead of internal erroring.
|
||
But only warn if !quiet.
|
||
* common/signals-state-save-restore.h
|
||
(save_original_signals_state): New parameter 'quiet'.
|
||
* main.c (captured_main_1): Move save_original_signals_state call
|
||
after option handling, and pass QUIET.
|
||
|
||
2018-01-05 Pedro Alves <palves@redhat.com>
|
||
|
||
* spu-tdep.c (spu_catch_start): Pass
|
||
symbol_name_match_type::SEARCH_NAME to block_lookup_symbol.
|
||
|
||
2018-01-05 Pedro Alves <palves@redhat.com>
|
||
|
||
PR gdb/22670
|
||
* ada-lang.c (literal_symbol_name_matcher): New function.
|
||
(ada_get_symbol_name_matcher): Use it for
|
||
symbol_name_match_type::SEARCH_NAME.
|
||
* block.c (block_lookup_symbol): New parameter 'match_type'. Pass
|
||
it down instead of assuming symbol_name_match_type::FULL.
|
||
* block.h (block_lookup_symbol): New parameter 'match_type'.
|
||
* c-valprint.c (print_unpacked_pointer): Use
|
||
lookup_symbol_search_name instead of lookup_symbol.
|
||
* compile/compile-object-load.c (get_out_value_type): Pass down
|
||
symbol_name_match_type::SEARCH_NAME.
|
||
* cp-namespace.c (cp_basic_lookup_symbol): Pass down
|
||
symbol_name_match_type::FULL.
|
||
* cp-support.c (cp_get_symbol_name_matcher): Handle
|
||
symbol_name_match_type::SEARCH_NAME.
|
||
* infrun.c (insert_exception_resume_breakpoint): Use
|
||
lookup_symbol_search_name.
|
||
* p-valprint.c (pascal_val_print): Use lookup_symbol_search_name.
|
||
* psymtab.c (maintenance_check_psymtabs): Use
|
||
symbol_name_match_type::SEARCH_NAME and SYMBOL_SEARCH_NAME.
|
||
* stack.c (print_frame_args): Use lookup_symbol_search_name and
|
||
SYMBOL_SEARCH_NAME.
|
||
* symtab.c (lookup_local_symbol): Don't demangle the lookup name
|
||
if symbol_name_match_type::SEARCH_NAME.
|
||
(lookup_symbol_in_language): Pass down
|
||
symbol_name_match_type::FULL.
|
||
(lookup_symbol_search_name): New.
|
||
(lookup_language_this): Pass down
|
||
symbol_name_match_type::SEARCH_NAME.
|
||
(lookup_symbol_aux, lookup_local_symbol): New parameter
|
||
'match_type'. Pass it down.
|
||
* symtab.h (symbol_name_match_type::SEARCH_NAME): New enumerator.
|
||
(lookup_symbol_search_name): New declaration.
|
||
(lookup_symbol_in_block): New 'match_type' parameter.
|
||
|
||
2018-01-05 Pedro Alves <palves@redhat.com>
|
||
|
||
PR gdb/22670
|
||
* ada-lang.c (ada_lookup_encoded_symbol): Reimplement in terms of
|
||
ada_lookup_symbol.
|
||
(ada_lookup_symbol): Reimplement in terms of
|
||
ada_lookup_symbol_list, bits factored out from
|
||
ada_lookup_encoded_symbol.
|
||
|
||
2018-01-05 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* ada-exp.y (write_object_renaming): When subscripting an array
|
||
using a symbol as the index, pass the block in call to
|
||
ada_lookup_encoded_symbol when looking that symbol up.
|
||
|
||
2018-01-05 Jerome Guitton <guitton@adacore.com>
|
||
|
||
* ada-lang.c (ada_array_length): Use ada_index_type instead of
|
||
TYPE_INDEX_TYPE.
|
||
|
||
2018-01-05 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* ada-lang.c (ada_to_fixed_value_create): Add handling of
|
||
the case where VALUE_LVAL (val0) is not lval_memory.
|
||
|
||
2018-01-05 Xavier Roirand <roirand@adacore.com>
|
||
|
||
* ada-valprint.c (print_optional_low_bound): Handle
|
||
character-indexed array printing like boolean-indexed array
|
||
printing.
|
||
|
||
2018-01-05 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* NEWS: Create a new section for the next release branch.
|
||
Rename the section of the current branch, now that it has
|
||
been cut.
|
||
|
||
2018-01-05 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
GDB 8.1 branch created (5219ac6237c272b938c28517bf371429260c71e7):
|
||
* version.in: Bump version to 8.1.50.DATE-git.
|
||
|
||
2018-01-03 Xavier Roirand <roirand@adacore.com>
|
||
|
||
* ada-lang.h (ada_exception_catchpoint_kind) <ada_catch_handlers>:
|
||
Add field.
|
||
* ada-lang.c (struct exception_support_info) <catch_handlers_sym>:
|
||
Add field.
|
||
(default_exception_support_info) <catch_handlers_sym>: Add field.
|
||
(exception_support_info_fallback) <catch_handlers_sym>: Add field.
|
||
(ada_exception_name_addr_1): Add "catch handlers" handling.
|
||
(ada_exception_catchpoint_cond_string) <ex>: New parameter.
|
||
Update all callers.
|
||
(create_excep_cond_exprs) <ex>: Add parameter.
|
||
(re_set_exception): Update create_excep_cond_exprs call.
|
||
(print_it_exception, print_one_exception, print_mention_exception)
|
||
(print_recreate_exception): Add "catch handler" handling.
|
||
(allocate_location_catch_handlers, re_set_catch_handlers)
|
||
(check_status_catch_handlers, print_it_catch_handlers)
|
||
(print_one_catch_handlers, print_mention_catch_handlers)
|
||
(print_recreate_catch_handlers): New function.
|
||
(catch_handlers_breakpoint_ops): New variable.
|
||
(catch_ada_exception_command_split) <is_catch_handlers_cmd>:
|
||
Add parameter. Add "catch handler" handling.
|
||
(ada_exception_sym_name, ada_exception_breakpoint_ops):
|
||
Add "catch handler" handling.
|
||
(ada_exception_catchpoint_cond_string): Add "catch handler"
|
||
handling.
|
||
(create_ada_exception_catchpoint): Update create_excep_cond_exprs
|
||
call.
|
||
(catch_ada_handlers_command): New function.
|
||
(initialize_ada_catchpoint_ops): Initialize "catch handlers"
|
||
operations structure.
|
||
(_initialize_ada_language): Add "catch handlers" command entry.
|
||
* NEWS: Document "catch handlers" feature.
|
||
|
||
2018-01-02 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* ada-lang.c (ada_value_slice_from_ptr): Take array stride into
|
||
account when creating the array type of the slice.
|
||
(ada_value_slice): Likewise.
|
||
|
||
2018-01-02 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* gdbtypes.h (enum dynamic_prop_node_kind) <DYN_PROP_BYTE_STRIDE>:
|
||
New enum value.
|
||
(create_array_type_with_stride): Add byte_stride_prop parameter.
|
||
* gdbtypes.c (create_array_type_with_stride) <byte_stride_prop>:
|
||
New parameter. Update all callers in this file.
|
||
(array_type_has_dynamic_stride): New function.
|
||
(is_dynamic_type_internal, resolve_dynamic_array): Add handling
|
||
of arrays with dynamic byte strides.
|
||
* dwarf2read.c (read_array_type): Add support for dynamic
|
||
DW_AT_byte_stride attributes.
|
||
|
||
2018-01-02 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* dwarf2read.c (read_unspecified_type): Treat
|
||
DW_TAG_enumeration_type DIEs from Ada units as stubs.
|
||
|
||
2018-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
Update copyright year range in all GDB files.
|
||
|
||
2018-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* copyright.py (BY_HAND): Remove gdb/testsuite/gdb.base/step-line.inp
|
||
and gdb/testsuite/gdb.base/step-line.c.
|
||
|
||
2018-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* copyright.py (main): Dump the contents of
|
||
MULTIPLE_COPYRIGHT_HEADERS (separately) from BY_HAND,
|
||
even if BY_HAND is empty.
|
||
|
||
2018-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* top.c (print_gdb_version): Update Copyright year in version
|
||
message.
|
||
|
||
2018-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2017.
|
||
|
||
For older changes see ChangeLog-2017.
|
||
|
||
Local Variables:
|
||
mode: change-log
|
||
left-margin: 8
|
||
fill-column: 74
|
||
version-control: never
|
||
coding: utf-8
|
||
End:
|