1. 14 Jan, 2019 2 commits
    • Tom Tromey's avatar
      Fix placement of output in TUI mode · bbd94648
      Tom Tromey authored
      The fix for PR tui/28819 regressed gdb command output a bit.  In
      "nonl" mode, pressing the Enter key will result in a newline not being
      echoed properly, so that gdb output for the command will begin on the
      same line as the input.
      
      This patch changes gdb_wgetch to echo the newline.  I have only tested
      this interactively, as the TUI doesn't have automated tests in
      general.
      
      gdb/ChangeLog
      2019-01-14  Tom Tromey  <tom@tromey.com>
      
      	PR tui/28819:
      	* tui/tui-io.c (gdb_wgetch): Print \r when needed.
      bbd94648
    • Pedro Franco de Carvalho's avatar
      [PowerPC] Aliases for vector registers · 6f072a10
      Pedro Franco de Carvalho authored
      This patch defines pseudo-registers "v0" through "v31" as aliases that
      map to the corresponding raw "vr0" through "vr31" vector registers for
      Power.
      
      The motivation behind this is that although GDB defines these
      registers as "vrX", the disassembler prints them as "vX", e.g. as the
      operands in instructions such as "vaddubm v2,v1,v1".  This can be
      confusing to users trying to print out the values of the operands
      while inspecting the disassembled code.
      
      The new aliases are made not to belong to any register group, to avoid
      duplicated values in "info register vector" and "info register all".
      The arch-specific rs6000_pseudo_register_reggroup_p function had
      previously been removed since the other pseudo-registers could have
      their groups inferred by their type.  It restored with this patch to
      handle the aliases.  Membership for the other pseudo-registers is
      still determined using the default function.
      
      A new tests checks that GDB prints the expected values of vector
      registers after they are filled by the inferior, by using both the raw
      names and the aliases.  Two other existing tests are modified to also
      test the aliases.
      
      gdb/ChangeLog:
      2019-01-14  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>
      
      	* ppc-tdep.h (struct gdbarch_tdep) <ppc_v0_alias_regnum>: New
      	field.
      	* rs6000-tdep.c: Include reggroups.h.
      	(IS_V_ALIAS_PSEUDOREG): Define.
      	(rs6000_register_name): Return names for the "vX" aliases.
      	(rs6000_pseudo_register_type): Return type for the "vX" aliases.
      	(rs6000_pseudo_register_reggroup_p): Restore.  Handle "vX"
      	aliases.  Call default_register_reggroup_p for all other
      	pseudo-registers.
      	(v_alias_pseudo_register_read, v_alias_pseudo_register_write):
      	New functions.
      	(rs6000_pseudo_register_read, rs6000_pseudo_register_write):
      	Handle "vX" aliases.
      	(v_alias_pseudo_register_collect): New function.
      	(rs6000_ax_pseudo_register_collect): Handle "vX" aliases.
      	(rs6000_gdbarch_init): Initialize "vX" aliases as
      	pseudo-registers.  Restore registration of
      	rs6000_pseudo_register_reggroup_p with
      	set_tdesc_pseudo_register_reggroup_p.
      
      gdb/testsuite/ChangeLog:
      2019-01-14  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>
      
      	* gdb.arch/vsx-regs.exp: Add tests that use the vector register
      	aliases.
      	* gdb.arch/altivec-regs.exp: Likewise.  Fix indentation of two
      	tests.
      	* gdb.arch/powerpc-vector-regs.c: New file.
      	* gdb.arch/powerpc-vector-regs.exp: New file.
      
      gdb/doc/ChangeLog:
      2019-01-14  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>
      
      	* gdb.texinfo (PowerPC Features): Document the alias
      	pseudo-registers for the org.gnu.gdb.power.altivec feature.
      6f072a10
  2. 13 Jan, 2019 1 commit
    • Max Filippov's avatar
      gdb: xtensa: fix register counters for xtensa-linux · 1a782351
      Max Filippov authored
      Commit 37d9e062 ("gdb: xtensa: handle privileged registers") changed
      how the tdep->num_regs and tdep->num_pseudo_regs are calculated, but
      didn't update these numbers in the gdbarch for the xtensa-linux target.
      As a result xtensa-linux-gdb behaves as xtensa-elf-gdb and cannot
      communicate with the linux gdbserver.
      Fix tdep->num_pseudo_regs calculation and call set_gdbarch_num_regs and
      set_gdbarch_num_pseudo_regs in xtensa_linux_init_abi.
      
      gdb/
      2019-01-13  Max Filippov  <jcmvbkbc@gmail.com>
      
      	* xtensa-linux-tdep.c (xtensa_linux_init_abi): Update
      	tdep->num_pseudo_regs. Add calls to set_gdbarch_num_regs and
      	set_gdbarch_num_pseudo_regs.
      1a782351
  3. 12 Jan, 2019 3 commits
    • Philippe Waroquiers's avatar
      Implement help/show values for 'set|show style'. · d73cff18
      Philippe Waroquiers authored
      Currently, the behaviour is:
        (gdb) show style
        (gdb) set style
        (gdb) show style address
        (gdb) set style address
        (gdb)
      
      With this patch, the behaviour is:
        (gdb) show style
        style address background:  The "address" background color is: none
        style address foreground:  The "address" foreground color is: blue
        style address intensity:  The "address" display intensity is: normal
        enabled:  CLI output styling is enabled.
        style filename background:  The "filename" background color is: none
        style filename foreground:  The "filename" foreground color is: green
        style filename intensity:  The "filename" display intensity is: normal
        style function background:  The "function" background color is: none
        style function foreground:  The "function" foreground color is: yellow
        style function intensity:  The "function" display intensity is: normal
        style variable background:  The "variable" background color is: none
        style variable foreground:  The "variable" foreground color is: cyan
        style variable intensity:  The "variable" display intensity is: normal
        (gdb) set style
        "set style" must be followed by an appropriate subcommand.
        List of set style subcommands:
      
        set style address -- Address display styling
        set style enabled -- Set whether CLI styling is enabled
        set style filename -- Filename display styling
        set style function -- Function name display styling
        set style variable -- Variable name display styling
      
        Type "help set style" followed by set style subcommand name for full documentation.
        Type "apropos word" to search for commands related to "word".
        Command name abbreviations are allowed if unambiguous.
        (gdb) show style address
        background:  The "filename" background color is: none
        foreground:  The "filename" foreground color is: green
        intensity:  The "filename" display intensity is: normal
        (gdb) set style address
        List of set style address subcommands:
      
        set style address background -- Set the background color for this property
        set style address foreground -- Set the foreground color for this property
        set style address intensity -- Set the display intensity color for this property
      
        Type "help set style address" followed by set style address subcommand name for full documentation.
        Type "apropos word" to search for commands related to "word".
        Command name abbreviations are allowed if unambiguous.
        (gdb)
      
      gdb/ChangeLog
      	* cli/cli-style.h (class cli_style_option): <add_setshow_commands>
      	Remove arg prefixname, add do_set and do_show.
      	Add member functions set_list and show_list.
      	* cli/cli-style.c (class cli_style_option): Update accordingly.
      	(style_set_list): Move to file scope.
      	(style_show_list): Likewise.
      	(set_style): Call help_list.
      	(show_style): Call cmd_show_list.
      	(_initialize_cli_style): New macro STYLE_ADD_SETSHOW_COMMANDS.
      	Update to use the new macro.
      d73cff18
    • Joel Brobecker's avatar
      expand a bit the in-GDB help for the "catch exception" help text · 60a90376
      Joel Brobecker authored
      One of our users remarked that the help doesn't mention the fact that
      the "catch exception" supports the special argument "unhandled" to catch
      exceptions which do not have a handler. This patch changes the output
      of...
      
       | (gdb) help catch exception
       | Catch Ada exceptions, when raised.
       | With an argument, catch only exceptions with the given name.
      
      ... to ...
      
       | (gdb) help catch exception
       | Catch Ada exceptions, when raised.
       | Usage: catch exception [ ARG ]
       |
       | Without any argument, stop when any Ada exception is raised.
       | If ARG is "unhandled" (without the quotes), only stop when the exception
       | being raised does not have a handler (and will therefore lead to the task's
       | termination).
       | Otherwise, the catchpoint only stops when the name of the exception being
       | raised is the same as ARG.
      
      gdb/ChangeLog:
      
              * ada-lang.c (_initialize_ada_language): Expand the help text
              for the "catch exception" command.
      
      Tested on x86_64-linux, no regression.
      60a90376
    • Philippe Waroquiers's avatar
      Fix 'obj' may be used uninitialized warning in symtab.c:matching_obj_sections. · 9d7c67bf
      Philippe Waroquiers authored
      Fix warning:
      
      gdb/symtab.c: In function ‘int matching_obj_sections(obj_section*, obj_section*)’:
      gdb/symtab.c:1024:12: warning: ‘obj’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         if (obj->separate_debug_objfile_backlink != NULL
      
      2019-01-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
      
      	* symtab.c (matching_obj_sections): Initialize obj,
      	declare it closer to its usage.
      9d7c67bf
  4. 10 Jan, 2019 34 commits
    • Tom Tromey's avatar
      Replace inf_threads_iterator with next_iterator · 7cf47dc4
      Tom Tromey authored
      This changes inf_threads_iterator and some range adapters in
      thread-iter.h to use next_iterator and next_adapter instead.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* thread-iter.h (inf_threads_iterator): Use next_iterator.
      	(basic_inf_threads_range): Remove.
      	(inf_threads_range, inf_non_exited_threads_range)
      	(safe_inf_threads_range): Use next_adapter.
      7cf47dc4
    • Keith Seitz's avatar
      gdb/23712: Remove dw2_add_symbol_to_list · d3cb6808
      Keith Seitz authored
      Finally, we can remove dw2_add_symbol_to_list since the wrapper function
      originally introduced to catch this multi-language scenario is no longer
      needed.  With multi-language dictionaries, we can now support adding
      symbols of multiple languages, negating the need for the assertion
      entirely.
      
      This patch should now fix gdb/23712 (and symtab/23010).  At least it will
      if the NULL buildsym_compunit problem doesn't strike first (see gdb/23773).
      
      gdb/ChangeLog:
      
      	PR gdb/23712
      	PR symtab/23010
      	* dwarf2read.c (dw2_add_symbol_to_list): Remove.
      	(fixup_go_packaging, new_symbol): Use add_symbol_to_list.
      d3cb6808
    • Keith Seitz's avatar
      gdb/23712: Cleanup/Remove temporary dictionary functions · 63a20375
      Keith Seitz authored
      Now that multidictionary's are being used, there is no longer any need
      to retain the four temporary functions introduced in the beginning of
      this series.
      
      This patch removes them.
      
      As an additional cleanup, since the single-language dictionaries are
      no longer used outside dictionary.c, make all of those functions
      static.
      
      gdb/ChangeLog:
      
      	PR gdb/23712
      	PR symtab/23010
      	* dictionary.c (pending_to_vector): Remove.
      	(dict_create_hashed_1, dict_create_linear_1, dict_add_pending_1):
      	Remove _1 suffix, replacing functions of the same name.  Update
      	all callers.
      	(dict_create_hashed, dict_create_hashed_expandable)
      	(dict_create_linear, dict_create_linear_expandable, dict_free)
      	(dict_add_symbol, dict_add_pending, dict_size, dict_empty):
      	Make functions static.
      63a20375
    • Keith Seitz's avatar
      gdb/23712: Use new multidictionary API · b026f593
      Keith Seitz authored
      This patch builds on the previous by enabling the `new' multidictionary
      API.  A lot of the hunks are simply textual replacements of "dict_"
      with "mdict_" and similar transformations.
      
      A word of warning, even with the use of multidictionaries, the code
      still does not satisfactorily fix the reported problems with gdb/23712
      (or gdb/23010). We still have additional changes to make before that
      happens.
      
      gdb/ChangeLog:
      
      	PR gdb/23712
      	PR symtab/23010
      	* dictionary.h (struct dictionary): Replace declaration with
      	multidictionary.
      	(dict_create_hashed, dict_create_hashed_expandable)
      	(dict_create_linear, dict_create_linear_expandable)
      	(dict_free, dict_add_symbol, dict_add_pending, dict_empty)
      	(dict_iterator_first, dict_iterator_next, dict_iter_match_first)
      	(dict_iter_match_next, dict_size): Rename to "mdict_" versions
      	taking multidictionary argument.
      	[ALL_DICT_SYMBOLS]: Update for multidictionary.
      	* block.h (struct block) <dict>: Change to multidictionary
      	and rename `multidict'.
      	* block.c, buildsym.c, jit.c, mdebugread.c, objfiles.c,
      	symmisc.c: Update all dictionary references to multidictionary.
      b026f593
    • Keith Seitz's avatar
      gdb/23712: Introduce multidictionary's · c7748ee9
      Keith Seitz authored
      gdb/23712 is a new manifestation of the now-infamous (at least to me)
      symtab/23010 assertion failure (DICT_LANGUAGE == SYMBOL_LANGAUGE).
      
      An example of the problem (using test case from symtab/23010):
      
      Reading symbols from /home/rdiez/rdiez/arduino/JtagDue/BuildOutput/JtagDue-obj-release/firmware.elf...done.
      (gdb) p SysTick_Handler
      dwarf2read.c:9715: internal-error: void dw2_add_symbol_to_list(symbol*, pending**): Assertion `(*listhead) == NULL || (SYMBOL_LANGUAGE ((*listhead)->symbol[0]) == SYMBOL_LANGUAGE (symbol))' failed.
      A problem internal to GDB has been detected,
      further debugging may prove unreliable.
      Quit this debugging session? (y or n)
      
      This assertion was added specifically to catch this condition (of adding
      symbols of different languages to a single pending list).
      
      The problems we're now seeing on systems utilizing DWARF debugging seem to
      be caused by the use of LTO, which adds a CU with an artificial DIE of
      language C99 which references DIEs in other CUs of language C++.
      
      Thus, we create a dictionary containing symbols of C99 but end up
      stuffing C++ symbols into it, and the dw2_add_symbol_to_list triggers.
      
      The approach taken here to fix this is to introduce multi-language
      dictionaries to "replace" the standard, single-language dictionaries
      used today.
      
      Note to reviewers: This patch introduces some temporary functions to
      aide with review.  This and other artifacts (such as "See dictionary.h"
      which appear incorrect) will all be valid at the end of the series.
      
      This first patch introduces the new multidictionary and its API (which
      is, by design, identical to the old dictionary interface).  It also
      mutates dict_create_hashed and dict_create_linear so that they take
      a std::vector instead of the usual struct pending linked list.  This will
      be needed later on.
      
      This patch does /not/ actually enable multidictionary's.  That is left
      for a subsequent patch in the series.
      
      I've done exhaustive performance testing with this approach, and I've
      attempted to minimize the overhead for the (overwhelmingly) most common
      one-language scenario.
      
      On average, a -g3 -O0 GDB (the one we developers use) will see
      approximately a 4% slowdown when initially reading symbols. [I've
      tested only GDB and firefox with -readnow.]  When using -O2, this
      difference shrinks to ~0.5%.  Since a number of runs with these
      patches actually run /faster/ than unpatched GDB, I conclude that
      these tests have at least a 0.5% error margin.
      
      On our own gdb.perf test suite, again, results appear to be pretty
      negligible.  Differences to unpatched GDB range from -7.8% (yes,
      patched version is again faster than unpatched) to 27%.  All tests
      lying outside "negligible," such as the 27% slowdown, involve a total
      run time of 0.0007 (or less) with smaller numbers of CUs/DSOs (usually 10
      or 100).  In all cases, the follow-up tests with more CUs/DSOs is never
      more than 3% difference to the baseline, unpatched GDB.
      
      In my opinion, these results are satisfactory.
      
      gdb/ChangeLog:
      
      	PR gdb/23712
      	PR symtab/23010
      	* dictionary.c: Include unordered_map.
      	(pending_to_vector): New function.
      	(dict_create_hashed_1, dict_create_linear_1, dict_add_pending_1):
      	Rewrite the non-"_1" functions to take vector instead
      	of linked list.
      	(dict_create_hashed, dict_create_linear, dict_add_pending): Use the
      	"new" _1 versions of the same name.
      	(multidictionary): Define.
      	(std::hash<enum language): New definition.
      	(collate_pending_symbols_by_language, mdict_create_hashed)
      	(mdict_create_hashed_expandable, mdict_create_linear)
      	(mdict_create_linear_expandable, mdict_free)
      	(find_language_dictionary, create_new_language_dictionary)
      	(mdict_add_symbol, mdict_add_pending, mdict_iterator_first)
      	(mdict_iterator_next, mdict_iter_match_first, mdict_iter_match_next)
      	(mdict_size, mdict_empty): New functions.
      	* dictionary.h (mdict_iterator): Define.
      c7748ee9
    • Pedro Alves's avatar
      Fix tracepoint.c:parse_tracepoint_definition leak (and one more) · 67aa1f3c
      Pedro Alves authored
      Coverity points out that gdb/tracepoint.c:parse_tracepoint_definition
      can leak 'cond' in this line:
      
            cond = (char *) xmalloc (2 * xlen + 1);
      
      That can leak because we're in a loop and 'cond' may have already been
      xmalloc'ed into in a previous iteration.  That won't normally happen,
      because we don't expect to see a tracepoint definition with multiple
      conditions listed, but, it doesn't hurt to be pedantically correct,
      in case some stub manages to send something odd back to GDB.
      
      At first I thought I'd just replace the xmalloc call with:
      
            cond = (char *) xrealloc (cond, 2 * xlen + 1);
      
      and be done with it.  However, my pedantic self realizes that
      warning() can throw as well (due to pagination + Ctrl-C), so I fixed
      it using gdb::unique_xmalloc_ptr instead.
      
      While doing this, I noticed that these vectors in struct uploaded_tp:
      
        std::vector<char *> actions;
        std::vector<char *> step_actions;
      
      hold heap-allocated strings, but nothing is freeing the strings,
      AFAICS.
      
      So I ended up switching all the heap-allocated strings in uploaded_tp
      to unique pointers.  This patch is the result of that.
      
      I also wrote an alternative, but similar patch that uses std::string
      throughout instead of gdb::unique_xmalloc_ptr, but in the end reverted
      it because the code didn't look that much better, and I kind of
      dislike replacing pointers with fat std::string's (3 or 4 times the
      size of a pointer) in structures.
      
      gdb/ChangeLog:
      2019-01-10  Pedro Alves  <palves@redhat.com>
      
      	* breakpoint.c (read_uploaded_action)
      	(create_tracepoint_from_upload): Adjust to use
      	gdb::unique_xmalloc_ptr.
      	* ctf.c (ctf_write_uploaded_tp):
      	(SET_ARRAY_FIELD): Use emplace_back.
      	(SET_STRING_FIELD): Adjust to use gdb::unique_xmalloc_ptr.
      	* tracefile-tfile.c (tfile_write_uploaded_tp):
      	* tracepoint.c (parse_tracepoint_definition): Adjust to use
      	gdb::unique_xmalloc_ptr.
      	* tracepoint.h (struct uploaded_tp) <cond, actions, step_actions,
      	at_string, cond_string, cmd_strings>: Replace char pointers
      	with gdb::unique_xmalloc_ptr.
      67aa1f3c
    • Pedro Alves's avatar
      Fix leak in solib-target.c:library_list_start_library · 2f667667
      Pedro Alves authored
      lm_info_target::name is nowadays std::string, so we're leaking the
      result of xstrdup.
      
      gdb/ChangeLog:
      2019-01-10  Pedro Alves  <palves@redhat.com>
      
      	* solib-target.c (library_list_start_library): Don't xstrdup name.
      2f667667
    • Pedro Alves's avatar
      Fix leak in mdebugread.c · 36cb7237
      Pedro Alves authored
      Coverity points out that all the "continue;" statements in the switch
      case in parse_partial_symbols leak STABSTRING.  This is because we
      only release STABSTRING at the end of the scope, with:
      
           	     	  if (stabstring
      		    && stabstring != debug_info->ss + fh->issBase + sh.iss)
      		  xfree (stabstring);
      
      but that bit of code is skipped if a case in the switch statement ends
      with "continue".
      
      Fix this by using gdb::unique_xmalloc_ptr to manage the heap-allocated
      version of 'stabsstring'.
      
      I don't know how to test this.
      
      gdb/ChangeLog:
      2019-01-10  Pedro Alves  <palves@redhat.com>
      
      	* mdebugread.c (parse_partial_symbols): Use
      	gdb::unique_xmalloc_ptr to manage heap-allocated 'stabsstring'.
      36cb7237
    • Andrew Burgess's avatar
      gdb: Fix incorrect variable name in scoped_switch_fork_info · da584958
      Andrew Burgess authored
      The previous commit:
      
        commit 1ef8573c
        Date:   Wed Jan 9 14:02:39 2019 +0000
      
            gdb: Improve scoped_switch_fork_info class
      
      contained a bug, an incorrect variable name was used. Fixed in this
      commit.
      
      gdb/ChangeLog:
      
      	* linux-fork.c (scoped_switch_fork_info)
      	<~scoped_switch_fork_info>: Fix incorrect variable name.
      da584958
    • Andrew Burgess's avatar
      gdb: Improve scoped_switch_fork_info class · 1ef8573c
      Andrew Burgess authored
      After committing this patch I got this feedback:
      
         https://sourceware.org/ml/gdb-patches/2019-01/msg00181.html
      
      This patch makes the constructor of scoped_switch_fork_info explicit,
      and wraps the core of the destructor in a TRY/CATCH block.
      
      I've run this through the testsuite on X86-64/GNU Linux, however, this
      code is not exercised, so this patch is untested.
      
      gdb/ChangeLog:
      
      	* linux-fork.c (scoped_switch_fork_info)
      	<scoped_switch_fork_info>: Make explicit.
      	<~scoped_switch_fork_info>: Wrap core in TRY/CATCH.
      1ef8573c
    • Tom Tromey's avatar
      Move psymtabs to their own obstack · 8d7bcccb
      Tom Tromey authored
      Previously, the psymtab obstack was just a pointer to the objfile
      obstack.  This patch changes psymtabs to use their own obstack,
      instead.  A gdb::optional is used to avoid unnecessary allocation when
      the obstack is not needed.
      
      After this patch, the psymtab code lifetime model is that, in the core
      psymtab code, objects allocated on the psymtab obstack may point to
      other such objects, or to objects on the per-BFD obstack -- but never
      to the objfile obstack.
      
      Note however that this invariant is only obeyed the core psymtab code,
      and even there not quite fully: there is still a link from the psymtab
      to the full symtab.
      
      Symbol readers are free to work however they like; and in particular,
      even after this patch, in practice all symbol readers violate this
      invariant via the read_symtab_private field.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* objfiles.h (objfile::reset_psymtabs): Update.
      	* objfiles.c (objfile::objfile): Update.
      	* psymtab.h (psymtab_storage::obstack): Update.
      	(psymtab_storage::m_obstack): Use gdb::optional.
      	(class psymtab_storage): Update comment.  Remove objfile
      	parameter.
      	* psymtab.c (psymtab_storage::psymtab_storage): Update.
      8d7bcccb
    • Tom Tromey's avatar
      Make psymtab_storage::free_psymtabs private · b596a3c7
      Tom Tromey authored
      This adds a new psymtab allocation method to psymtab_storage and
      changes the free_psymtabs member to be private.  While not strictly
      necessary, this seems like a decent cleanup, and also makes it simpler
      to move psymtabs off of obstacks entirely, should that prove
      desirable.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* psymtab.h (psymtab_storage::allocate_psymtab): New method.
      	<free_psymtabs>: Now private.
      	* psymtab.c (psymtab_storage::allocate_psymtab): Implement.
      	(allocate_psymtab): Use new method.
      b596a3c7
    • Tom Tromey's avatar
      Add psymtab_storage::allocate_dependencies · a9342b62
      Tom Tromey authored
      This adds a new method to psymtab_storage to allocate storage for
      psymtab dependencies, then changes the symbol readers to use it.  This
      has the effect of moving the storage to the psymtab storage obstack.
      
      gdb/ChangeLog
      2019-01-10  Tom Tromey  <tom@tromey.com>
      
      	* xcoffread.c (xcoff_end_psymtab): Use allocate_dependencies.
      	* psymtab.h (psymtab_storage::allocate_dependencies): New method.
      	* mdebugread.c (parse_partial_symbols): Use
      	allocate_dependencies.
      	* dwarf2read.c (dwarf2_create_include_psymtab): Use
      	allocate_dependencies.
      	(process_psymtab_comp_unit_reader)
      	(build_type_psymtab_dependencies): Likewise.
      	* dbxread.c (dbx_end_psymtab): Use allocate_dependencies.
      a9342b62
    • 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
    • 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