3019eac3a2
* symfile.c (default_symfile_relocate): Use sectp->owner instead of objfile->obfd. * symfile.h (dwarf2_debug_sections): New member addr. * dwarf2expr.c (execute_stack_op): New case DW_OP_GNU_addr_index. (ctx_no_get_addr_index): New function. * dwarf2expr.h (dwarf_expr_context_funcs): New member get_addr_index. (ctx_no_get_addr_index): Declare. * dwarf2-frame.c (dwarf2_frame_ctx_funcs): Update. * dwarf2loc.c (dwarf_expr_get_addr_index): New function. (dwarf_expr_ctx_funcs): Update. (needs_get_addr_index): New function. (needs_frame_ctx_funcs): Update. * dwarf2loc.h (dwarf2_read_addr_index): Declare. * dwarf2read.c: #include "gdbcore.h". (dwarf2_per_objfile): New members addr, dwo_files. (dwarf2_elf_names): Add entry for addr. (struct dwo_section_names): New type. (dwo_section_names): New static global. (dwarf2_cu): New members dwo_unit, addr_base, have_addr_base. (dwarf2_per_cu_data): New member is_debug_types, all boolean uses of old debug_types_section member updated to use this. Rename member debug_types_section to info_or_types_section, all uses updated. (signatured_type): Rename member type_offset to type_offset_in_tu, all uses updated. New member type_offset_in_section. (struct dwo_sections): New type. (struct dwo_unit): New type. (struct dwo_file): New type. (die_reader_specs): New member dwo_file. (dwarf2_locate_sections): Watch for .debug_addr. (zlib_decompress_section): Use sectp->owner instead of objfile->obfd. (dwarf2_read_section): Get bfd of section from bfd's asection, instead of objfile. (create_cus_from_index): Initialize the_cu->info_or_types_section. (create_signatured_type_table_from_index): Initialize sig_type->info_or_types_section. (dw2_get_file_names): Statement lists for type units with DWO files live in the DWO file. (create_debug_types_hash_table): New function. (create_all_type_units): Rewrite. (init_cu_die_reader): New arg dwo_file, all callers updated. (init_and_read_dies_worker): Get section from this_cu->info_or_types_section. Set sig_type->type_offset_in_section. Watch for DW_AT_GNU_dwo_name and if present lookup the file and continue reading the CU/TU from there. (init_cutu_and_read_dies_no_follow): New arg dwo_file, all callers updated. Get section from this_cu->info_or_types_section. (create_all_comp_units): Initialize this_cu->info_or_types_section. (skip_one_die): New cases DW_FORM_GNU_addr_index, DW_FORM_GNU_str_index. (hash_dwo_file, eq_dwo_file): New functions. (allocate_dwo_file_hash_table): New function. (hash_dwo_unit, eq_dwo_unit): New functions. (allocate_dwo_unit_table): New function. (dwarf2_locate_dwo_sections): New function. (struct create_dwo_info_table_data): New type. (create_debug_info_hash_table_reader): New function. (create_debug_info_hash_table): New function. (try_open_dwo_file, open_dwo_file, init_dwo_file): New function. (lookup_dwo_file): New function. (lookup_dwo_comp_unit, lookup_dwo_type_unit): New functions. (free_dwo_file, free_dwo_file_cleanup): New functions. (free_dwo_file_from_slot, free_dwo_files): New functions. (dwarf2_get_pc_bounds): Handle DW_FORM_GNU_addr_index. (dwarf2_record_block_ranges): Ditto. (read_partial_die): Ditto. (process_enumeration_scope): Update to use type_offset_in_section. (read_full_die_1): New function. (read_full_die): Rewrite. (read_attribute_value): New cases DW_FORM_GNU_addr_index, DW_FORM_GNU_str_index. (read_addr_index_1, read_addr_index): New functions. (read_addr_index_from_leb128): New function. (struct dwarf2_read_addr_index_data): New type. (dwarf2_read_addr_index_reader): New function. (dwarf2_read_addr_index): New function. (read_str_index): New function. (leb128_size): New function. (dwarf_decode_line_header): Delete arg abfd, all callers updated. If processing a type unit from a DWO file, get the line section from the DWO file. (var_decode_location): Watch for DW_OP_GNU_addr_index. (dwarf2_const_value_attr): New cases DW_FORM_GNU_addr_index, DW_FORM_GNU_str_index. (lookup_die_type): Check whether section offset of type's die is known before looking it up. Remove assert. Condition can legimately happen for inter-cu type references. (dwarf_attr_name): Handle Fission attributes. (dwarf_form_name): Handle Fission forms. (dump_die_shallow): New cases DW_FORM_GNU_addr_index, DW_FORM_GNU_str_index. (follow_die_sig): Update to use type_offset_in_section. (decode_locdesc): New case DW_OP_GNU_addr_index. (skip_form_bytes): New cases DW_FORM_GNU_addr_index, DW_FORM_GNU_str_index. (cu_debug_loc_section): New function. (fill_in_loclist_baton, dwarf2_symbol_mark_computed): Call it. (dwarf2_per_objfile_free): Unmap .debug_addr section. Free DWO files if present. * xcoffread.c (dwarf2_xcoff_names): Add .debug_addr. testsuite/ * gdb.dwarf2/dw2-intercu.S (.Ltype_int2_in_cu2): Renamed from .Ltype_int_in_cu2. Use name "int2" instead of "int". All uses updated. * gdb.dwarf2/dw2-intercu.exp: Add "ptype int2" ahead of "ptype func_cu1" to expand cu2 before cu1. |
||
---|---|---|
.. | ||
callframecfa.exp | ||
callframecfa.S | ||
clztest.c | ||
clztest.exp | ||
clztest.S | ||
dup-psym.exp | ||
dup-psym.S | ||
dw2-ada-ffffffff.exp | ||
dw2-ada-ffffffff.S | ||
dw2-anonymous-func.exp | ||
dw2-anonymous-func.S | ||
dw2-bad-parameter-type.exp | ||
dw2-bad-parameter-type.S | ||
dw2-basic.exp | ||
dw2-basic.S | ||
dw2-case-insensitive-debug.S | ||
dw2-case-insensitive.c | ||
dw2-case-insensitive.exp | ||
dw2-compressed.exp | ||
dw2-compressed.S | ||
dw2-const.exp | ||
dw2-const.S | ||
dw2-cp-infcall-ref-static-main.c | ||
dw2-cp-infcall-ref-static.exp | ||
dw2-cp-infcall-ref-static.S | ||
dw2-cu-size.exp | ||
dw2-cu-size.S | ||
dw2-double-set-die-type.exp | ||
dw2-double-set-die-type.S | ||
dw2-empty-namespace.exp | ||
dw2-empty-namespace.S | ||
dw2-empty-pc-range.exp | ||
dw2-empty-pc-range.S | ||
dw2-entry-value-main.c | ||
dw2-entry-value.exp | ||
dw2-entry-value.S | ||
dw2-filename.exp | ||
dw2-filename.S | ||
dw2-ifort-parameter-debug.S | ||
dw2-ifort-parameter.c | ||
dw2-ifort-parameter.exp | ||
dw2-inheritance.exp | ||
dw2-inheritance.S | ||
dw2-inline-break.exp | ||
dw2-inline-break.S | ||
dw2-inline-param-main.c | ||
dw2-inline-param.exp | ||
dw2-inline-param.S | ||
dw2-intercu.exp | ||
dw2-intercu.S | ||
dw2-intermix.exp | ||
dw2-intermix.S | ||
dw2-linkage-name-trust-main.cc | ||
dw2-linkage-name-trust.exp | ||
dw2-linkage-name-trust.S | ||
dw2-modula2-self-type.exp | ||
dw2-modula2-self-type.S | ||
dw2-namespaceless-anonymous.exp | ||
dw2-namespaceless-anonymous.S | ||
dw2-noloc-main.c | ||
dw2-noloc.exp | ||
dw2-noloc.S | ||
dw2-objfile-overlap-inner.S | ||
dw2-objfile-overlap-outer.S | ||
dw2-objfile-overlap.exp | ||
dw2-op-call.exp | ||
dw2-op-call.S | ||
dw2-op-stack-value.exp | ||
dw2-op-stack-value.S | ||
dw2-param-error-main.c | ||
dw2-param-error.exp | ||
dw2-param-error.S | ||
dw2-producer.exp | ||
dw2-producer.S | ||
dw2-ranges.c | ||
dw2-ranges.exp | ||
dw2-ranges2.c | ||
dw2-ranges3.c | ||
dw2-ref-missing-frame-func.c | ||
dw2-ref-missing-frame-main.c | ||
dw2-ref-missing-frame.exp | ||
dw2-ref-missing-frame.S | ||
dw2-restore.exp | ||
dw2-restore.S | ||
dw2-simple-locdesc.exp | ||
dw2-simple-locdesc.S | ||
dw2-skip-prologue.c | ||
dw2-skip-prologue.exp | ||
dw2-skip-prologue.S | ||
dw2-stack-boundary.exp | ||
dw2-stack-boundary.S | ||
dw2-strp.exp | ||
dw2-strp.S | ||
dw2-unresolved-main.c | ||
dw2-unresolved.exp | ||
dw2-unresolved.S | ||
dw2-var-zero-addr.exp | ||
dw2-var-zero-addr.S | ||
dw4-sig-type-unused.exp | ||
dw4-sig-type-unused.S | ||
dw4-sig-types-b.cc | ||
dw4-sig-types.cc | ||
dw4-sig-types.exp | ||
dw4-sig-types.h | ||
file1.txt | ||
implptr-64bit.exp | ||
implptr-64bit.S | ||
implptr-optimized-out.exp | ||
implptr-optimized-out.S | ||
implptr.c | ||
implptr.exp | ||
implptr.S | ||
mac-fileno.exp | ||
mac-fileno.S | ||
main.c | ||
Makefile.in | ||
member-ptr-forwardref.exp | ||
member-ptr-forwardref.S | ||
pieces.c | ||
pieces.exp | ||
pieces.S | ||
pr10770.c | ||
pr10770.exp | ||
pr11465.exp | ||
pr11465.S | ||
typeddwarf-amd64.S | ||
typeddwarf.c | ||
typeddwarf.exp | ||
typeddwarf.S | ||
valop.exp | ||
valop.S | ||
watch-notconst.c | ||
watch-notconst.exp | ||
watch-notconst2.c | ||
watch-notconst2.S |