aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-05-03Add support for Motorola XGATE embedded CPUNick Clifton6-1/+928
2012-05-032012-05-03 Tristan Gingold <gingold@adacore.com>Tristan Gingold2-2/+11
* dwarf2.c (decode_line_info): Ignore DW_LNE_HP_source_file_correlation.
2012-05-032012-05-03 Siva Chandra Reddy <sivachandra@google.com>Siva Chandra Reddy8-0/+94
Add two new methods global_block and static_block to gdb.Symtab objects. * NEWS (Python scripting): Add entry about the new methods. * python/py-symtab.c (stpy_global_block): New function which implements the gdb.Symtab.global_block() method. (stpy_static_block): New function which implements the gdb.Symtab.static_block() method. (symtab_object_methods): Add entries for the two new methods. * testsuite/gdb.python/py-symbol.exp: Add tests to test the new methods gdb.Symtab.global_block() and gdb.Symtab.static_block(). * tessuite/gdb.python/py-symbol.c: Add new struct to help test gdb.Symtab.static_block(). * doc/gdb.texinfo (Symbol Tables In Python): Add documentation about the new methods global_block and static_block on gdb.Symtab objects.
2012-05-03 * gdb.dwarf2/pr13961.S: Add file and source location, but leaveDoug Evans2-0/+11
commented out.
2012-05-03* dwarf2read.c (dw2_find_symbol_file): Don't crash if there are no files.Doug Evans2-1/+7
2012-05-03gdb/testsuite:Yao Qi6-52/+52
* gdb.base/catch-syscall.exp: Skip it before compilation if target doesn't support. * gdb.base/foll-exec.exp, gdb.base/foll-fork.exp: Likewise. * gdb.base/foll-vfork.exp, gdb.multi/bkpt-multi-exec.exp: Likewise.
2012-05-03gdb/testsuite:Yao Qi2-0/+9
* gdb.mi/mi-solib.exp: Setup kfail for gdb/13860.
2012-05-03gdb:Yao Qi2-2/+8
* i386-tdep.c (i386_fetch_pointer_argument): Remove extra space. (i386_process_record): Ditto.
2012-05-03Make infcall.c:unwind_on_signal_p static.Joel Brobecker2-1/+5
gdb/ChangeLog: * infcall.c (unwind_on_signal_p): Make static.
2012-05-03*** empty log message ***gdbadmin1-1/+1
2012-05-03daily updateAlan Modra1-1/+1
2012-05-02Fix -Wmissing-prototypes errors in sol-thread.cJoel Brobecker2-1/+9
gdb/ChangeLog: * sol-thread.c (solaris_pid_to_str): Make static. (_initialize_sol_thread): Add prototype.
2012-05-02Delete unused procfs_pid_to_str extern in sol-thread.cJoel Brobecker2-2/+4
gdb/ChangeLog: * sol-thread.c (procfs_pid_to_str): Delete extern declaration.
2012-05-02* MAINTAINERS: Remove myself.Christopher Faylor2-2/+4
2012-05-02 * configure.ac (ENABLE_GOLD): Consider *-*-nacl* targets ELF.Roland McGrath24-2600/+4647
* configure: Regenerate. gold/ * nacl.cc: New file. * nacl.h: New file. * Makefile.am (CCFILES, HFILES): Add them. * Makefile.in: Regenerate. * i386.cc (Output_data_plt_i386_nacl): New class. (Output_data_plt_i386_nacl_exec): New class. (Output_data_plt_i386_nacl_dyn): New class. (Target_i386_nacl): New class. (Target_selector_i386_nacl): New class. (target_selector_i386): Use it instead of Target_selector_i386. * x86_64.cc (Output_data_plt_x86_64_nacl): New class. (Target_x86_64_nacl): New class. (Target_selector_x86_64_nacl): New class. (target_selector_x86_64, target_selector_x32): Use it instead of Target_selector_x86_64. * arm.cc (Output_data_plt_arm_nacl): New class. (Target_arm_nacl): New class. (Target_selector_arm_nacl): New class. (target_selector_arm, target_selector_armbe): Use it instead of Target_selector_arm. * target-select.cc (select_target): Take new Input_file* and off_t arguments, pass them on to recognize method of selector. * object.cc (make_elf_sized_object): Update caller. * parameters.cc (parameters_force_valid_target): Likewise. * incremental.cc (make_sized_incremental_binary): Likewise. * target-select.h: Update decl. (Target_selector::recognize): Take new Input_file* argument, pass it on to do_recognize. (Target_selector::do_recognize): Take new Input_file* argument. * freebsd.h (Target_selector_freebsd::do_recognize): Likewise. * powerpc.cc (Target_selector_powerpc::do_recognize): Likewise. * sparc.cc (Target_selector_sparc::do_recognize): Likewise. * testsuite/testfile.cc (Target_selector::do_recognize): Likewise. * target.h (Target::Target_info): New members isolate_execinstr and rosegment_gap. (Target::isolate_execinstr, Target::rosegment_gap): New methods. * arm.cc (Target_arm::arm_info): Update initializer. * i386.cc (Target_i386::i386_info): Likewise. * powerpc.cc (Target_powerpc::powerpc_info): Likewise. * sparc.cc (Target_sparc::sparc_info): Likewise. * x86_64.cc (Target_x86_64::x86_64_info): Likewise. * testsuite/testfile.cc (Target_test::test_target_info): Likewise. * layout.cc (Layout::attach_allocated_section_to_segment): Take new const Target* argument. If target->isolate_execinstr(), act like --rosegment. (Layout::find_first_load_seg): Take new const Target* argument; if target->isolate_execinstr(), reject PF_X segments. (Layout::relaxation_loop_body): Update caller. (Layout::set_segment_offsets): If target->isolate_execinstr(), reset file offset to zero when we hit LOAD_SEG, and then do a second loop over the segments before LOAD_SEG to reassign offsets after addresses have been determined. Handle target->rosegment_gap(). (Layout::attach_section_to_segment): Take new const Target* argument; pass it to attach_allocated_section_to_segment. (Layout::make_output_section): Update caller. (Layout::attach_sections_to_segments): Take new const Target* argument; pass it to attach_section_to_segment. * gold.cc (queue_middle_tasks): Update caller. * layout.h (Layout): Update method decls with new arguments. * arm.cc (Target_arm::Target_arm): Take optional argument for the Target_info pointer to use. (Target_arm::do_make_data_plt): New virtual method. (Target_arm::make_data_plt): New method that calls it. (Target_arm::make_plt_entry): Use it. (Output_data_plt_arm::Output_data_plt_arm): Take additional argument for the section alignment. (Output_data_plt_arm::do_first_plt_entry_offset): New abstract virtual method. (Output_data_plt_arm::first_plt_entry_offset): Call it. (Output_data_plt_arm::do_get_plt_entry_size): New abstract virtual method. (Output_data_plt_arm::get_plt_entry_size): Call it. (Output_data_plt_arm::do_fill_plt_entry): New abstract virtual method. (Output_data_plt_arm::fill_plt_entry): New method that calls it. (Output_data_plt_arm::do_fill_first_plt_entry): New abstract virtual method. (Output_data_plt_arm::fill_first_plt_entry): New method that calls it. (Output_data_plt_arm::set_final_data_size): Use get_plt_entry_size method instead of sizeof(plt_entry). (Output_data_plt_arm::add_entry): Likewise. Use first_plt_entry_offset method instead of sizeof(first_plt_entry). (Target_arm::first_plt_entry_offset): Call method on this->plt_ rather than static method. (Target_arm::plt_entry_size): Likewise. (Output_data_plt_arm::first_plt_entry, Output_data_plt_arm::plt_entry): Move to ... (Output_data_plt_arm_standard): ... here, new class. (Output_data_plt_arm::do_write): Move guts of PLT filling to... (Output_data_plt_arm_standard::do_fill_first_plt_entry): ... here ... (Output_data_plt_arm_standard::do_fill_plt_entry): ... and here. * x86_64.cc (Output_data_plt_x86_64::Output_data_plt_x86_64): Take additional argument for the PLT entry size. (Output_data_plt_x86_64::get_tlsdesc_plt_offset): Use get_plt_entry_size method rather than plt_entry_size variable. (Output_data_plt_x86_64::reserve_slot): Likewise. (Output_data_plt_x86_64::do_adjust_output_section): Likewise. (Output_data_plt_x86_64::add_entry): Likewise. (Output_data_plt_x86_64::add_local_ifunc_entry): Likewise. (Output_data_plt_x86_64::address_for_global): Likewise. (Output_data_plt_x86_64::address_for_local): Likewise. (Output_data_plt_x86_64::set_final_data_size): Likewise. (Output_data_plt_x86_64::first_plt_entry_offset): Likewise. Make method non-static. (Output_data_plt_x86_64::do_get_plt_entry_size): New abstract virtual method. (Output_data_plt_x86_64::get_plt_entry_size): Just call that. (Output_data_plt_x86_64::do_add_eh_frame): New abstract virtual method. (Output_data_plt_x86_64::add_eh_frame): New method to call it. (Output_data_plt_x86_64::do_fill_first_plt_entry): New abstract virtual method. (Output_data_plt_x86_64::fill_first_plt_entry): New method to call it. (Output_data_plt_x86_64::do_fill_plt_entry): New abstract virtual method. (Output_data_plt_x86_64::fill_plt_entry): New method to call it. (Output_data_plt_x86_64::do_fill_tlsdesc_entry): New abstract virtual method. (Output_data_plt_x86_64::fill_tlsdesc_entry): New method to call it. (Output_data_plt_x86_64::plt_entry_size) (Output_data_plt_x86_64::first_plt_entry) (Output_data_plt_x86_64::plt_entry) (Output_data_plt_x86_64::tlsdesc_plt_entry) (Output_data_plt_x86_64::plt_eh_frame_fde_size) (Output_data_plt_x86_64::plt_eh_frame_fde): Move to ... (Output_data_plt_x86_64_standard): ... here, new class. (Target_x86_64::Target_x86_64): Take optional argument for the Target_info pointer to use. (Target_x86_64::do_make_data_plt): New virtual method. (Target_x86_64::make_data_plt): New method to call it. (Target_x86_64::init_got_plt_for_update): Use that. Call this->plt_->add_eh_frame method here. (Output_data_plt_x86_64::init): Don't do add_eh_frame_for_plt here. (Target_x86_64::first_plt_entry_offset): Call method on this->plt_ rather than static method. (Target_x86_64::plt_entry_size): Likewise. (Output_data_plt_x86_64::do_write): Use get_plt_entry_size method rather than plt_entry_size variable. Move guts of PLT filling to... (Output_data_plt_x86_64_standard::do_fill_first_plt_entry): ... here ... (Output_data_plt_x86_64_standard::do_fill_plt_entry): ... and here ... (Output_data_plt_x86_64_standard::do_fill_tlsdesc_entry): ... and here. * i386.cc (Output_data_plt_i386::Output_data_plt_i386): Take additional argument for the section alignment. Don't do add_eh_frame_for_plt here. (Output_data_plt_i386::first_plt_entry_offset): Make the method non-static. Use get_plt_entry_size method rather than plt_entry_size variable. (Output_data_plt_i386::do_get_plt_entry_size): New abstract virtual method. (Output_data_plt_i386::get_plt_entry_size): Call it. (Output_data_plt_i386::do_add_eh_frame): New abstract virtual method. (Output_data_plt_i386::add_eh_frame): New method to call it. (Output_data_plt_i386::do_fill_first_plt_entry): New abstract virtual method. (Output_data_plt_i386::fill_first_plt_entry): New method to call it. (Output_data_plt_i386::do_fill_plt_entry): New abstract virtual method. (Output_data_plt_i386::fill_plt_entry): New method to call it. (Output_data_plt_i386::set_final_data_size): Use get_plt_entry_size method instead of plt_entry_size. (Output_data_plt_i386::plt_entry_size) (Output_data_plt_i386::plt_eh_frame_fde_size) (Output_data_plt_i386::plt_eh_frame_fde): Move to ... (Output_data_plt_i386_standard): ... here, new class. (Output_data_plt_i386_exec): New class. (Output_data_plt_i386::exec_first_plt_entry): Move to ... (Output_data_plt_i386_exec::first_plt_entry): ... here. (Output_data_plt_i386::exec_plt_entry): Move to ... (Output_data_plt_i386_exec::plt_entry): ... here. (Output_data_plt_i386_dyn): New class. (Output_data_plt_i386::first_plt_entry): Move to ... (Output_data_plt_i386_dyn::first_plt_entry): ... here. (Output_data_plt_i386::dyn_plt_entry): Move to ... (Output_data_plt_i386_dyn::plt_entry): ... here. (Target_i386::Target_i386): Take optional argument for the Target_info pointer to use. (Target_i386::do_make_data_plt): New virtual method. (Target_i386::make_data_plt): New method to call it. (Target_i386::make_plt_section): Use that. Call this->plt_->add_eh_frame method here. (Output_data_plt_i386::add_entry): Use get_plt_entry_size method rather than plt_entry_size variable. (Output_data_plt_i386::add_local_ifunc_entry): Likewise. (Output_data_plt_i386::address_for_local): Likewise. (Output_data_plt_i386::do_write): Likewise. Move guts of PLT filling to... (Output_data_plt_i386_exec::do_fill_first_plt_entry): ... here ... (Output_data_plt_i386_exec::do_fill_plt_entry): ... and here ... (Output_data_plt_i386_dyn::do_fill_first_plt_entry): ... and here ... (Output_data_plt_i386_dyn::do_fill_plt_entry): ... and here. Change-Id: Id24b95600489835ff5e860a39c147203d4380c2b
2012-05-02gdb/Jan Kratochvil2-0/+11
Fix --without-auto-load-safe-path for MS-Windows host platform. * auto-load.c (filename_is_in_dir): Return 1 for DIR_LEN 0.
2012-05-02include/Cary Coutant2-2/+6
* dwarf2.def: Remove DW_FORM_GNU_ref_index, replace DW_AT_GNU_ref_base with DW_AT_GNU_ranges_base.
2012-05-022012-05-02 Siva Chandra Reddy <sivachandra@google.com>Siva Chandra Reddy2-1/+11
* doc/gdb.texinfo (Blocks In Python): Add a note saying that future improvements to GDB and its infrastructure can move symbols across blocks within a symbol table.
2012-05-02 gdb_curses.h: Undefine KEY_EVENT before including cursesEli Zaretskii2-7/+17
headers. Move "#undef MOUSE_MOVED" before any curses header inclusion.
2012-05-02 * po/vi.po: Updated Vietnamese translation.Nick Clifton5-1559/+11596
* po/it.po: New Italian translation. * configure.in (ALL_LINGUAS): Add it. * configure: Regenerate.
2012-05-022012-05-02 Sergio Durigan Junior <sergiodj@gmail.com>Sergio Durigan Junior21-20/+24
* features/i386/i386-mmx-linux.c: Regenerate. * features/rs6000/powerpc-32.c: Likewise. * features/rs6000/powerpc-32l.c: Likewise. * features/rs6000/powerpc-403.c: Likewise. * features/rs6000/powerpc-403gc.c: Likewise. * features/rs6000/powerpc-405.c: Likewise. * features/rs6000/powerpc-505.c: Likewise. * features/rs6000/powerpc-601.c: Likewise. * features/rs6000/powerpc-602.c: Likewise. * features/rs6000/powerpc-603.c: Likewise. * features/rs6000/powerpc-604.c: Likewise. * features/rs6000/powerpc-64.c: Likewise. * features/rs6000/powerpc-64l.c: Likewise. * features/rs6000/powerpc-750.c: Likewise. * features/rs6000/powerpc-860.c: Likewise. * features/rs6000/powerpc-e500.c: Likewise. * features/rs6000/powerpc-e500l.c: Likewise. * features/rs6000/powerpc-isa205-32l.c: Likewise. * features/rs6000/powerpc-isa205-64l.c: Likewise. * features/rs6000/rs6000.c: Likewise.
2012-05-022012-05-02 Sergio Durigan Junior <sergiodj@gmail.com>Sergio Durigan Junior3-9/+9
* i386-tdep.c (i386_stap_parse_special_token) <s>: Remove unused variable. * stap-probe.c (stap_parse_single_operand) <reg_suffix, reg_ind_suffix, reg_suffix_len, reg_ind_suffix_len>: Likewise. (stap_parse_argument) <e>: Likewise. (handle_stap_probe) <byte_order>: Likewise.
2012-05-02*** empty log message ***gdbadmin1-1/+1
2012-05-02daily updateAlan Modra1-1/+1
2012-05-01elfcpp/Cary Coutant5-584/+84
* dwarf.h (enum DW_TAG, enum DW_FORM, enum DW_AT, enum DW_ENCODING) (enum DW_OP, enum DW_CFA): Remove. Include dwarf2.def. gold/ * dwarf_reader.cc (Dwarf_die::read_attributes) (Dwarf_die::skip_attributes, Dwarf_die::int_attribute) (Dwarf_die::uint_attribute): Remove DW_FORM_null. * reduced_debug_output.cc (Output_reduced_debug_info_section::get_die_end): Remove DW_FORM_GNU_ref_index. Add default case.
2012-05-01 [Checking in missing files from previous commit.]Cary Coutant2-0/+88
* testsuite/gdb_index_test_3.c: New test source file. * testsuite/gdb_index_test_3.sh: New test source file.
2012-05-01gold: Handle DW_AT_high_pc as offset from DW_AT_low_pc in gdb-index.cc.Mark Wielaard6-24/+82
* dwarf_reader.cc (Dwarf_die::address_attribute): New function. * dwarf_reader.h (Dwarf_die::address_attribute): Likewise. * gdb-index.cc (Gdb_index_info_reader::record_cu_ranges): Handle DW_AT_high_pc as offset from DW_AT_low_pc. * testsuite/Makefile.am (gdb_index_test_3.sh): New test case. * testsuite/Makefile.in: Regenerate. * testsuite/gdb_index_test_3.c: New test source file. * testsuite/gdb_index_test_3.sh: New test source file.
2012-05-01 PR binutils/13121Nick Clifton10-891/+910
Rename 'finfo' to 'flaginfo' to avoid conflicts with AIX system headers.
2012-05-01 * dwarf2read.c (init_cutu_and_read_dies): Renamed fromDoug Evans5-69/+431
init_and_read_dies_worker. All callers updated. (init_cu_and_read_dies, init_tu_and_read_dies): Delete. All calls replaced with init_cutu_and_read_dies. (load_partial_comp_unit): Pass 1 for use_existing_cu. (find_partial_die): Remove FIXME. Don't free current CU. testsuite/ * gdb.dwarf2/pr13961.S: New file. * gdb.dwarf2/pr13961.exp: New file.
2012-05-01Fix bug in date in previous entry.Doug Evans1-1/+1
2012-05-01*** empty log message ***gdbadmin1-1/+1
2012-05-01daily updateAlan Modra1-1/+1
2012-04-30* config/rx-parse.y (rx_intop): Add parameter for operation size.DJ Delorie2-11/+26
Check for large positive constants really being small negative ones. (BRA, BSR): Update calls to rx_intop. (immediate): Likewise.
2012-04-30* rx-decode.opc (MOV): Do not sign-extend immediates which areDJ Delorie3-601/+633
already the maximum bit size. * rx-decode.c: Regenerate.
2012-04-302012-04-26 Sterling Augustine <saugustine@google.com>Sterling Augustine2-0/+212
* contrib: New directory. * contrib/test_pubnames_and_indexes.py: New file.
2012-04-30 * dwarf2read.c (dwarf_decode_macros): New arg section_name.Doug Evans2-9/+22
All callers updated. (init_cu_die_reader): Verify the section is non-empty. (dwarf_decode_line_header): Don't dereference section->asection until we know the section is present.
2012-04-30gas: Make dwarf2dbg.c versions specific and add DW_AT_high_pc case for DWARF 4+.Mark Wielaard3-4/+37
* dwarf2dbg.c (DWARF2_ARANGES_VERSION): New define to 2. (DWARF2_LINE_VERSION): Likewise. (out_debug_line): Use DWARF2_LINE_VERSION not DWARF2_VERSION. (out_debug_aranges): Use DWARF2_ARANGES_VERSION not DWARF2_VERSION. (out_debug_abbrev): Use DW_FORM_data for DW_AT_high_pc when DWARF2_VERSION >= 4. (out_debug_info): Use difference between start and end as data value for DW_AT_high_pc when DWARF2_VERSION >= 4. * config/tc-ia64.h (DWARF2_LINE_VERSION): Override it.
2012-04-30*** empty log message ***gdbadmin1-1/+1
2012-04-30daily updateAlan Modra1-1/+1
2012-04-292012-04-29 Sergio Durigan Junior <sergiodj@redhat.com>Sergio Durigan Junior2-2/+9
* tracepoint.c (start_tracing, stop_tracing): Checking for NULL probes.
2012-04-29gdb:Yao Qi2-1/+35
* gdb-code-style.el: New hook gdb-markup-hook and gdb-comment-hook.
2012-04-29gdb/doc:Yao Qi2-27/+5
* gdb.texinfo (Architectures): Remove menu entry `A29K'. (A29K): Remove.
2012-04-29gdb/testsuite:Yao Qi2-7/+6
* gdb.dwarf2/dw2-ifort-parameter.exp: Use proc `dwarf2_support'.
2012-04-29gdb/gdbserver:Yao Qi12-53/+102
* server.h: Move some code to ... * gdbthread.h: ... here. New. * Makefile.in (inferiors.o, regcache.o): Depends on gdbthread.h (remote-utils.o, server.o, target.o tracepoint.o): Likewise. (nto-low.o, win32-low.o): Likewise. * inferiors.c, linux-low.h, nto-low.c: Include gdbthread.h. * regcache.c, remote-utils.c, server.c: Likewise. * target.c, tracepoint.c, win32-low.c: Likewise.
2012-04-29*** empty log message ***gdbadmin1-1/+1
2012-04-29daily updateAlan Modra1-1/+1
2012-04-28 Initial support for Fission. http://gcc.gnu.org/wiki/DebugFissionDoug Evans13-165/+1538
* 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.
2012-04-28 Refactor DIE reading.Doug Evans2-622/+712
* dwarf2read.c (dwarf2_per_objfile): Replace members debug_info_type_hash and debug_types_type_hash with die_type_hash. (die_reader_specs): New member "die_section". Temporarily make member "buffer" non-const, pending constifying all info_ptr uses. (die_reader_func_ftype): New typedef. (dw2_get_file_names_reader): New function. (dw2_get_file_names): Rewrite. (read_and_check_type_unit_head): Rename arg type_offset to type_offset_in_tu. (create_all_type_units): Improve debugging message. Improve dummy type unit check. (init_cu_die_reader): New arg "section". All callers updated. (init_and_read_dies_worker): New function. (init_cu_and_read_dies, init_tu_and_read_dies): New functions. (init_cutu_and_read_dies_no_follow): New function. (init_cutu_and_read_dies_simple): New function. (process_psymtab_comp_unit_reader): New function. (process_psymtab_comp_unit): Delete args section, is_debug_types_section. Rewrite. All callers updated. (process_psymtab_type_unit): Renamed from process_type_comp_unit. All callers updated. Rewrite. (load_partial_comp_unit_reader): New function. (load_partial_comp_unit): Rewrite. (skip_children): New arg reader. Delete args buffer, cu. All callers updated. (skip_one_die): New arg reader. Delete args buffer, cu. All callers updated. (locate_pdi_sibling): New arg reader. Delete args buffer, abfd, cu. All callers updated. (load_full_comp_unit_reader): New function. (load_full_comp_unit): Rewrite. (read_comp_unit): Delete. (read_die_and_children_1): Delete, contents moved ... (read_die_and_children): ... here. (dwarf2_read_abbrevs): New arg abbrev_section. All callers updated. (load_partial_dies): New arg reader. Delete args abfd, buffer, cu. All callers updated. (read_partial_die): New arg reader. Delete args abfd, buffer, cu. All callers updated. (find_partial_die): Rewrite load_all_dies support. (read_attribute_value): New arg reader. Delete args abfd, cu. All callers updated. (read_attribute): New arg reader. Delete args abfd, cu. All callers updated. (load_full_type_unit): Add assert. (read_signatured_type_reader): New function. (read_signatured_type): Rewrite. (free_stack_comp_unit): Remove call to age_cached_comp_units. (free_one_cached_comp_unit): Change target_cu arg to target_per_cu. All callers updated. Set per_cu->cu = NULL after freeing it. (dwarf2_per_cu_offset_and_type): Renamed from dwarf2_offset_and_type. (per_cu_offset_and_type_hash): Renamed from offset_and_type_hash. (per_cu_offset_and_type_eq): Renamed from offset_and_type_eq. (set_die_type): Update. (get_die_type_at_offset): Update. (read_file_scope): Call prepare_one_comp_unit. (read_type_unit_scope): Ditto. (prepare_one_comp_unit): Set producer if present.
2012-04-28 * dwarf2.def (DW_OP): Add DW_OP_GNU_addr_index.Doug Evans2-0/+6
2012-04-282012-04-28 Sergio Durigan Junior <sergiodj@redhat.com>Sergio Durigan Junior2-1/+6
* probe.c (compile_rx_or_error): Silence ARI warning about missing gettext function on `error'.