* ldlang.c (dprint_statement): Stop printing at end of list.
[deliverable/binutils-gdb.git] / gdb / objfiles.h
index a4a1404d5c3f86fbfd400a5f7b56b00b5185aff0..b98b7088fe7e3d1f4d660353c2bdfc842619e260 100644 (file)
@@ -15,7 +15,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.  */
 
 #if !defined (OBJFILES_H)
 #define OBJFILES_H
@@ -156,6 +156,34 @@ struct obj_section {
   struct objfile *objfile;
 };
 
+/* The "objstats" structure provides a place for gdb to record some
+   interesting information about its internal state at runtime, on a
+   per objfile basis, such as information about the number of symbols
+   read, size of string table (if any), etc. */
+
+#if MAINTENANCE_CMDS
+
+struct objstats {
+  int n_minsyms;       /* Number of minimal symbols read */
+  int n_psyms;         /* Number of partial symbols read */
+  int n_syms;          /* Number of full symbols read */
+  int n_stabs;         /* Number of ".stabs" read (if applicable) */
+  int n_types;         /* Number of types */
+  int sz_strtab;       /* Size of stringtable, (if applicable) */
+};
+
+#define OBJSTAT(objfile, expr) (objfile -> stats.expr)
+#define OBJSTATS struct objstats stats
+extern void print_objfile_statistics PARAMS ((void));
+extern void print_symbol_bcache_statistics PARAMS ((void));
+
+#else
+
+#define OBJSTAT(objfile, expr) /* Nothing */
+#define OBJSTATS               /* Nothing */
+
+#endif /* MAINTENANCE_CMDS */
+
 /* Master structure for keeping track of each file from which
    gdb reads symbols.  There are several ways these get allocated: 1.
    The main symbol file, symfile_objfile, set by the symbol-file command,
@@ -225,6 +253,11 @@ struct objfile
   struct obstack symbol_obstack;       /* Full symbols */
   struct obstack type_obstack;         /* Types */
 
+  /* A byte cache where we can stash arbitrary "chunks" of bytes that
+     will not change. */
+
+  struct bcache psymbol_cache;         /* Byte cache for partial syms */
+
   /* Vectors of all partial symbols read in from file.  The actual data
      is stored in the psymbol_obstack. */
 
@@ -321,6 +354,9 @@ struct objfile
 
   /* two auxiliary fields, used to hold the fp of separate symbol files */
   FILE *auxf1, *auxf2;
+
+  /* Place to stash various statistics about this objfile */
+  OBJSTATS;
 };
 
 /* Defines for the objfile flag word. */
This page took 0.026418 seconds and 4 git commands to generate.