gdb/
[deliverable/binutils-gdb.git] / gdb / psymtab.c
index 6e84094758767355b36282e120aaa80f8612892d..93be08546881cb64becab6ff96c3da8594ba7b65 100644 (file)
@@ -888,6 +888,7 @@ print_partial_symbols (struct gdbarch *gdbarch,
   fprintf_filtered (outfile, "  %s partial symbols:\n", what);
   while (count-- > 0)
     {
+      QUIT;
       fprintf_filtered (outfile, "    `%s'", SYMBOL_LINKAGE_NAME (*p));
       if (SYMBOL_DEMANGLED_NAME (*p) != NULL)
        {
@@ -1159,6 +1160,11 @@ map_symbol_filenames_psymtab (struct objfile *objfile,
       if (ps->readin)
        continue;
 
+      /* We can skip shared psymtabs here, because any file name will be
+        attached to the unshared psymtab.  */
+      if (ps->user != NULL)
+       continue;
+
       /* Anonymous psymtabs don't have a file name.  */
       if (ps->anonymous)
        continue;
@@ -1847,11 +1853,12 @@ print-psymbols takes an output file name and optional symbol file name"));
     perror_with_name (filename);
   make_cleanup_ui_file_delete (outfile);
 
-  immediate_quit++;
   ALL_PSYMTABS (objfile, ps)
-    if (symname == NULL || filename_cmp (symname, ps->filename) == 0)
-    dump_psymtab (objfile, ps, outfile);
-  immediate_quit--;
+    {
+      QUIT;
+      if (symname == NULL || filename_cmp (symname, ps->filename) == 0)
+       dump_psymtab (objfile, ps, outfile);
+    }
   do_cleanups (cleanups);
 }
 
This page took 0.023748 seconds and 4 git commands to generate.