aboutsummaryrefslogtreecommitdiff
path: root/gdb/xcoffread.c
diff options
context:
space:
mode:
authorFred Fish <fnf@specifix.com>1992-07-28 04:22:18 +0000
committerFred Fish <fnf@specifix.com>1992-07-28 04:22:18 +0000
commitd07734e31fb134371b9bea71fc2736f7c28f4433 (patch)
tree807bcfb860cf9fc6eb8ba46c2a707cd2311264d8 /gdb/xcoffread.c
parent9e2b3581cb9edfd9977256539e64cf0d5f0f224d (diff)
downloadgdb-d07734e31fb134371b9bea71fc2736f7c28f4433.zip
gdb-d07734e31fb134371b9bea71fc2736f7c28f4433.tar.gz
gdb-d07734e31fb134371b9bea71fc2736f7c28f4433.tar.bz2
* Makefile.in (VERSION): Bump to 4.6.2.
* Makefile.in (SFILES_MAINDIR): Add stabsread.c * Makefile.in (OBS): Add stabsread.o * Makefile.in (stabsread.o): Add build rule. * stabsread.c, stabsread.h: New files. * buildsym.c: Split out stabs specific support to stabsread.c. * buildsym.h: Split out stabs specific support to stabsread.h. * dbxread.c (stabsread.h): Include * dbxread.c (dbx_new_init): Call stabsread_new_init. * dbxread.c (dbx_psymtab_to_symtab_1): Call stabsread_init. * dbxread.c (read_ofile_symtab): Call end_stabs. * dbxread.c (process_one_symbol): Call end_stabs and start_stabs. * dbxread.c (elfstab_build_psymtabs): Call stabsread_new_init. * dwarfread.c (psymtab_to_symtab_1): Call buildsym_init, add really_free_pendings to cleanups. * elfread.c (elf_new_init): Call stabsread_new_init. * gdbtypes.c: Small changes to maintenance commands. * mipsread.c (stabsread.h): Include. * mipsread.c (psymtab_to_symtab_1): Call end_stabs. * xcoffread.c (stabsread.h): Include. * xcoffread.c (global_stabs): Remove redundant def. * xcoffread.c (read_xcoff_symtab): Call start_stabs and end_stabs.
Diffstat (limited to 'gdb/xcoffread.c')
-rw-r--r--gdb/xcoffread.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index b3c6547..fb1ccac 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -45,6 +45,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "symfile.h"
#include "objfiles.h"
#include "buildsym.h"
+#include "stabsread.h"
#include "gdb-stabs.h"
#include "coff/internal.h" /* FIXME, internal data from BFD */
@@ -114,9 +115,6 @@ static char *symtbl;
#define INITIAL_STABVECTOR_LENGTH 40
-struct pending_stabs *global_stabs;
-
-
/* Nonzero if within a function (so symbols should be local,
if nothing says specifically). */
@@ -1040,11 +1038,12 @@ read_xcoff_symtab (objfile, nsyms)
N_BTSHFT = coff_data (abfd)->local_n_btshft;
local_symesz = coff_data (abfd)->local_symesz;
- last_source_file = 0;
+ last_source_file = NULL;
last_csect_name = 0;
last_csect_val = 0;
misc_func_recorded = 0;
+ start_stabs ();
start_symtab (filestring, (char *)NULL, file_start_addr);
symnum = 0;
first_object_file_end = 0;
@@ -1126,8 +1125,12 @@ read_xcoff_symtab (objfile, nsyms)
if (cs->c_symnum == next_file_symnum && cs->c_sclass != C_FILE) {
if (last_source_file)
- end_symtab (cur_src_end_addr, 1, 0, objfile);
+ {
+ end_symtab (cur_src_end_addr, 1, 0, objfile);
+ end_stabs ();
+ }
+ start_stabs ();
start_symtab ("_globals_", (char *)NULL, (CORE_ADDR)0);
cur_src_end_addr = first_object_file_end;
/* done with all files, everything from here on is globals */
@@ -1191,6 +1194,8 @@ read_xcoff_symtab (objfile, nsyms)
complete_symtab (filestring, file_start_addr);
cur_src_end_addr = file_end_addr;
end_symtab (file_end_addr, 1, 0, objfile);
+ end_stabs ();
+ start_stabs ();
start_symtab ((char *)NULL, (char *)NULL, (CORE_ADDR)0);
}
@@ -1366,13 +1371,15 @@ function_entry_point:
/* complete symbol table for last object file containing
debugging information. */
- /* Whether or not there was a csect in the previous file, we have
- to call `end_symtab' and `start_symtab' to reset type_vector,
+ /* Whether or not there was a csect in the previous file, we have to call
+ `end_stabs' and `start_stabs' to reset type_vector,
line_vector, etc. structures. */
complete_symtab (filestring, file_start_addr);
cur_src_end_addr = file_end_addr;
end_symtab (file_end_addr, 1, 0, objfile);
+ end_stabs ();
+ start_stabs ();
start_symtab (cs->c_name, (char *)NULL, (CORE_ADDR)0);
last_csect_name = 0;
@@ -1582,7 +1589,10 @@ function_entry_point:
} /* while */
if (last_source_file)
- end_symtab (cur_src_end_addr, 1, 0, objfile);
+ {
+ end_symtab (cur_src_end_addr, 1, 0, objfile);
+ end_stabs ();
+ }
free (symtbl);
current_objfile = NULL;