* frame.h, symtab.h: Revise comments regarding baseregs.
authorJim Kingdon <jkingdon@engr.sgi.com>
Sat, 21 Aug 1993 02:54:33 +0000 (02:54 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Sat, 21 Aug 1993 02:54:33 +0000 (02:54 +0000)
gdb/ChangeLog
gdb/frame.h
gdb/symtab.h

index 0625cc00745eb348089d361aeaf87a09a1827c03..b47520092f4029064fcf0d29cd6624ea1a31f272 100644 (file)
@@ -1,3 +1,7 @@
+Fri Aug 20 14:01:39 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+       * frame.h, symtab.h: Revise comments regarding baseregs.
+
 Fri Aug 20 15:07:05 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
 
        * mipsread.c (parse_partial_symbols, psymtab_to_symtab_1):
index 042eb0b89a6ca7d49e75cd123fd5c2d676df38fd..b3ac40e38152e97f13664194d96a38565000907e 100644 (file)
@@ -160,6 +160,10 @@ struct frame_saved_regs
    on a machine for which gdb has not been configured to support such
    access, report the failure to support this access mode. */
 
+/* FIXME: Code using this should be using get_saved_register, and a
+   basereg number should just be an ordinary register number.  There
+   is no reason for this to be machine-specific.  */
+
 #if !defined (FRAME_GET_BASEREG_VALUE)
 
 #define FRAME_GET_BASEREG_VALUE(frame, regno) \
index a9c704a6fee9cb418b28fe5f2bd2ebe50c7be88f..34bc099530a41390aedc2fa00224a87a45e9d80a 100644 (file)
@@ -287,7 +287,12 @@ struct minimal_symbol
       mst_text,                        /* Generally executable instructions */
       mst_data,                        /* Generally initialized data */
       mst_bss,                 /* Generally uninitialized data */
-      mst_abs                  /* Generally absolute (nonrelocatable) */
+      mst_abs,                 /* Generally absolute (nonrelocatable) */
+      /* For the mst_file* types, the names are only guaranteed to be unique
+        within a given .o file.  */
+      mst_file_text,           /* Static version of mst_text */
+      mst_file_data,           /* Static version of mst_data */
+      mst_file_bss             /* Static version of mst_bss */
     } type;
 
 };
@@ -563,12 +568,18 @@ struct symbol
 #define SYMBOL_LINE(symbol)            (symbol)->line
 #define SYMBOL_BASEREG(symbol)         (symbol)->aux_value.basereg.regno
 
-/* This currently fails because some symbols are not being initialized
-   to zero on allocation, and no code is currently setting this value.
-   Basereg handling will probably change significantly in the next release.
-   FIXME -fnf */
+/* If we want to do baseregs using this approach we should have a
+   LOC_BASEREG (and LOC_BASEREG_ARG) rather than changing the meaning
+   of LOC_LOCAL, LOC_ARG, etc. based on SYMBOL_BASEREG_VALID.  But
+   this approach provides just a small fraction of the expressiveness
+   of a DWARF location, so it does less than we might want.  On the
+   other hand, it may do more than we need; FRAME_LOCALS_ADDRESS,
+   LOC_REGPARM_ADDR, and similar things seem to handle most of the
+   cases which actually come up.  */
 
 #if 0
+/* This currently fails because some symbols are not being initialized
+   to zero on allocation, and no code is currently setting this value.  */
 #define SYMBOL_BASEREG_VALID(symbol) (symbol)->aux_value.basereg.regno_valid
 #else
 #define SYMBOL_BASEREG_VALID(symbol) 0
@@ -1092,9 +1103,6 @@ extern char **make_symbol_completion_list PARAMS ((char *, char *));
 
 /* symtab.c */
 
-extern void
-clear_symtab_users_once PARAMS ((void));
-
 extern struct partial_symtab *
 find_main_psymtab PARAMS ((void));
 
@@ -1105,6 +1113,9 @@ blockvector_for_pc PARAMS ((CORE_ADDR, int *));
 
 /* symfile.c */
 
+extern void
+clear_symtab_users PARAMS ((void));
+
 extern enum language
 deduce_language_from_filename PARAMS ((char *));