* symmisc.c (print_objfile_statistics): Print memory use statistics
for objfile psymbol, symbol, and type obstacks. Update copyright to 1996.
This commit is contained in:
parent
655492f4ff
commit
ef4d61874b
5199
gdb/ChangeLog
5199
gdb/ChangeLog
File diff suppressed because it is too large
Load Diff
@ -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…
Reference in New Issue
Block a user