aboutsummaryrefslogtreecommitdiff
path: root/gdb/symtab.h
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-08-21 02:54:33 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-08-21 02:54:33 +0000
commit313dd520485f6e47c7179b9ec3f35a29d4a9904a (patch)
tree6b83ea136973402a43026367ae0b458c63248b2b /gdb/symtab.h
parentbaf4ded0d8c849fee7df8048f0bfd06f03da5af6 (diff)
downloadgdb-313dd520485f6e47c7179b9ec3f35a29d4a9904a.zip
gdb-313dd520485f6e47c7179b9ec3f35a29d4a9904a.tar.gz
gdb-313dd520485f6e47c7179b9ec3f35a29d4a9904a.tar.bz2
* frame.h, symtab.h: Revise comments regarding baseregs.
Diffstat (limited to 'gdb/symtab.h')
-rw-r--r--gdb/symtab.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/gdb/symtab.h b/gdb/symtab.h
index a9c704a..34bc099 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -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 *));