summaryrefslogtreecommitdiff
path: root/gdb/hpread.c
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2003-01-12 11:49:14 +0000
committerJoel Brobecker <brobecker@gnat.com>2003-01-12 11:49:14 +0000
commitf7b765401eac98f857c05512564e5ef2d4d0e1fc (patch)
tree68b4504c93fcf37e33b7f169eb5f775bf0a62ad9 /gdb/hpread.c
parent1c5eb55e2e94234a082d61433da9489c35612e3b (diff)
downloadgdb-f7b765401eac98f857c05512564e5ef2d4d0e1fc.tar.gz
* hpread.c (set_namestring): New procedure replacing the
SET_NAMESTRING macro. (hpread_build_psymtabs): Replace calls to SET_NAMESTRING by calls to set_namestring.
Diffstat (limited to 'gdb/hpread.c')
-rw-r--r--gdb/hpread.c58
1 files changed, 33 insertions, 25 deletions
diff --git a/gdb/hpread.c b/gdb/hpread.c
index cf5c563275b..adcfc450be0 100644
--- a/gdb/hpread.c
+++ b/gdb/hpread.c
@@ -87,23 +87,6 @@ struct hpread_symfile_info
#define WITHIN_FUNCTION(o) (HPUX_SYMFILE_INFO(o)->within_function)
#define CURRENT_FUNCTION_VALUE(o) (HPUX_SYMFILE_INFO(o)->current_function_value)
-/* Given the native debug symbol SYM, set NAMEP to the name associated
- with the debug symbol. Note we may be called with a debug symbol which
- has no associated name, in that case we return an empty string.
-
- Also note we "know" that the name for any symbol is always in the
- same place. Hence we don't have to conditionalize on the symbol type. */
-#define SET_NAMESTRING(SYM, NAMEP, OBJFILE) \
- if (! hpread_has_name ((SYM)->dblock.kind)) \
- *NAMEP = ""; \
- else if (((unsigned)(SYM)->dsfile.name) >= VT_SIZE (OBJFILE)) \
- { \
- complaint (&symfile_complaints, "bad string table offset in symbol %d", \
- symnum); \
- *NAMEP = ""; \
- } \
- else \
- *NAMEP = (SYM)->dsfile.name + VT (OBJFILE)
/* We put a pointer to this structure in the read_symtab_private field
of the psymtab. */
@@ -155,6 +138,9 @@ lbrac_mismatch_complaint (int arg1)
/* Forward procedure declarations */
+static void set_namestring (union dnttentry *sym, char **namep,
+ struct objfile *objfile);
+
void hpread_symfile_init (struct objfile *);
void do_pxdb (bfd *);
@@ -302,6 +288,28 @@ trans_lang (enum hp_language in_lang)
static char main_string[] = "main";
+
+/* Given the native debug symbol SYM, set NAMEP to the name associated
+ with the debug symbol. Note we may be called with a debug symbol which
+ has no associated name, in that case we return an empty string. */
+
+static void
+set_namestring (union dnttentry *sym, char **namep, struct objfile *objfile)
+{
+ /* Note that we "know" that the name for any symbol is always in the same
+ place. Hence we don't have to conditionalize on the symbol type. */
+ if (! hpread_has_name (sym->dblock.kind))
+ *namep = "";
+ else if ((unsigned) sym->dsfile.name >= VT_SIZE (objfile))
+ {
+ complaint (&symfile_complaints, "bad string table offset in symbol %d",
+ symnum);
+ *namep = "";
+ }
+ else
+ *namep = sym->dsfile.name + VT (objfile);
+}
+
/* Call PXDB to process our file.
Approach copied from DDE's "dbgk_run_pxdb". Note: we
@@ -1917,7 +1925,7 @@ hpread_build_psymtabs (struct objfile *objfile, int mainline)
/* A source file of some kind. Note this may simply
be an included file. */
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
+ set_namestring (dn_bufp, &namestring, objfile);
/* Check if this is the source file we are already working
with. */
@@ -2022,7 +2030,7 @@ hpread_build_psymtabs (struct objfile *objfile, int mainline)
}
/* Now begin a new module and a new psymtab for it */
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
+ set_namestring (dn_bufp, &namestring, objfile);
valu = hpread_get_textlow (i, hp_symnum, objfile, symcount);
valu += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
if (!pst)
@@ -2048,7 +2056,7 @@ hpread_build_psymtabs (struct objfile *objfile, int mainline)
texthigh = valu;
valu = dn_bufp->dfunc.lowaddr +
ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
+ set_namestring (dn_bufp, &namestring, objfile);
if (dn_bufp->dfunc.global)
add_psymbol_to_list (namestring, strlen (namestring),
VAR_NAMESPACE, LOC_BLOCK,
@@ -2069,7 +2077,7 @@ hpread_build_psymtabs (struct objfile *objfile, int mainline)
texthigh = valu;
valu = dn_bufp->ddocfunc.lowaddr +
ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
+ set_namestring (dn_bufp, &namestring, objfile);
if (dn_bufp->ddocfunc.global)
add_psymbol_to_list (namestring, strlen (namestring),
VAR_NAMESPACE, LOC_BLOCK,
@@ -2143,7 +2151,7 @@ hpread_build_psymtabs (struct objfile *objfile, int mainline)
else
storage = LOC_UNDEF;
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
+ set_namestring (dn_bufp, &namestring, objfile);
if (!pst)
{
pst = hpread_start_psymtab (objfile,
@@ -2227,7 +2235,7 @@ hpread_build_psymtabs (struct objfile *objfile, int mainline)
case DNTT_TYPE_MEMENUM:
case DNTT_TYPE_CONST:
/* Constants and members of enumerated types. */
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
+ set_namestring (dn_bufp, &namestring, objfile);
if (!pst)
{
pst = hpread_start_psymtab (objfile,
@@ -2827,8 +2835,8 @@ hpread_expand_symtab (struct objfile *objfile, int sym_offset, int sym_size,
if (dn_bufp->dblock.extension)
continue;
- /* Yow! We call SET_NAMESTRING on things without names! */
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
+ /* Yow! We call set_namestring on things without names! */
+ set_namestring (dn_bufp, &namestring, objfile);
hpread_process_one_debug_symbol (dn_bufp, namestring, section_offsets,
objfile, text_offset, text_size,