diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/hpread.c | 58 |
2 files changed, 41 insertions, 26 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f545808..032a7f3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,4 +1,11 @@ -2003-01-10 J. Brobecker <brobecker@gnat.com> +2003-01-12 J. Brobecker <brobecker@gnat.com> + + * hpread.c (set_namestring): New procedure replacing the + SET_NAMESTRING macro. + (hpread_build_psymtabs): Replace calls to SET_NAMESTRING + by calls to set_namestring. + +2003-01-11 J. Brobecker <brobecker@gnat.com> * hpread.c (SET_NAMESTRING): Remove an incorrect cast to fix a compilation warning. diff --git a/gdb/hpread.c b/gdb/hpread.c index cf5c563..adcfc45 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, |