diff options
author | John Gilmore <gnu@cygnus> | 1992-06-14 18:10:10 +0000 |
---|---|---|
committer | John Gilmore <gnu@cygnus> | 1992-06-14 18:10:10 +0000 |
commit | bcbf95597c9ce57a9899705d2242e6a1714f6301 (patch) | |
tree | 09c39246248380226458fd4244bf8a8f4687adb1 /gdb/partial-stab.h | |
parent | c3c93fda326ef5fcbb528dc35004c6a11e0c574f (diff) | |
download | gdb-bcbf95597c9ce57a9899705d2242e6a1714f6301.zip gdb-bcbf95597c9ce57a9899705d2242e6a1714f6301.tar.gz gdb-bcbf95597c9ce57a9899705d2242e6a1714f6301.tar.bz2 |
* dbxread.c (end_psymtab): Only reset texthigh if it's not already
set. Don't reset our own texthigh, or dependency-only pst's, in
scanning all the rest of the psymtabs.
(process_one_symbol): Fix comments around N_OBJ, N_OPT, N_UNDF.
* buildsym.h (N_UNDF): Improve comments.
(N_LSYM, etc): Skip types without names (":T(0,3)=sfoob...").
Diffstat (limited to 'gdb/partial-stab.h')
-rw-r--r-- | gdb/partial-stab.h | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/gdb/partial-stab.h b/gdb/partial-stab.h index d9d757f..9686301 100644 --- a/gdb/partial-stab.h +++ b/gdb/partial-stab.h @@ -137,8 +137,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ case N_UNDF: #ifdef DBXREAD_ONLY if (processing_acc_compilation && bufp->n_strx == 1) { - /* deal with relative offsets in the string table - used in ELF+STAB under Solaris */ + /* Deal with relative offsets in the string table + used in ELF+STAB under Solaris. If we want to use the + n_strx field, which contains the name of the file, + we must adjust file_string_table_offset *before* calling + SET_NAMESTRING(). */ past_first_source_file = 1; file_string_table_offset = next_file_string_table_offset; next_file_string_table_offset = @@ -315,22 +318,28 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ switch (p[1]) { case 'T': - ADD_PSYMBOL_TO_LIST (namestring, p - namestring, - STRUCT_NAMESPACE, LOC_TYPEDEF, - objfile->static_psymbols, CUR_SYMBOL_VALUE); - if (p[2] == 't') + if (p != namestring) /* a name is there, not just :T... */ { - /* Also a typedef with the same name. */ ADD_PSYMBOL_TO_LIST (namestring, p - namestring, - VAR_NAMESPACE, LOC_TYPEDEF, + STRUCT_NAMESPACE, LOC_TYPEDEF, objfile->static_psymbols, CUR_SYMBOL_VALUE); - p += 1; + if (p[2] == 't') + { + /* Also a typedef with the same name. */ + ADD_PSYMBOL_TO_LIST (namestring, p - namestring, + VAR_NAMESPACE, LOC_TYPEDEF, + objfile->static_psymbols, CUR_SYMBOL_VALUE); + p += 1; + } } goto check_enum; case 't': - ADD_PSYMBOL_TO_LIST (namestring, p - namestring, - VAR_NAMESPACE, LOC_TYPEDEF, - objfile->static_psymbols, CUR_SYMBOL_VALUE); + if (p != namestring) /* a name is there, not just :T... */ + { + ADD_PSYMBOL_TO_LIST (namestring, p - namestring, + VAR_NAMESPACE, LOC_TYPEDEF, + objfile->static_psymbols, CUR_SYMBOL_VALUE); + } check_enum: /* If this is an enumerated type, we need to add all the enum constants to the partial symbol |