From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6926 invoked by alias); 13 Feb 2003 01:54:01 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 6595 invoked from network); 13 Feb 2003 01:53:58 -0000 Received: from unknown (HELO molenda.com) (192.220.74.81) by 172.16.49.205 with SMTP; 13 Feb 2003 01:53:58 -0000 Received: (qmail 25173 invoked by uid 19025); 13 Feb 2003 01:53:58 -0000 Date: Thu, 13 Feb 2003 01:54:00 -0000 From: Jason Molenda To: gdb-patches@sources.redhat.com Subject: RFC: have maint print statistics print a little more Message-ID: <20030212175358.A24355@molenda.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="k+w/mQv8wyuph6w0" Content-Disposition: inline User-Agent: Mutt/1.2.5.1i X-SW-Source: 2003-02/txt/msg00301.txt.bz2 --k+w/mQv8wyuph6w0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 1305 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. Comments? J --k+w/mQv8wyuph6w0 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="pa.txt" Content-length: 1736 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)); --k+w/mQv8wyuph6w0--