1. 10 Jan, 2019 25 commits
    • Tom Tromey's avatar
      Move more allocations to psymtab obstack · 5af70966
      Tom Tromey authored
      This moves a couple more psymtab-related allocations to the psymtab
      obstack.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* psymtab.c (add_psymbol_to_bcache): Pass psymtab obstack to
      	PSYMBOL_SET_LANGUAGE.
      	(allocate_psymtab): Allocate psymtab on the psymtab obstack.
      5af70966
    • Tom Tromey's avatar
      Allocate the address map on the psymtab obstack · 5923a04c
      Tom Tromey authored
      After this patch, the psymtab address map will now be allocated on the
      psymtab obstack rather than the objfile obstack.  This also changes
      the psymtab storage object to make the obstack private; this will be
      used later.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* psymtab.h (psymtab_storage::obstack): New method.
      	<m_obstack>: Rename from obstack; now private.
      	* psymtab.c (psymtab_storage): Update.
      	* dwarf2read.c (create_addrmap_from_index)
      	(create_addrmap_from_aranges, dwarf2_build_psymtabs_hard):
      	Update.
      5923a04c
    • Tom Tromey's avatar
      Introduce objfile::reset_psymtabs · 6d6a12bf
      Tom Tromey authored
      This introduces a new method, objfile::reset_psymtabs, and changes
      reread_symbols to use it.  This method simply destroys the existing
      partial symbols and recreates the psymtab_storage object.
      
      This patch fixes a latent bug -- namely, that reread_symbols should
      clear objfile::psymbol_map, but does not.  I can submit that
      separately if you'd prefer.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* symfile.c (reread_symbols): Call objfile->reset_psymtabs.
      	* objfiles.h (objfile::reset_psymtabs): New method.
      6d6a12bf
    • Tom Tromey's avatar
      Introduce class psymtab_storage · d320c2b5
      Tom Tromey authored
      This introduces a new psymtab_storage class, which holds all
      psymbol-related objects that are independent of the objfile.  (This
      latter contraint explains why psymbol_map was not moved; though this
      could still be done with some work.)
      
      This patch does not yet change where psymtab allocation is done --
      that comes later.  This just wraps everything in a single object to
      make further transformations simpler.
      
      Note that a shared_ptr is used to link from the objfile to the
      psymtab_storage object.  The end goal here is to allow a given symbol
      reader to simply attach to the psymtab_storage object to the BFD, then
      reuse it in later invocations; shared_ptr makes this simple to reason
      about.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* symmisc.c (print_symbol_bcache_statistics): Update.
      	(print_objfile_statistics): Update.
      	* symfile.c (reread_symbols): Update.
      	* psymtab.h (class psymtab_storage): New.
      	* psymtab.c (psymtab_storage): New constructor.
      	(~psymtab_storage): New destructor.
      	(require_partial_symbols): Update.
      	(ALL_OBJFILE_PSYMTABS_REQUIRED): Rewrite.
      	(find_pc_sect_psymtab, find_pc_sect_psymbol)
      	(match_partial_symbol, lookup_partial_symbol, dump_psymtab)
      	(psym_dump, recursively_search_psymtabs, psym_has_symbols)
      	(psym_find_compunit_symtab_by_address, sort_pst_symbols)
      	(start_psymtab_common, end_psymtab_common)
      	(add_psymbol_to_bcache, add_psymbol_to_list, init_psymbol_list)
      	(allocate_psymtab): Update.
      	(psymtab_storage::discard_psymtab): Rename from discard_psymtab.
      	Update.
      	(dump_psymtab_addrmap, maintenance_print_psymbols)
      	(maintenance_check_psymtabs): Update.
      	(class objfile_psymtabs): Move to objfiles.h.
      	* psympriv.h (discard_psymtab): Now inline.
      	(psymtab_discarder::psymtab_discarder): Update.
      	(psymtab_discarder::~psymtab_discarder): Update.
      	(ALL_OBJFILE_PSYMTABS): Rewrite.
      	* objfiles.h (struct objfile) <psymtabs, psymtabs_addrmap,
      	free_psymtabs, psymbol_cache, global_psymbols, static_psymbols>:
      	Remove fields.
      	<partial_symtabs>: New field.
      	(class objfile_psymtabs): Move from psymtab.h.  Update.
      	* objfiles.c (objfile::objfile): Initialize partial_symtabs, not
      	psymbol_cache.
      	(objfile::~objfile): Don't destroy psymbol_cache.
      	* mdebugread.c (parse_partial_symbols): Update.
      	* dwarf2read.c (create_addrmap_from_index)
      	(create_addrmap_from_aranges, dw2_find_pc_sect_compunit_symtab)
      	(process_psymtab_comp_unit_reader, dwarf2_build_psymtabs_hard)
      	(add_partial_subprogram, dwarf2_ranges_read): Update.
      	* dwarf-index-write.c (write_address_map)
      	(write_one_signatured_type, recursively_write_psymbols)
      	(class debug_names, class debug_names, write_psymtabs_to_index):
      	Update.
      d320c2b5
    • Tom Tromey's avatar
      Change symbol_set_names to take an objfile_per_bfd_storage · 1d94a5a3
      Tom Tromey authored
      This changes symbol_set_names to take an objfile_per_bfd_storage
      argument, and updates the users.  It also changes PSYMBOL_SET_NAMES to
      take this argument directly; I feel this clarifies the storage
      location of objects created in psymtab.c.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* symtab.h (SYMBOL_SET_NAMES): Update.
      	(symbol_set_names): Update.
      	(MSYMBOL_SET_NAMES): Update.
      	* symtab.c (symbol_set_names): Change argument to be an
      	objfile_per_bfd_storage.
      	* psymtab.c (add_psymbol_to_bcache): Update.
      	* psympriv.h (PSYMBOL_SET_NAMES): Take per_bfd argument.
      1d94a5a3
    • Tom Tromey's avatar
      Change create_demangled_names_hash to take an objfile_per_bfd_storage · 0f14768a
      Tom Tromey authored
      This changes create_demangled_names_hash to take an
      objfile_per_bfd_storage parameter.  This makes it clearer where it is
      storing the objects it allocates.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* symtab.c (create_demangled_names_hash): Change argument to be an
      	objfile_per_bfd_storage.
      	(symbol_set_names): Update.
      0f14768a
    • Tom Tromey's avatar
      Simplify calls to init_psymbol_list · 6eee24ce
      Tom Tromey authored
      Existing callers to init_psymbol_list were checking to see if psymbols
      had already been initialized.  It seemed better to me to do this check
      directly in init_psymbol_list, simplifying the callers.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* xcoffread.c (xcoff_initial_scan): Unconditionally call
      	init_psymbol_list.
      	* psymtab.c (init_psymbol_list): Do nothing if already called.
      	* psympriv.h (init_psymbol_list): Add comment.
      	* dwarf2read.c (dwarf2_build_psymtabs): Unconditionally call
      	init_psymbol_list.
      	* dbxread.c (dbx_symfile_read): Unconditionally call
      	init_psymbol_list.
      6eee24ce
    • Tom Tromey's avatar
      Change add_psymbol_to_list to use an enum · 75aedd27
      Tom Tromey authored
      This changes add_psymbol_to_list to use an enum, rather than a pointer
      to a vector, to decide where to put the new symbol.  This reduces the
      number of direct references to the static_psymbols and global_psymbols
      members of the objfile, which is handy in a later patch.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* xcoffread.c (scan_xcoff_symtab): Update.
      	* psymtab.c (add_psymbol_to_list): Replace "list" parameter with
      	"where".
      	* mdebugread.c (parse_partial_symbols)
      	(handle_psymbol_enumerators): Update.
      	* dwarf2read.c (add_partial_symbol, load_partial_dies): Update.
      	* dbxread.c (read_dbx_symtab): Update.
      	* psympriv.h (psymbol_placement): New enum.
      	(add_psymbol_to_list): Update.
      75aedd27
    • Tom Tromey's avatar
      Remove parameters from start_psymtab_common · 939652a5
      Tom Tromey authored
      start_psymtab_common takes references to the global_psymbols and
      static_psymbols vectors, but it also has an objfile parameter.  This
      is redundant, so this patch simplifies the function by removing those
      reference parameters.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* xcoffread.c (xcoff_start_psymtab): Remove global_psymbols and
      	static_psymbols parameters.
      	(scan_xcoff_symtab): Update.
      	* psymtab.c (start_psymtab_common): Remove global_psymbols and
      	static_psymbols parameters.
      	* psympriv.h (start_psymtab_common): Update.
      	* mdebugread.c (parse_partial_symbols): Update.
      	* dwarf2read.c (create_partial_symtab): Update.
      	* dbxread.c (read_dbx_symtab): Update.
      	(start_psymtab): Remove global_psymbols and static_psymbols
      	parameters.
      939652a5
    • Tom Tromey's avatar
      Remove some unneeded psymtab initializations · baa62830
      Tom Tromey authored
      allocate_psymtab has long cleared the new psymtab that is returned.
      This patch documents this behavior and then removes some redundant
      initializations.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* xcoffread.c (xcoff_end_psymtab): Remove some initializations.
      	* psymtab.c (allocate_psymtab): Add comment.
      	* psympriv.h (allocate_psymtab): Add comment.
      	* dwarf2read.c (dwarf2_create_include_psymtab): Remove some
      	initializations.
      	* dbxread.c (dbx_end_psymtab): Remove some initializations.
      baa62830
    • Tom Tromey's avatar
      Move some declarations to mdebugread.h · 0e8f53ba
      Tom Tromey authored
      This moves a couple of mdebugread-related declarations from symfile.h
      to mdebugread.h, which seemed more appropriate.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* symfile.h (mdebug_build_psymtabs, elfmdebug_build_psymtabs):
      	Don't declare.
      	* mipsread.c: Include mdebugread.h.
      	* mdebugread.h (mdebug_build_psymtabs, elfmdebug_build_psymtabs):
      	Declare.
      	* elfread.c: Include mdebugread.h.
      0e8f53ba
    • Nick Clifton's avatar
      Sync libiberty sources with gcc master versions. · 1910070b
      Nick Clifton authored
      .	* libiberty: Sync with gcc.  Bring in:
      	2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR other/16615
      
      	* cp-demangle.c: Mechanically replace "can not" with "cannot".
      	* floatformat.c: Likewise.
      	* strerror.c: Likewise.
      
      	2018-12-22  Jason Merrill  <jason@redhat.com>
      
      	Remove support for demangling GCC 2.x era mangling schemes.
      	* cplus-dem.c: Remove cplus_mangle_opname, cplus_demangle_opname,
      	internal_cplus_demangle, and all subroutines.
      	(libiberty_demanglers): Remove entries for ancient GNU (pre-3.0),
      	Lucid, ARM, HP, and EDG demangling styles.
      	(cplus_demangle): Remove 'work' variable.  Don't call
      	internal_cplus_demangle.
      
      include	* Merge from GCC:
      	2018-12-22  Jason Merrill  <jason@redhat.com>
      
      	* demangle.h: Remove support for ancient GNU (pre-3.0), Lucid,
      	ARM, HP, and EDG demangling styles.
      1910070b
    • Tom Tromey's avatar
      Remove ALL_OBJFILE_PSYMTABS · b22a7c6a
      Tom Tromey authored
      This removes the ALL_OBJFILE_PSYMTABS macro, replacing its uses with
      ranged for loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* dbxread.c (dbx_end_psymtab): Use objfile_psymtabs.
      	* mdebugread.c (parse_partial_symbols): Use objfile_psymtabs.
      	* psymtab.c (ALL_OBJFILE_PSYMTABS_REQUIRED): Remove.
      	(psym_map_symtabs_matching_filename, find_pc_sect_psymtab)
      	(psym_lookup_symbol, psym_find_last_source_symtab)
      	(psym_forget_cached_source_info, psym_print_stats)
      	(psym_expand_symtabs_for_function, psym_expand_all_symtabs)
      	(psym_expand_symtabs_with_fullname, psym_map_symbol_filenames)
      	(psym_map_matching_symbols, psym_expand_symtabs_matching)
      	(psym_find_compunit_symtab_by_address)
      	(maintenance_print_psymbols, maintenance_info_psymtabs)
      	(maintenance_check_psymtabs): Use ranged for.
      	* psymtab.h (class objfile_psymtabs): New.
      	(require_partial_symbols): Return objfile_psymtabs.
      	* psympriv.h (ALL_OBJFILE_PSYMTABS): Remove.
      b22a7c6a
    • Tom Tromey's avatar
      Remove ALL_OBJSECTIONS · 3b9d3ac2
      Tom Tromey authored
      This removes the ALL_OBJSECTIONS macro, replacing its uses with ranged
      for loops.
      
      The special code in this macro for noticing a "break" from the inner
      loop was only needed in a single place; so rather than try to
      replicate this, I've simply replaced that use with a "goto".
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symfile.c (overlay_invalidate_all, find_pc_overlay)
      	(find_pc_mapped_section, list_overlays_command)
      	(map_overlay_command, unmap_overlay_command)
      	(simple_overlay_update): Use all_objfiles.
      	* spu-tdep.c (spu_overlay_update): Use all_objfiles.
      	* printcmd.c (info_symbol_command): Use all_objfiles.
      	* objfiles.h (ALL_OBJSECTIONS): Remove.
      	* maint.c (maintenance_translate_address): Use all_objfiles.
      	* gcore.c (gcore_create_callback): Use all_objfiles.
      	(objfile_find_memory_regions): Likewise.
      3b9d3ac2
    • Tom Tromey's avatar
      Remove ALL_OBJFILES and ALL_FILETABS · 8b31193a
      Tom Tromey authored
      This removes the ALL_OBJFILES and ALL_FILETABS macros, replacing them
      with ranged for loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symtab.c (find_line_symtab, info_sources_command)
      	(make_source_files_completion_list): Use objfile_compunits.
      	* source.c (select_source_symtab): Use objfile_compunits.
      	* objfiles.h (struct objfile): Update comment.
      	(ALL_OBJFILES): Remove.
      	(ALL_FILETABS): Remove.
      	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Use
      	objfile_compunits.
      8b31193a
    • Tom Tromey's avatar
      Remove ALL_OBJFILE_FILETABS · d5da8b3c
      Tom Tromey authored
      This removes ALL_OBJFILE_FILETABS, replacing its uses with ranged for
      loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symmisc.c (print_objfile_statistics, dump_objfile)
      	(maintenance_print_symbols): Use compunit_filetabs.
      	* source.c (forget_cached_source_info_for_objfile): Use
      	compunit_filetabs.
      	* objfiles.h (ALL_OBJFILE_FILETABS): Remove.
      	(ALL_FILETABS): Use compunit_filetabs.
      	* objfiles.c (objfile_relocate1): Use compunit_filetabs.
      	* coffread.c (coff_symtab_read): Use compunit_filetabs.
      d5da8b3c
    • Tom Tromey's avatar
      Remove ALL_COMPUNIT_FILETABS · 5accd1a0
      Tom Tromey authored
      This removes ALL_COMPUNIT_FILETABS, replacing its uses with ranged for
      loops.
      
      Because this is still used in the ALL_OBJFILE_FILETABS macro, in some
      places a declaration had to be removed or renamed to avoid shadowing.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symtab.h (ALL_COMPUNIT_FILETABS): Remove.
      	(compunit_filetabs): New.
      	* symtab.c (iterate_over_some_symtabs, find_pc_sect_line): Use
      	compunit_filetabs.
      	(info_sources_command, make_source_files_completion_list): Remove
      	declaration.
      	* symmisc.c (print_objfile_statistics, dump_objfile)
      	(maintenance_print_symbols): Remove declaration.
      	(maintenance_info_symtabs): Use compunit_filetabs.
      	(maintenance_info_line_tables): Likewise.
      	* source.c (select_source_symtab): Change local variable name.
      	(forget_cached_source_info_for_objfile): Remove declaration.
      	* objfiles.h (ALL_OBJFILE_FILETABS): Use compunit_filetabs.
      	* objfiles.c (objfile_relocate1): Remove declaration.
      	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Remove
      	declaration.
      	* maint.c (count_symtabs_and_blocks): Use compunit_filetabs.
      	* coffread.c (coff_symtab_read): Remove declaration.
      	* buildsym.c (buildsym_compunit::end_symtab_with_blockvector): Use
      	compunit_filetabs.
      5accd1a0
    • Tom Tromey's avatar
      Remove ALL_COMPUNITS · d8aeb77f
      Tom Tromey authored
      This removes the ALL_COMPUNITS, replacing its uses with two nested
      ranged for loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symtab.c (lookup_objfile_from_block)
      	(find_pc_sect_compunit_symtab, search_symbols)
      	(default_collect_symbol_completion_matches_break_on): Use
      	objfile_compunits.
      	* objfiles.h (ALL_COMPUNITS): Remove.
      	* maint.c (count_symtabs_and_blocks): Use objfile_compunits.
      	* cp-support.c (add_symbol_overload_list_qualified): Use
      	objfile_compunits.
      	* ada-lang.c (ada_collect_symbol_completion_matches)
      	(ada_add_global_exceptions): Use objfile_compunits.
      d8aeb77f
    • Tom Tromey's avatar
      Remove ALL_OBJFILE_COMPUNITS · 592553c4
      Tom Tromey authored
      This removes ALL_OBJFILE_COMPUNITS, replacing its uses with ranged for
      loops.  Because ALL_COMPUNITS is also updated, in some places a
      declaration must be deleted to avoid shadowing.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* source.c (select_source_symtab)
      	(forget_cached_source_info_for_objfile): Remove declaration.
      	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Remove
      	declaration.
      	* maint.c (count_symtabs_and_blocks): Remove declaration.
      	* cp-support.c (add_symbol_overload_list_qualified): Remove
      	declaration.
      	* coffread.c (coff_symtab_read): Remove declaration.
      	* symtab.c (lookup_symbol_in_objfile_symtabs)
      	(basic_lookup_transparent_type_1): Use objfile_compunits.
      	(lookup_objfile_from_block, find_pc_sect_compunit_symtab)
      	(info_sources_command, search_symbols)
      	(default_collect_symbol_completion_matches_break_on)
      	(make_source_files_completion_list): Remove declaration.
      	* ada-lang.c (add_nonlocal_symbols): Use objfile_compunits.
      	(ada_collect_symbol_completion_matches)
      	(ada_add_global_exceptions): Remove declaration.
      	* linespec.c (iterate_over_all_matching_symtabs): Use
      	objfile_compunits.
      	* objfiles.h (ALL_OBJFILE_COMPUNITS): Remove.
      	(class objfile_compunits): New.
      	(ALL_COMPUNITS): Use objfile_compunits.
      	* symmisc.c (print_objfile_statistics, maintenance_info_symtabs)
      	(maintenance_check_symtabs, maintenance_info_line_tables): Use
      	objfile_compunits.
      	* objfiles.c (objfile_relocate1): Use objfile_compunits.
      592553c4
    • Tom Tromey's avatar
      Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS · 5325b9bf
      Tom Tromey authored
      This removes the ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS macros,
      replacing their uses with ranged for loops.
      
      In a couple of spots, a new declaration was needed in order to work
      around shadowing; these are just temporary and are removed in a
      subsequent patch.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* symtab.c (search_symbols)
      	(default_collect_symbol_completion_matches_break_on): Use
      	objfile_msymbols.
      	* ada-lang.c (ada_lookup_simple_minsym)
      	(ada_collect_symbol_completion_matches): Use objfile_msymbols.
      	* minsyms.c (find_solib_trampoline_target): Use objfile_msymbols.
      	* hppa-tdep.c (hppa_lookup_stub_minimal_symbol): Use
      	objfile_msymbols.
      	* coffread.c (coff_symfile_read): Use objfile_msymbols.
      	* symmisc.c (dump_msymbols): Use objfile_msymbols.
      	* objc-lang.c (find_methods): Use objfile_msymbols.
      	(info_selectors_command, info_classes_command): Likewise.
      	* stabsread.c (scan_file_globals): Use objfile_msymbols.
      	* objfiles.h (class objfile_msymbols): New.
      	(ALL_OBJFILE_MSYMBOLS): Remove.
      	(ALL_MSYMBOLS): Remove.
      5325b9bf
    • Tom Tromey's avatar
      Remove ALL_OBJFILES_SAFE · cac85af2
      Tom Tromey authored
      This removes the ALL_OBJFILES_SAFE macro, replacing the uses with
      ranged for loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* common/next-iterator.h (next_adapter): Add Iterator template
      	parameter.
      	* objfiles.h (ALL_OBJFILES_SAFE): Remove.
      	(class all_objfiles_safe): New.
      	* jit.c (jit_inferior_exit_hook): Use all_objfiles_safe.
      	* objfiles.c (put_objfile_before): Update comment.
      	(add_separate_debug_objfile): Likewise.
      	(free_all_objfiles): Use all_objfiles_safe.
      	(objfile_purge_solibs): Likewise.
      cac85af2
    • Tom Tromey's avatar
      Remove most uses of ALL_OBJFILES · aed57c53
      Tom Tromey authored
      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
      aed57c53
    • Tom Tromey's avatar
      Remove ALL_PSPACE_OBJFILES · 99d89cde
      Tom Tromey authored
      This removes the ALL_PSPACE_OBJFILES macro in favor of ranged for
      loops.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* probe.c (parse_probes_in_pspace): Use all_objfiles.
      	* guile/scm-progspace.c (gdbscm_progspace_objfiles): Use
      	all_objfiles.
      	* objfiles.h (ALL_PSPACE_OBJFILES): Remove.
      	* symmisc.c (print_symbol_bcache_statistics)
      	(print_objfile_statistics, maintenance_print_objfiles)
      	(maintenance_info_symtabs, maintenance_check_symtabs)
      	(maintenance_expand_symtabs, maintenance_info_line_tables): Use
      	all_objfiles.
      	* source.c (forget_cached_source_info): Use all_objfiles.
      	* symfile-debug.c (set_debug_symfile): Use all_objfiles.
      	* elfread.c (elf_gnu_ifunc_resolve_by_cache)
      	(elf_gnu_ifunc_resolve_by_got): Use all_objfiles.
      	* objfiles.c (update_section_map): Use all_objfiles.
      	(shared_objfile_contains_address_p): Likewise.
      	* psymtab.c (maintenance_info_psymtabs): Use all_objfiles.
      	* python/py-progspace.c (pspy_get_objfiles): Use all_objfiles.
      99d89cde
    • Tom Tromey's avatar
      Introduce all_objfiles and next_iterator · 21708325
      Tom Tromey authored
      This introduces an iterable object which can be used to iterate over
      objfiles.  It also introduces a generic "next_iterator", which can be
      used to iterate over types that have a "next" field.
      
      gdb/ChangeLog
      2019-01-09  Tom Tromey  <tom@tromey.com>
      
      	* common/next-iterator.h: New file.
      	* objfiles.h (class all_objfiles): New.
      	(struct objfile_iterator): New.
      21708325
    • GDB Administrator's avatar
      Automatic date update in version.in · d30e1903
      GDB Administrator authored
      d30e1903
  2. 09 Jan, 2019 14 commits
    • Sandra Loosemore's avatar
      Merge from gcc: use "cannot" instead of "can not" in libiberty and include. · a08da33e
      Sandra Loosemore authored
      2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
      
      	Merge from GCC:
      
      	2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR other/16615 [2/5]
      
      	include/
      	* libiberty.h: Mechanically replace "can not" with "cannot".
      	* plugin-api.h: Likewise.
      
      	libiberty/
      	* cp-demangle.c: Mechanically replace "can not" with "cannot".
      	* floatformat.c: Likewise.
      	* strerror.c: Likewise.
      a08da33e
    • Philippe Waroquiers's avatar
      NEWS: Move changed commands description to Changed commands section. · 669e09f6
      Philippe Waroquiers authored
      2019-01-09  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
      
      	* NEWS: Move the description of the changed "frame", "select-frame",
      	and "info frame" commands to the Changed commands section.
      669e09f6
    • John Darrington's avatar
      S12Z: Don't crash when disassembling invalid instructions. · 448b8ca8
      John Darrington authored
      Check for null before dereferencing an operand pointer.  Normally
      this situation should never arise, but could happen if a "partial"
      instruction is encountered at the end of a file or section.
      
      opcodes/
      	* s12z-dis.c (print_insn_s12z):  Do not dereference an
      	operand if it is null.
      448b8ca8
    • John Darrington's avatar
      S12Z: Fix disassembly of indexed OPR operands with zero index. · 39f286cd
      John Darrington authored
      gas/
      	* testsuite/gas/s12z/jsr.s: New case.
      	* testsuite/gas/s12z/jsr.d: New case.
      opcodes/
      	* s12z-dis.c (opr_emit_disassembly): Do not omit an index if it is
      	zero.
      39f286cd
    • Simon Marchi's avatar
      gdb: Remove support for old mangling schemes · 041be526
      Simon Marchi authored
      An upcoming sync with gcc's libiberty [1] will remove support for old
      mangling schemes (GNU v2, Lucid, ARM, HP and EDG).  It will remove the
      cplus_demangle_opname function, so we need to get rid of its usages in
      GDB (it's a GNU v2 specific function).
      
      I think the changes are mostly relatively obvious, some hacks that were
      necessary to support overloaded operators with GNU v2 mangling are not
      needed anymore.
      
      The change in stabsread.c is perhaps less obvious.  I think we could get
      rid of more code in that region that is specific to old mangling
      schemes, but I chose to do only the minimal changes required to remove
      the cplus_demangle_opname uses.  There is also a detailed comment just
      above that explaining how GNU v2 and v3 mangled symbols are handled, I
      decided to leave it as-is, since I wasn't sure which part to remove,
      change or leave there.
      
      [1] The commit "Remove support for demangling GCC 2.x era mangling
      schemes.", specifically.
      
      gdb/ChangeLog:
      
      	* gdbtypes.c (check_stub_method_group): Remove handling of old
      	mangling schemes.
      	* linespec.c (find_methods): Likewise.
      	* stabsread.c (read_member_functions): Likewise.
      	* valops.c (search_struct_method): Likewise.
      	(value_struct_elt_for_reference): Likewise.
      	* NEWS: Mention this change.
      
      gdb/testsuite/ChangeLog:
      
      	* gdb.cp/demangle.exp (test_gnu_style_demangling): Rename to...
      	(test_gnuv3_style_demangling): ... this.
      	(test_lucid_style_demangling): Remove.
      	(test_arm_style_demangling): Remove.
      	(test_hp_style_demangling): Remove.
      	(do_tests): Remove calls to the above.
      
      gdb/doc/ChangeLog:
      
      	* gdb.texinfo (Print Settings): Remove mention of specific
      	demangle-style values, just refer to the in-process help.
      041be526
    • Andrew Burgess's avatar
      gdb: Avoid signed integer overflow when printing source lines · 0e2a2133
      Andrew Burgess authored
      When printing source lines with calls to print_source_lines we need to
      pass a start line number and an end line number.  The end line number
      is calculated by calling get_lines_to_list and adding this value to
      the start line number.  For example this code from list_command:
      
          print_source_lines (cursal.symtab, first,
                              first + get_lines_to_list (), 0);
      
      The problem is that get_lines_to_list returns a value based on the
      GDB setting `set listsize LISTSIZE`.  By default LISTSIZE is 10,
      however, its also possible to set LISTSIZE to unlimited, in which
      case get_lines_to_list will return INT_MAX.
      
      As the parameter signature for print_source_lines is:
      
        void print_source_lines (struct symtab *, int, int,
                                 print_source_lines_flags);
      
      and `first` in the above code is an `int`, then when LISTSIZE is
      `unlimited` the above code will result in signed integer overflow,
      which is undefined.
      
      The solution in this patch is a new class source_lines_range that can
      be constructed from a single line number and a direction (forward or
      backward).  The range is then constructed from the line number and the
      value of get_lines_to_list.
      
      gdb/ChangeLog:
      
      	* cli/cli-cmds.c (list_command): Pass a source_lines_range to
      	print_source_lines.
      	* source.c (print_source_lines_base): Update line number check.
      	(print_source_lines): New function.
      	(source_lines_range::source_lines_range): New function.
      	* source.h (class source_lines_range): New class.
      	(print_source_lines): New declaration.
      0e2a2133
    • Nick Clifton's avatar
      Updated Spanish translation for the ld sub-directory. · 8379fac6
      Nick Clifton authored
      	* po/es.po: Updated Spanish translation.
      8379fac6
    • Nick Clifton's avatar
      Correct PR number in changelog entry. · c0b0b1c2
      Nick Clifton authored
      c0b0b1c2
    • Nick Clifton's avatar
      Fix a heap use after free memory access fault when displaying error messages... · 28e817cc
      Nick Clifton authored
      Fix a heap use after free memory access fault when displaying error messages about malformed archives.
      
      	PR 14049
      	* readelf.c (process_archive): Use arch.file_name in error
      	messages until the qualified name is available.
      28e817cc
    • Andrew Burgess's avatar
      gdb/testsuite: Remove interactive prompt case from mi_gdb_test · d820d0c3
      Andrew Burgess authored
      I noticed that when running this test:
      
        make check-gdb RUNTESTFLAGS="--target_board=native-gdbserver gdb.mi/mi-break.exp"
      
      I would occasionally see some UNRESOLVED test results like this:
      
        (gdb)
        PASS: gdb.mi/mi-break.exp: mi-mode=separate: breakpoint at main
        Expecting: ^(kill[
        ]+)?(.*[
        ]+[(]gdb[)]
        [ ]*)
        kill
        &"kill\n"
        ~"Kill the program being debugged? (y or n) [answered Y; input not from terminal]\n"
        =thread-group-exited,id="i1"
        ERROR: Got interactive prompt.
        UNRESOLVED: gdb.mi/mi-break.exp: mi-mode=separate:
      
      The problem appears to be that the expect buffer fills up to include
      the '(y or n)' prompt without including the following lines.
      
      The pattern supplied by the outer test script is looking for the
      following lines.  As the following lines are not present then expect
      matches on the interactive prompt case rather than the case for the
      user supplied pattern.
      
      The problem with this is that we are not really at an interactive
      prompt, GDB is providing an answer for us and then moving on.  When I
      examine a successful run of the test the output from GDB is identical,
      the only difference is where expect happens to buffer the output from
      GDB.
      
      This patch remove all special handling of the interactive prompt
      case.  This means that if we ever break GDB and start seeing an
      unexpected interactive prompt then tests will rely on a timeout to
      fail, instead of having dedicated interactive prompt detection, but
      this solves the problem that an auto-answered prompt looks very
      similar to an interactive prompt.
      
      With this patch in place I can now leave the following loop running
      indefinitely, where before it would fail usually after ~10
      iterations.
      
        while make check-gdb RUNTESTFLAGS="--target_board=native-gdbserver gdb.mi/mi-break.exp"; \
        do /bin/true; \
        done
      
      gdb/testsuite/ChangeLog:
      
      	* lib/mi-support.exp (mi_gdb_test): Remove interactive prompt
      	case.
      d820d0c3
    • Philippe Waroquiers's avatar
      Fix leak in linespec.c · 1055a3b4
      Philippe Waroquiers authored
      Valgrind reports a leak in many tests, such as:
      ==9382== 16 bytes in 1 blocks are definitely lost in loss record 236 of 3,282
      ==9382==    at 0x4C2BE6D: malloc (vg_replace_malloc.c:309)
      ==9382==    by 0x4197AF: xrealloc (common-utils.c:64)
      ==9382==    by 0x51D16A: xresizevec<linespec_canonical_name> (poison.h:170)
      ==9382==    by 0x51D16A: add_sal_to_sals(linespec_state*, std::vector<symtab_and_line, std::allocator<symtab_and_line> >*, symtab_and_line*, char const*, int) (linespec.c:1041)
      ==9382==    by 0x51E2BF: create_sals_line_offset (linespec.c:2215)
      ==9382==    by 0x51E2BF: convert_linespec_to_sals(linespec_state*, linespec*) (linespec.c:2358)
      ==9382==    by 0x521B5D: convert_explicit_location_to_sals (linespec.c:2473)
      
      Fix leak by xfree-ing self->canonical_names in linespec_state_destructor.
      The leak probably appeared with the patch 'Remove cleanup from linespec.c',
      as there was a cleanup to xfree canonical_names before the patch.
      
      Tested on Debian/amd64, native and under valgrind.
      
      2019-01-09  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
      
      	* linespec.c (linespec_state_destructor): Free self->canonical_names.
      1055a3b4
    • Andrew Paprocki's avatar
      Adjust bfd/warning.m4 egrep patterns · 3107326d
      Andrew Paprocki authored
      Adjust the `bfd/warning.m4` `egrep` patterns to handle preprocessors
      that do not define `__GNUC__`, leaving the string in the output.
      
      bfd/
      	* warning.m4: Adjust egrep pattern for non-GNU compilers.
      	* configure: Regenerate.
      binutils/
      	* configure: Regenerate.
      gas/
      	* configure: Regenerate.
      gold/
      	* configure: Regenerate.
      gprof/
      	* configure: Regenerate.
      ld/
      	* configure: Regenerate.
      opcodes/
      	* configure: Regenerate.
      3107326d
    • Alan Modra's avatar
      cxxfilt test failures · 923c6a75
      Alan Modra authored
      Fixes these:
      bfin-elf  +FAIL: cxxfilt: demangling _Z1fIvJiELb0EEvPDOT1_EFT_DpT0_E
      bfin-elf  +FAIL: cxxfilt: demangling _Z14int_if_addableI1YERiP1AIXszpldecvPT_Li0EdecvS4_Li0EEE
      h8300-elf  +FAIL: cxxfilt: demangling _Z1fIvJiELb0EEvPDOT1_EFT_DpT0_E
      h8300-elf  +FAIL: cxxfilt: demangling _Z14int_if_addableI1YERiP1AIXszpldecvPT_Li0EdecvS4_Li0EEE
      i686-pe  +FAIL: cxxfilt: demangling _Z1fIvJiELb0EEvPDOT1_EFT_DpT0_E
      i686-pe  +FAIL: cxxfilt: demangling _Z14int_if_addableI1YERiP1AIXszpldecvPT_Li0EdecvS4_Li0EEE
      i686-vxworks  +FAIL: cxxfilt: demangling _Z1fIvJiELb0EEvPDOT1_EFT_DpT0_E
      i686-vxworks  +FAIL: cxxfilt: demangling _Z14int_if_addableI1YERiP1AIXszpldecvPT_Li0EdecvS4_Li0EEE
      m32c-elf  +FAIL: cxxfilt: demangling _Z1fIvJiELb0EEvPDOT1_EFT_DpT0_E
      m32c-elf  +FAIL: cxxfilt: demangling _Z14int_if_addableI1YERiP1AIXszpldecvPT_Li0EdecvS4_Li0EEE
      
      	* testsuite/binutils-all/cxxfilt.exp: Pass --no-strip-underscores
      	unconditionally to tests needing the option rather than via a
      	list of targets.
      923c6a75
    • GDB Administrator's avatar
      Automatic date update in version.in · 05497ea8
      GDB Administrator authored
      05497ea8
  3. 08 Jan, 2019 1 commit
    • Tom Tromey's avatar
      Fix build failure with macOS bison · cfeadda5
      Tom Tromey authored
      PR gdb/24060 points out a compilation failure of the C, Fortran and Pascal
      parsers when they are built using the macOS system bison.  The bug is a name
      clash between the VARIABLE token name and the VARIABLE enumerator in ui-out.h.
      
      This patch renames VARIABLE in c-exp.y, f-exp.y and p-exp.y to DOLLAR_VARIABLE
      to avoid the clash.  It also renames similar variables in other .y files so
      that all languages use the same name.
      
      gdb/ChangeLog
      2019-01-07  Tom Tromey  <tom@tromey.com>
      2019-01-07  Simon Marchi  <simon.marchi@ericsson.com>
      
      	PR gdb/24060:
      	* ada-exp.y (DOLLAR_VARIABLE): Rename from SPECIAL_VARIABLE.
      	* ada-lex.l (DOLLAR_VARIABLE): Likewise.
      	* c-exp.y (DOLLAR_VARIABLE): Rename from VARIABLE.
      	* f-exp.y (DOLLAR_VARIABLE): Likewise.
      	* m2-exp.y (DOLLAR_VARIABLE): Rename from INTERNAL_VAR.
      	* p-exp.y (DOLLAR_VARIABLE): Rename from VARIABLE.
      cfeadda5