aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2003-09-08 19:22:30 +0000
committerJim Blandy <jimb@codesourcery.com>2003-09-08 19:22:30 +0000
commit7c8a5605fc041fe1872475d79f0792b2b412d694 (patch)
tree945edddbcba275d4f183e7915b6f9c44a8bd4d40
parent7dd889867037abfa8f239f9f65f9606294e0be8d (diff)
downloadgdb-7c8a5605fc041fe1872475d79f0792b2b412d694.zip
gdb-7c8a5605fc041fe1872475d79f0792b2b412d694.tar.gz
gdb-7c8a5605fc041fe1872475d79f0792b2b412d694.tar.bz2
* Makefile.in (dbxread.o): Note new dependency on $(gdb_assert_h).
* dbxread.c: #include "gdb_assert.h". (read_dbx_symtab): If the objfile has no .data section, use the section index for the .bss section instead.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/Makefile.in2
-rw-r--r--gdb/dbxread.c16
3 files changed, 20 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 75c9e68..15c342c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2003-09-08 Jim Blandy <jimb@redhat.com>
+
+ * Makefile.in (dbxread.o): Note new dependency on $(gdb_assert_h).
+ * dbxread.c: #include "gdb_assert.h".
+ (read_dbx_symtab): If the objfile has no .data section, use the
+ section index for the .bss section instead.
+
2003-09-08 Daniel Jacobowitz <drow@mvista.com>
* frame.c (deprecated_safe_get_selected_frame): New function.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index c93f2fd..b14c450 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1690,7 +1690,7 @@ dbxread.o: dbxread.c $(defs_h) $(gdb_string_h) $(gdb_obstack_h) \
$(gdb_stat_h) $(symtab_h) $(breakpoint_h) $(target_h) $(gdbcore_h) \
$(libaout_h) $(symfile_h) $(objfiles_h) $(buildsym_h) $(stabsread_h) \
$(gdb_stabs_h) $(demangle_h) $(language_h) $(complaints_h) \
- $(cp_abi_h) $(aout_aout64_h) $(aout_stab_gnu_h)
+ $(cp_abi_h) $(aout_aout64_h) $(aout_stab_gnu_h) $(gdb_assert_h)
dcache.o: dcache.c $(defs_h) $(dcache_h) $(gdbcmd_h) $(gdb_string_h) \
$(gdbcore_h) $(target_h)
delta68-nat.o: delta68-nat.c $(defs_h)
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index fbfd1a9..61c78c4 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -58,6 +58,7 @@
#include "language.h" /* Needed for local_hex_string */
#include "complaints.h"
#include "cp-abi.h"
+#include "gdb_assert.h"
#include "aout/aout64.h"
#include "aout/stab_gnu.h" /* We always use GNU stabs, not native, now */
@@ -1304,6 +1305,7 @@ read_dbx_symtab (struct objfile *objfile)
struct cleanup *back_to;
bfd *abfd;
int textlow_not_set;
+ int data_sect_index;
/* Current partial symtab */
struct partial_symtab *pst;
@@ -1355,6 +1357,12 @@ read_dbx_symtab (struct objfile *objfile)
textlow_not_set = 1;
has_line_numbers = 0;
+ /* If the objfile has no .data section, try using the .bss section. */
+ data_sect_index = objfile->sect_index_data;
+ if (data_sect_index == -1)
+ data_sect_index = SECT_OFF_BSS (objfile);
+ gdb_assert (data_sect_index != -1);
+
for (symnum = 0; symnum < DBX_SYMCOUNT (objfile); symnum++)
{
/* Get the symbol for this run and pull out some info */
@@ -1401,7 +1409,7 @@ read_dbx_symtab (struct objfile *objfile)
case N_DATA | N_EXT:
case N_NBDATA | N_EXT:
- nlist.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
+ nlist.n_value += ANOFFSET (objfile->section_offsets, data_sect_index);
goto record_it;
case N_BSS:
@@ -1468,7 +1476,7 @@ read_dbx_symtab (struct objfile *objfile)
continue;
case N_DATA:
- nlist.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
+ nlist.n_value += ANOFFSET (objfile->section_offsets, data_sect_index);
goto record_it;
case N_UNDF | N_EXT:
@@ -1757,7 +1765,7 @@ read_dbx_symtab (struct objfile *objfile)
switch (p[1])
{
case 'S':
- nlist.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
+ nlist.n_value += ANOFFSET (objfile->section_offsets, data_sect_index);
#ifdef STATIC_TRANSFORM_NAME
namestring = STATIC_TRANSFORM_NAME (namestring);
#endif
@@ -1768,7 +1776,7 @@ read_dbx_symtab (struct objfile *objfile)
psymtab_language, objfile);
continue;
case 'G':
- nlist.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
+ nlist.n_value += ANOFFSET (objfile->section_offsets, data_sect_index);
/* The addresses in these entries are reported to be
wrong. See the code that reads 'G's for symtabs. */
add_psymbol_to_list (namestring, p - namestring,