aboutsummaryrefslogtreecommitdiff
path: root/gdb/symfile.c
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2002-05-15 21:19:21 +0000
committerJim Blandy <jimb@codesourcery.com>2002-05-15 21:19:21 +0000
commit99d9066e57c4ff29e314af000b11c62ce6253b59 (patch)
tree73fefdfb07f9b7751fd104bd496068174af72a8d /gdb/symfile.c
parenta978a3e5d8dec1a24c0851ecf16e241f7a23f946 (diff)
downloadgdb-99d9066e57c4ff29e314af000b11c62ce6253b59.zip
gdb-99d9066e57c4ff29e314af000b11c62ce6253b59.tar.gz
gdb-99d9066e57c4ff29e314af000b11c62ce6253b59.tar.bz2
Add macro structures to GDB's symbol tables. Nobody puts anything
in them yet. * symtab.h (struct symtab): New member: `macro_table'. * buildsym.h (pending_macros): New global variable. * buildsym.c: #include "macrotab.h". (buildsym_init): Initialize `pending_macros'. (end_symtab): If we found macro information while reading a CU's debugging info, do build a symtab structure for it. Make the symtab point to the macro information, and clear the `pending_macros' pointer which held it while we were reading the debug info. (really_free_pendings): Free any pending macro table. * objfiles.h (struct objfile): New member: `macro_cache'. * objfiles.c (allocate_objfile): Set allocate and free functions for the macro cache's objstack. (free_objfile): Empty the macro cache's obstack. * symfile.c (reread_symbols): Empty the macro cache's obstack, and set new allocate and free functions for it. * solib-sunos.c (allocate_rt_common_objfile): Set allocate and free functions for the macro cache's objstack. (Why is this function building its own objfile?) * symmisc.c (print_objfile_statistics): Print statistics on the macro bcache. * Makefile.in: Note that buildsym.o depends on macrotab.h.
Diffstat (limited to 'gdb/symfile.c')
-rw-r--r--gdb/symfile.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 8303f3c..d087b1f 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -1741,6 +1741,7 @@ reread_symbols (void)
/* Free the obstacks for non-reusable objfiles */
free_bcache (&objfile->psymbol_cache);
+ free_bcache (&objfile->macro_cache);
obstack_free (&objfile->psymbol_obstack, 0);
obstack_free (&objfile->symbol_obstack, 0);
obstack_free (&objfile->type_obstack, 0);
@@ -1766,6 +1767,8 @@ reread_symbols (void)
it is empty. */
obstack_specify_allocation (&objfile->psymbol_cache.cache, 0, 0,
xmalloc, xfree);
+ obstack_specify_allocation (&objfile->macro_cache.cache, 0, 0,
+ xmalloc, xfree);
obstack_specify_allocation (&objfile->psymbol_obstack, 0, 0,
xmalloc, xfree);
obstack_specify_allocation (&objfile->symbol_obstack, 0, 0,