executable which correspond to the "startup file", I.E. crt0.o in most
cases. This file is assumed to be a startup file and frames with pc's
inside it are treated as nonexistent. Setting these variables is necessary
- so that backtraces do not fly off the bottom of the stack (or top, depending
- upon your stack orientation).
+ so that backtraces do not fly off the bottom of the stack.
- Gdb also supports an alternate method to avoid running off the top/bottom
+ Gdb also supports an alternate method to avoid running off the bottom
of the stack.
There are two frames that are "special", the frame for the function
struct objfile *objfile;
};
-/* Master structure for keeping track of each input file from which
- gdb reads symbols. One of these is allocated for each such file we
- access, e.g. the exec_file, symbol_file, and any shared library object
- files. */
+/* 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,
+ 2. Additional symbol files added by the add-symbol-file command,
+ 3. Shared library objfiles, added by ADD_SOLIB, 4. symbol files
+ for modules that were loaded when GDB attached to a remote system
+ (see remote-vx.c). */
struct objfile
{
struct entry_info ei;
- /* Hook for information which is shared by sym_init and sym_read for
- this objfile. It is typically a pointer to malloc'd memory. */
+ /* Information about stabs. Will be filled in with a dbx_symfile_info
+ struct by those readers that need it. */
+
+ PTR sym_stab_info;
+
+ /* Hook for information for use by the symbol reader (currently used
+ for information shared by sym_init and sym_read). It is
+ typically a pointer to malloc'd memory. The symbol reader's finish
+ function is responsible for freeing the memory thusly allocated. */
PTR sym_private;
- /* Hook for other info specific to this objfile. This must point to
- memory allocated on one of the obstacks in this objfile, so that it
- gets freed automatically when reading a new object file. */
+ /* Hook for target-architecture-specific information. This must
+ point to memory allocated on one of the obstacks in this objfile,
+ so that it gets freed automatically when reading a new object
+ file. */
PTR obj_private;
struct obj_section
*sections,
*sections_end;
+
+ /* two auxiliary fields, used to hold the fp of separate symbol files */
+ FILE *auxf1, *auxf2;
};
/* Defines for the objfile flag word. */
/* Declarations for functions defined in objfiles.c */
-extern struct objfile *
-allocate_objfile PARAMS ((bfd *, int));
+extern struct objfile *allocate_objfile PARAMS ((bfd *, int));
-extern void
-unlink_objfile PARAMS ((struct objfile *));
+int build_objfile_section_table PARAMS ((struct objfile *));
-extern void
-free_objfile PARAMS ((struct objfile *));
+extern void unlink_objfile PARAMS ((struct objfile *));
+
+extern void free_objfile PARAMS ((struct objfile *));
extern void
free_all_objfiles PARAMS ((void));