RFC: have maint print statistics print a little more

Elena Zannoni ezannoni@redhat.com
Thu Feb 13 14:52:00 GMT 2003


Jason Molenda writes:
 > At Apple we're often faced with a mysteriously slow gdb.  It would
 > be very helpful to know if we've just expanded all the psymtabs
 > into symtabs, or if we have some problem from the compiler that is
 > causing us to get a vastly larger number of psymtabs for header
 > files than we would normally have.
 > 
 > This patch adds a few new entries to the objfile information printed
 > by maint print statistics:
 > 
 > Statistics for '/home/jmolenda/sware/gdb/b/gdb/gdb':
 >   Number of "stab" symbols read: 139907
 >   Number of "minimal" symbols read: 8022
 >   Number of "partial" symbols read: 24584
 >   Number of "types" defined: 4794
 > * Number of psym tables (not yet expanded): 904
 > * Number of symbol tables: 260
 > * Number of symbol tables with line tables: 32
 > * Number of symbol tables with blockvectors: 33
 >   Space used by a.out string tables: 1060259
 >   Total memory used for psymbol obstack: 1190666
 >   Total memory used for psymbol cache: 513072
 >   Total memory used for macro cache: 4072
 >   Total memory used for symbol obstack: 1717613
 >   Total memory used for type obstack: 550039
 > 
 > 
 > I highlighted the new entries with '*'.  This would be a very useful
 > piece of information when presented with a slow gdb here at Apple
 > - I think other folks may find it useful as well.
 > 
 > This patch introduces no new testsuite failures.

Yes, but the new output needs to be tested. It is just because the .*
patterns in the maint.exp file.  Could you add the new output to the
test file?

Otherwise, looks good.

elena



 > 
 > Comments?
 > 
 > J
 > 2003-02-12  Jason Molenda  (jmolenda@apple.com)
 > 
 >         * symmis.c (print_objfile_statistics): Include information about
 >         the number of psymtabs and symtabs in each object file.
 > 
 > Index: symmisc.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/symmisc.c,v
 > retrieving revision 1.14
 > diff -u -p -r1.14 symmisc.c
 > --- symmisc.c	18 Jan 2003 15:55:53 -0000	1.14
 > +++ symmisc.c	13 Feb 2003 01:48:50 -0000
 > @@ -179,6 +179,9 @@ void
 >  print_objfile_statistics (void)
 >  {
 >    struct objfile *objfile;
 > +  struct symtab *s;
 > +  struct partial_symtab *ps;
 > +  int i, linetables, blockvectors;
 >  
 >    immediate_quit++;
 >    ALL_OBJFILES (objfile)
 > @@ -199,6 +202,28 @@ print_objfile_statistics (void)
 >      if (OBJSTAT (objfile, n_types) > 0)
 >        printf_filtered ("  Number of \"types\" defined: %d\n",
 >  		       OBJSTAT (objfile, n_types));
 > +    i = 0;
 > +    ALL_OBJFILE_PSYMTABS (objfile, ps)
 > +      {
 > +        if (ps->readin == 0)
 > +          i++;
 > +      }
 > +    printf_filtered ("  Number of psym tables (not yet expanded): %d\n", i);
 > +    i = linetables = blockvectors = 0;
 > +    ALL_OBJFILE_SYMTABS (objfile, s)
 > +      {
 > +        i++;
 > +        if (s->linetable != NULL)
 > +          linetables++;
 > +        if (s->primary == 1)
 > +          blockvectors++;
 > +      }
 > +    printf_filtered ("  Number of symbol tables: %d\n", i);
 > +    printf_filtered ("  Number of symbol tables with line tables: %d\n", 
 > +                     linetables);
 > +    printf_filtered ("  Number of symbol tables with blockvectors: %d\n", 
 > +                     blockvectors);
 > +    
 >      if (OBJSTAT (objfile, sz_strtab) > 0)
 >        printf_filtered ("  Space used by a.out string tables: %d\n",
 >  		       OBJSTAT (objfile, sz_strtab));



More information about the Gdb-patches mailing list