gdb/23712: Use new multidictionary API
[deliverable/binutils-gdb.git] / gdb / symmisc.c
index 24ecea39daba3234851db000396c4cf6d1bc9dca..92c054cba3f8f12b63acdd0eae571a0b189eec05 100644 (file)
@@ -69,8 +69,9 @@ print_symbol_bcache_statistics (void)
        QUIT;
        printf_filtered (_("Byte cache statistics for '%s':\n"),
                         objfile_name (objfile));
-       print_bcache_statistics (psymbol_bcache_get_bcache (objfile->psymbol_cache),
-                                "partial symbol cache");
+       print_bcache_statistics
+         (psymbol_bcache_get_bcache (objfile->partial_symtabs->psymbol_cache),
+          "partial symbol cache");
        print_bcache_statistics (objfile->per_bfd->macro_cache,
                                 "preprocessor macro cache");
        print_bcache_statistics (objfile->per_bfd->filename_cache,
@@ -82,8 +83,6 @@ void
 print_objfile_statistics (void)
 {
   struct program_space *pspace;
-  struct compunit_symtab *cu;
-  struct symtab *s;
   int i, linetables, blockvectors;
 
   ALL_PSPACES (pspace)
@@ -108,15 +107,18 @@ print_objfile_statistics (void)
                         OBJSTAT (objfile, n_types));
       if (objfile->sf)
        objfile->sf->qf->print_stats (objfile);
-      i = linetables = blockvectors = 0;
-      ALL_OBJFILE_FILETABS (objfile, cu, s)
+      i = linetables = 0;
+      for (compunit_symtab *cu : objfile_compunits (objfile))
        {
-         i++;
-         if (SYMTAB_LINETABLE (s) != NULL)
-           linetables++;
+         for (symtab *s : compunit_filetabs (cu))
+           {
+             i++;
+             if (SYMTAB_LINETABLE (s) != NULL)
+               linetables++;
+           }
        }
-      ALL_OBJFILE_COMPUNITS (objfile, cu)
-       blockvectors++;
+      blockvectors = std::distance (objfile_compunits (objfile).begin (),
+                                   objfile_compunits (objfile).end ());
       printf_filtered (_("  Number of symbol tables: %d\n"), i);
       printf_filtered (_("  Number of symbol tables with line tables: %d\n"),
                       linetables);
@@ -132,9 +134,10 @@ print_objfile_statistics (void)
       printf_filtered (_("  Total memory used for BFD obstack: %s\n"),
                       pulongest (obstack_memory_used (&objfile->per_bfd
                                                       ->storage_obstack)));
-      printf_filtered (_("  Total memory used for psymbol cache: %d\n"),
-                      bcache_memory_used (psymbol_bcache_get_bcache
-                                          (objfile->psymbol_cache)));
+      printf_filtered
+       (_("  Total memory used for psymbol cache: %d\n"),
+        bcache_memory_used (psymbol_bcache_get_bcache
+                            (objfile->partial_symtabs->psymbol_cache)));
       printf_filtered (_("  Total memory used for macro cache: %d\n"),
                       bcache_memory_used (objfile->per_bfd->macro_cache));
       printf_filtered (_("  Total memory used for file name cache: %d\n"),
@@ -145,9 +148,6 @@ print_objfile_statistics (void)
 static void
 dump_objfile (struct objfile *objfile)
 {
-  struct compunit_symtab *cust;
-  struct symtab *symtab;
-
   printf_filtered ("\nObject file %s:  ", objfile_name (objfile));
   printf_filtered ("Objfile at ");
   gdb_print_host_address (objfile, gdb_stdout);
@@ -162,16 +162,20 @@ dump_objfile (struct objfile *objfile)
   if (objfile->compunit_symtabs != NULL)
     {
       printf_filtered ("Symtabs:\n");
-      ALL_OBJFILE_FILETABS (objfile, cust, symtab)
+      for (compunit_symtab *cu : objfile_compunits (objfile))
        {
-         printf_filtered ("%s at ", symtab_to_filename_for_display (symtab));
-         gdb_print_host_address (symtab, gdb_stdout);
-         printf_filtered (", ");
-         if (SYMTAB_OBJFILE (symtab) != objfile)
+         for (symtab *symtab : compunit_filetabs (cu))
            {
-             printf_filtered ("NOT ON CHAIN!  ");
+             printf_filtered ("%s at ",
+                              symtab_to_filename_for_display (symtab));
+             gdb_print_host_address (symtab, gdb_stdout);
+             printf_filtered (", ");
+             if (SYMTAB_OBJFILE (symtab) != objfile)
+               {
+                 printf_filtered ("NOT ON CHAIN!  ");
+               }
+             wrap_here ("  ");
            }
-         wrap_here ("  ");
        }
       printf_filtered ("\n\n");
     }
@@ -183,7 +187,6 @@ static void
 dump_msymbols (struct objfile *objfile, struct ui_file *outfile)
 {
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
-  struct minimal_symbol *msymbol;
   int index;
   char ms_type;
 
@@ -194,7 +197,7 @@ dump_msymbols (struct objfile *objfile, struct ui_file *outfile)
       return;
     }
   index = 0;
-  ALL_OBJFILE_MSYMBOLS (objfile, msymbol)
+  for (minimal_symbol *msymbol : objfile_msymbols (objfile))
     {
       struct obj_section *section = MSYMBOL_OBJ_SECTION (objfile, msymbol);
 
@@ -273,7 +276,7 @@ dump_symtab_1 (struct symtab *symtab, struct ui_file *outfile)
   struct objfile *objfile = SYMTAB_OBJFILE (symtab);
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
   int i;
-  struct dict_iterator iter;
+  struct mdict_iterator miter;
   int len;
   struct linetable *l;
   const struct blockvector *bv;
@@ -329,7 +332,7 @@ dump_symtab_1 (struct symtab *symtab, struct ui_file *outfile)
             even if we're using a hashtable, but nothing else but this message
             wants it.  */
          fprintf_filtered (outfile, ", %d syms/buckets in ",
-                           dict_size (BLOCK_DICT (b)));
+                           mdict_size (BLOCK_MULTIDICT (b)));
          fputs_filtered (paddress (gdbarch, BLOCK_START (b)), outfile);
          fprintf_filtered (outfile, "..");
          fputs_filtered (paddress (gdbarch, BLOCK_END (b)), outfile);
@@ -347,7 +350,7 @@ dump_symtab_1 (struct symtab *symtab, struct ui_file *outfile)
          /* Now print each symbol in this block (in no particular order, if
             we're using a hashtable).  Note that we only want this
             block, not any blocks from included symtabs.  */
-         ALL_DICT_SYMBOLS (BLOCK_DICT (b), iter, sym)
+         ALL_DICT_SYMBOLS (BLOCK_MULTIDICT (b), miter, sym)
            {
              TRY
                {
@@ -470,12 +473,9 @@ maintenance_print_symbols (const char *args, int from_tty)
     }
   else
     {
-      struct objfile *objfile;
-      struct compunit_symtab *cu;
-      struct symtab *s;
       int found = 0;
 
-      ALL_OBJFILES (objfile)
+      for (objfile *objfile : all_objfiles (current_program_space))
        {
          int print_for_objfile = 1;
 
@@ -486,21 +486,24 @@ maintenance_print_symbols (const char *args, int from_tty)
          if (!print_for_objfile)
            continue;
 
-         ALL_OBJFILE_FILETABS (objfile, cu, s)
+         for (compunit_symtab *cu : objfile_compunits (objfile))
            {
-             int print_for_source = 0;
-
-             QUIT;
-             if (source_arg != NULL)
+             for (symtab *s : compunit_filetabs (cu))
                {
-                 print_for_source
-                   = compare_filenames_for_search
-                       (symtab_to_filename_for_display (s), source_arg);
-                 found = 1;
+                 int print_for_source = 0;
+
+                 QUIT;
+                 if (source_arg != NULL)
+                   {
+                     print_for_source
+                       = compare_filenames_for_search
+                       (symtab_to_filename_for_display (s), source_arg);
+                     found = 1;
+                   }
+                 if (source_arg == NULL
+                     || print_for_source)
+                   dump_symtab (s, outfile);
                }
-             if (source_arg == NULL
-                 || print_for_source)
-               dump_symtab (s, outfile);
            }
        }
 
@@ -690,7 +693,6 @@ maintenance_print_msymbols (const char *args, int from_tty)
 {
   struct ui_file *outfile = gdb_stdout;
   char *objfile_arg = NULL;
-  struct objfile *objfile;
   int i, outfile_idx;
 
   dont_repeat ();
@@ -734,13 +736,13 @@ maintenance_print_msymbols (const char *args, int from_tty)
       outfile = &arg_outfile;
     }
 
-  ALL_OBJFILES (objfile)
-  {
-    QUIT;
-    if (objfile_arg == NULL
-       || compare_filenames_for_search (objfile_name (objfile), objfile_arg))
-      dump_msymbols (objfile, outfile);
-  }
+  for (objfile *objfile : all_objfiles (current_program_space))
+    {
+      QUIT;
+      if (objfile_arg == NULL
+         || compare_filenames_for_search (objfile_name (objfile), objfile_arg))
+       dump_msymbols (objfile, outfile);
+    }
 }
 
 static void
@@ -778,18 +780,15 @@ maintenance_info_symtabs (const char *regexp, int from_tty)
   ALL_PSPACES (pspace)
     for (objfile *objfile : all_objfiles (pspace))
       {
-       struct compunit_symtab *cust;
-       struct symtab *symtab;
-
        /* We don't want to print anything for this objfile until we
           actually find a symtab whose name matches.  */
        int printed_objfile_start = 0;
 
-       ALL_OBJFILE_COMPUNITS (objfile, cust)
+       for (compunit_symtab *cust : objfile_compunits (objfile))
          {
            int printed_compunit_symtab_start = 0;
 
-           ALL_COMPUNIT_FILETABS (cust, symtab)
+           for (symtab *symtab : compunit_filetabs (cust))
              {
                QUIT;
 
@@ -866,13 +865,11 @@ maintenance_check_symtabs (const char *ignore, int from_tty)
   ALL_PSPACES (pspace)
     for (objfile *objfile : all_objfiles (pspace))
       {
-       struct compunit_symtab *cust;
-
        /* We don't want to print anything for this objfile until we
           actually find something worth printing.  */
        int printed_objfile_start = 0;
 
-       ALL_OBJFILE_COMPUNITS (objfile, cust)
+       for (compunit_symtab *cust : objfile_compunits (objfile))
          {
            int found_something = 0;
            struct symtab *symtab = compunit_primary_filetab (cust);
@@ -1035,12 +1032,9 @@ maintenance_info_line_tables (const char *regexp, int from_tty)
   ALL_PSPACES (pspace)
     for (objfile *objfile : all_objfiles (pspace))
       {
-       struct compunit_symtab *cust;
-       struct symtab *symtab;
-
-       ALL_OBJFILE_COMPUNITS (objfile, cust)
+       for (compunit_symtab *cust : objfile_compunits (objfile))
          {
-           ALL_COMPUNIT_FILETABS (cust, symtab)
+           for (symtab *symtab : compunit_filetabs (cust))
              {
                QUIT;
 
This page took 0.030904 seconds and 4 git commands to generate.