aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-10-21 04:41:56 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-10-21 04:41:56 +0000
commit8f6960c90e6df0f0bc5e2ac1c52d82545557de2f (patch)
treeac07ad2bc5f8a5ab95af67a68588ec60bda2d5e2 /gdb
parentb438af469456d8bd1f0d721fe5bde42207f37059 (diff)
downloadgdb-8f6960c90e6df0f0bc5e2ac1c52d82545557de2f.zip
gdb-8f6960c90e6df0f0bc5e2ac1c52d82545557de2f.tar.gz
gdb-8f6960c90e6df0f0bc5e2ac1c52d82545557de2f.tar.bz2
* xcoffread.c (xcoff_symfile_read), coffread.c (coff_symfile_read):
Sort symtabs for this objfile only, not for all objfiles. * symfile.c, symfile.h (sort_all_symtab_syms): Remove; no longer used.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/coffread.c32
-rw-r--r--gdb/xcoffread.c5
3 files changed, 25 insertions, 16 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 609bd0d..786bfff 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
Wed Oct 20 11:35:43 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
+ * xcoffread.c (xcoff_symfile_read), coffread.c (coff_symfile_read):
+ Sort symtabs for this objfile only, not for all objfiles.
+ * symfile.c, symfile.h (sort_all_symtab_syms): Remove; no longer used.
+
* mipsread.c (parse_symbol): In third-eye, a function has a block
within it which represents the whole function. Create only one
GDB block for both.
diff --git a/gdb/coffread.c b/gdb/coffread.c
index ac252d7..415ee18 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -40,22 +40,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "libcoff.h" /* FIXME secret internal data from BFD */
struct coff_symfile_info {
- asection *text_sect; /* Text section accessor */
- int symcount; /* How many symbols are there in the file */
- char *stringtab; /* The actual string table */
- int stringtab_size; /* Its size */
- file_ptr symtab_offset; /* Offset in file to symbol table */
- int symbol_size; /* Bytes in a single symbol */
- struct stab_section_info *stab_section_info; /* section starting points
- of the original .o files before linking. */
+ file_ptr min_lineno_offset; /* Where in file lowest line#s are */
+ file_ptr max_lineno_offset; /* 1+last byte of line#s in file */
asection *stabsect; /* Section pointer for .stab section */
asection *stabstrsect; /* Section pointer for .stab section */
asection *stabindexsect; /* Section pointer for .stab.index section */
char *stabstrdata;
-
- file_ptr min_lineno_offset; /* Where in file lowest line#s are */
- file_ptr max_lineno_offset; /* 1+last byte of line#s in file */
};
/* Translate an external name string into a user-visible name. */
@@ -297,9 +288,9 @@ coff_locate_sections PARAMS ((bfd *, asection *, PTR));
if so, stash away some access information for the section.
FIXME: The section names should not be hardwired strings (what
- should they be? I don't think most debug formats have enough
- special section flags to specify what kind of debug section it is
- -kingdon). */
+ should they be? I don't think most object file formats have enough
+ section flags to specify what kind of debug section it is
+ -kingdon). */
static void
coff_locate_sections (ignore_abfd, sectp, csip)
@@ -525,6 +516,12 @@ coff_symfile_init (objfile)
asection *section, *strsection;
bfd *abfd = objfile->obfd;
+ /* Allocate struct to keep track of stab reading. */
+ objfile->sym_stab_info = (PTR)
+ xmmalloc (objfile -> md, sizeof (struct dbx_symfile_info));
+
+ memset ((PTR) objfile->sym_stab_info, 0, sizeof (struct dbx_symfile_info));
+
/* Allocate struct to keep track of the symfile */
objfile -> sym_private = xmmalloc (objfile -> md,
sizeof (struct coff_symfile_info));
@@ -595,6 +592,7 @@ coff_symfile_read (objfile, section_offsets, mainline)
int mainline;
{
struct coff_symfile_info *info;
+ struct dbx_symfile_info *dbxinfo;
bfd *abfd = objfile->obfd;
coff_data_type *cdata = coff_data (abfd);
char *name = bfd_get_filename (abfd);
@@ -607,6 +605,7 @@ coff_symfile_read (objfile, section_offsets, mainline)
int stabsize, stabstrsize;
info = (struct coff_symfile_info *) objfile -> sym_private;
+ dbxinfo = (struct dbx_symfile_info *) objfile->sym_stab_info;
symfile_bfd = abfd; /* Kludge for swap routines */
/* WARNING WILL ROBINSON! ACCESSING BFD-PRIVATE DATA HERE! FIXME! */
@@ -663,7 +662,10 @@ coff_symfile_read (objfile, section_offsets, mainline)
/* Sort symbols alphabetically within each block. */
- sort_all_symtab_syms ();
+ for (s = objfile -> symtabs; s != NULL; s = s -> next)
+ {
+ sort_symtab_syms (s);
+ }
/* Install any minimal symbols that have been collected as the current
minimal symbols for this objfile. */
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index 3ecdf18..4d22f94 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -2079,7 +2079,10 @@ xcoff_symfile_read (objfile, section_offset, mainline)
free_debugsection ();
/* Sort symbols alphabetically within each block. */
- sort_all_symtab_syms ();
+ for (s = objfile -> symtabs; s != NULL; s = s -> next)
+ {
+ sort_symtab_syms (s);
+ }
/* Install any minimal symbols that have been collected as the current
minimal symbols for this objfile. */