Browse Source

* symmisc.c (print_objfile_statistics): Print memory use statistics

for objfile psymbol, symbol, and type obstacks.
	Update copyright to 1996.
gdb-4_18-branch
Fred Fish 31 years ago
parent
commit
ef4d61874b
  1. 5199
      gdb/ChangeLog
  2. 57
      gdb/symmisc.c

5199
gdb/ChangeLog

File diff suppressed because it is too large

57
gdb/symmisc.c

@ -1,5 +1,5 @@
/* Do various things to symbol tables (other than lookup), for GDB.
Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994
Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996
Free Software Foundation, Inc.
This file is part of GDB.
@ -16,7 +16,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "defs.h"
#include "symtab.h"
@ -152,6 +152,43 @@ free_symtab (s)
#if MAINTENANCE_CMDS
void
print_objfile_statistics ()
{
struct objfile *objfile;
immediate_quit++;
ALL_OBJFILES (objfile)
{
printf_filtered ("Statistics for '%s':\n", objfile -> name);
if (OBJSTAT (objfile, n_stabs) > 0)
printf_filtered (" Number of \"stab\" symbols read: %d\n",
OBJSTAT (objfile, n_stabs));
if (OBJSTAT (objfile, n_minsyms) > 0)
printf_filtered (" Number of \"minimal symbols read: %d\n",
OBJSTAT (objfile, n_minsyms));
if (OBJSTAT (objfile, n_psyms) > 0)
printf_filtered (" Number of \"partial symbols read: %d\n",
OBJSTAT (objfile, n_psyms));
if (OBJSTAT (objfile, n_syms) > 0)
printf_filtered (" Number of \"full symbols read: %d\n",
OBJSTAT (objfile, n_syms));
if (OBJSTAT (objfile, n_types) > 0)
printf_filtered (" Number of \"types defined: %d\n",
OBJSTAT (objfile, n_types));
if (OBJSTAT (objfile, sz_strtab) > 0)
printf_filtered (" Space used by a.out string tables: %d\n",
OBJSTAT (objfile, sz_strtab));
printf_filtered (" Total memory used for psymbol obstack: %d\n",
obstack_memory_used (&objfile -> psymbol_obstack));
printf_filtered (" Total memory used for symbol obstack: %d\n",
obstack_memory_used (&objfile -> symbol_obstack));
printf_filtered (" Total memory used for type obstack: %d\n",
obstack_memory_used (&objfile -> type_obstack));
}
immediate_quit--;
}
static void
dump_objfile (objfile)
struct objfile *objfile;
@ -546,13 +583,14 @@ print_symbol (args)
break;
case LOC_CONST_BYTES:
fprintf_filtered (outfile, "const %u hex bytes:",
TYPE_LENGTH (SYMBOL_TYPE (symbol)));
{
unsigned i;
for (i = 0; i < TYPE_LENGTH (SYMBOL_TYPE (symbol)); i++)
struct type *type = check_typedef (SYMBOL_TYPE (symbol));
fprintf_filtered (outfile, "const %u hex bytes:",
TYPE_LENGTH (type));
for (i = 0; i < TYPE_LENGTH (type); i++)
fprintf_filtered (outfile, " %02x",
(unsigned)SYMBOL_VALUE_BYTES (symbol) [i]);
(unsigned)SYMBOL_VALUE_BYTES (symbol) [i]);
fprintf_filtered (outfile, ",");
}
break;
@ -622,6 +660,10 @@ print_symbol (args)
fprintf_filtered (outfile, ",");
break;
case LOC_UNRESOLVED:
fprintf_filtered (outfile, "unresolved");
break;
case LOC_OPTIMIZED_OUT:
fprintf_filtered (outfile, "optimized out");
break;
@ -766,6 +808,9 @@ print_partial_symbol (p, count, what, outfile)
case LOC_LOCAL_ARG:
fputs_filtered ("shuffled arg", outfile);
break;
case LOC_UNRESOLVED:
fputs_filtered ("unresolved", outfile);
break;
case LOC_OPTIMIZED_OUT:
fputs_filtered ("optimized out", outfile);
break;

Loading…
Cancel
Save