* rs6000-tdep.c (find_toc_address): Revise comment.

* symfile.c, symfile.h (init_psymbol_list): New function;
	consolidate duplicated copies from os9kread.c, dbxread.c
	and dwarfread.c.
	* defs.h: Declare info_verbose.
	* xcoffread.c: Extensive changes to support psymtabs.
This commit is contained in:
Jim Kingdon 1995-05-13 20:39:21 +00:00
parent b297038d0b
commit a367db8959
6 changed files with 1222 additions and 674 deletions

View File

@ -1,3 +1,12 @@
Sat May 13 13:34:18 1995 Jim Kingdon <kingdon@deneb.cygnus.com>
* rs6000-tdep.c (find_toc_address): Revise comment.
* symfile.c, symfile.h (init_psymbol_list): New function;
consolidate duplicated copies from os9kread.c, dbxread.c
and dwarfread.c.
* defs.h: Declare info_verbose.
* xcoffread.c: Extensive changes to support psymtabs.
Fri May 12 13:48:41 1995 Stu Grossman (grossman@andros.cygnus.com) Fri May 12 13:48:41 1995 Stu Grossman (grossman@andros.cygnus.com)
* cpu32bug-rom.c remote-est.c rom68k-rom.c: Update line_term element. * cpu32bug-rom.c remote-est.c rom68k-rom.c: Update line_term element.

View File

@ -246,9 +246,6 @@ add_bincl_to_list PARAMS ((struct partial_symtab *, char *, int));
static void static void
init_bincl_list PARAMS ((int, struct objfile *)); init_bincl_list PARAMS ((int, struct objfile *));
static void
init_psymbol_list PARAMS ((struct objfile *));
static char * static char *
dbx_next_symbol_text PARAMS ((void)); dbx_next_symbol_text PARAMS ((void));
@ -558,8 +555,10 @@ dbx_symfile_read (objfile, section_offsets, mainline)
perror_with_name (objfile->name); perror_with_name (objfile->name);
/* If we are reinitializing, or if we have never loaded syms yet, init */ /* If we are reinitializing, or if we have never loaded syms yet, init */
if (mainline || objfile->global_psymbols.size == 0 || objfile->static_psymbols.size == 0) if (mainline
init_psymbol_list (objfile); || objfile->global_psymbols.size == 0
|| objfile->static_psymbols.size == 0)
init_psymbol_list (objfile, DBX_SYMCOUNT (objfile));
symbol_size = DBX_SYMBOL_SIZE (objfile); symbol_size = DBX_SYMBOL_SIZE (objfile);
symbol_table_offset = DBX_SYMTAB_OFFSET (objfile); symbol_table_offset = DBX_SYMTAB_OFFSET (objfile);
@ -749,9 +748,11 @@ static char *last_function_name;
/* The address in memory of the string table of the object file we are /* The address in memory of the string table of the object file we are
reading (which might not be the "main" object file, but might be a reading (which might not be the "main" object file, but might be a
shared library or some other dynamically loaded thing). This is set shared library or some other dynamically loaded thing). This is
by read_dbx_symtab when building psymtabs, and by read_ofile_symtab set by read_dbx_symtab when building psymtabs, and by
when building symtabs, and is used only by next_symbol_text. */ read_ofile_symtab when building symtabs, and is used only by
next_symbol_text. FIXME: If that is true, we don't need it when
building psymtabs, right? */
static char *stringtab_global; static char *stringtab_global;
/* Refill the symbol table input buffer /* Refill the symbol table input buffer
@ -803,30 +804,6 @@ dbx_next_symbol_text ()
+ file_string_table_offset; + file_string_table_offset;
} }
/* Initializes storage for all of the partial symbols that will be
created by read_dbx_symtab and subsidiaries. */
static void
init_psymbol_list (objfile)
struct objfile *objfile;
{
/* Free any previously allocated psymbol lists. */
if (objfile -> global_psymbols.list)
mfree (objfile -> md, (PTR)objfile -> global_psymbols.list);
if (objfile -> static_psymbols.list)
mfree (objfile -> md, (PTR)objfile -> static_psymbols.list);
/* Current best guess is that there are approximately a twentieth
of the total symbols (in a debugging file) are global or static
oriented symbols */
objfile -> global_psymbols.size = DBX_SYMCOUNT (objfile) / 10;
objfile -> static_psymbols.size = DBX_SYMCOUNT (objfile) / 10;
objfile -> global_psymbols.next = objfile -> global_psymbols.list = (struct partial_symbol *)
xmmalloc (objfile -> md, objfile -> global_psymbols.size * sizeof (struct partial_symbol));
objfile -> static_psymbols.next = objfile -> static_psymbols.list = (struct partial_symbol *)
xmmalloc (objfile -> md, objfile -> static_psymbols.size * sizeof (struct partial_symbol));
}
/* Initialize the list of bincls to contain none and have some /* Initialize the list of bincls to contain none and have some
allocated. */ allocated. */

View File

@ -473,9 +473,6 @@ scan_compilation_units PARAMS ((char *, char *, file_ptr,
static void static void
add_partial_symbol PARAMS ((struct dieinfo *, struct objfile *)); add_partial_symbol PARAMS ((struct dieinfo *, struct objfile *));
static void
init_psymbol_list PARAMS ((struct objfile *, int));
static void static void
basicdieinfo PARAMS ((struct dieinfo *, char *, struct objfile *)); basicdieinfo PARAMS ((struct dieinfo *, char *, struct objfile *));
@ -2473,54 +2470,6 @@ dwarf_psymtab_to_symtab (pst)
/* /*
LOCAL FUNCTION
init_psymbol_list -- initialize storage for partial symbols
SYNOPSIS
static void init_psymbol_list (struct objfile *objfile, int total_symbols)
DESCRIPTION
Initializes storage for all of the partial symbols that will be
created by dwarf_build_psymtabs and subsidiaries.
*/
static void
init_psymbol_list (objfile, total_symbols)
struct objfile *objfile;
int total_symbols;
{
/* Free any previously allocated psymbol lists. */
if (objfile -> global_psymbols.list)
{
mfree (objfile -> md, (PTR)objfile -> global_psymbols.list);
}
if (objfile -> static_psymbols.list)
{
mfree (objfile -> md, (PTR)objfile -> static_psymbols.list);
}
/* Current best guess is that there are approximately a twentieth
of the total symbols (in a debugging file) are global or static
oriented symbols */
objfile -> global_psymbols.size = total_symbols / 10;
objfile -> static_psymbols.size = total_symbols / 10;
objfile -> global_psymbols.next =
objfile -> global_psymbols.list = (struct partial_symbol *)
xmmalloc (objfile -> md, objfile -> global_psymbols.size
* sizeof (struct partial_symbol));
objfile -> static_psymbols.next =
objfile -> static_psymbols.list = (struct partial_symbol *)
xmmalloc (objfile -> md, objfile -> static_psymbols.size
* sizeof (struct partial_symbol));
}
/*
LOCAL FUNCTION LOCAL FUNCTION
add_enum_psymbol -- add enumeration members to partial symbol table add_enum_psymbol -- add enumeration members to partial symbol table

View File

@ -143,9 +143,6 @@ static void
read_os9k_psymtab PARAMS ((struct section_offsets *, struct objfile *, read_os9k_psymtab PARAMS ((struct section_offsets *, struct objfile *,
CORE_ADDR, int)); CORE_ADDR, int));
static void
init_psymbol_list PARAMS ((struct objfile *));
static int static int
fill_sym PARAMS ((FILE *, bfd *)); fill_sym PARAMS ((FILE *, bfd *));
@ -340,7 +337,7 @@ os9k_symfile_read (objfile, section_offsets, mainline)
/* If we are reinitializing, or if we have never loaded syms yet, init */ /* If we are reinitializing, or if we have never loaded syms yet, init */
if (mainline || objfile->global_psymbols.size == 0 || if (mainline || objfile->global_psymbols.size == 0 ||
objfile->static_psymbols.size == 0) objfile->static_psymbols.size == 0)
init_psymbol_list (objfile); init_psymbol_list (objfile, DBX_SYMCOUNT (objfile));
pending_blocks = 0; pending_blocks = 0;
back_to = make_cleanup (really_free_pendings, 0); back_to = make_cleanup (really_free_pendings, 0);
@ -550,30 +547,6 @@ char *p;
return 1; return 1;
} }
/* Initializes storage for all of the partial symbols that will be
created by read_dbx_symtab and subsidiaries. */
static void
init_psymbol_list (objfile)
struct objfile *objfile;
{
/* Free any previously allocated psymbol lists. */
if (objfile -> global_psymbols.list)
mfree (objfile -> md, (PTR)objfile -> global_psymbols.list);
if (objfile -> static_psymbols.list)
mfree (objfile -> md, (PTR)objfile -> static_psymbols.list);
/* Current best guess is that there are approximately a twentieth
of the total symbols (in a debugging file) are global or static
oriented symbols */
objfile -> global_psymbols.size = DBX_SYMCOUNT (objfile) / 10;
objfile -> static_psymbols.size = DBX_SYMCOUNT (objfile) / 10;
objfile -> global_psymbols.next = objfile -> global_psymbols.list = (struct partial_symbol *)
xmmalloc (objfile -> md, objfile -> global_psymbols.size * sizeof (struct partial_symbol));
objfile -> static_psymbols.next = objfile -> static_psymbols.list = (struct partial_symbol *)
xmmalloc (objfile -> md, objfile -> static_psymbols.size * sizeof (struct partial_symbol));
}
/* Given pointers to an a.out symbol table in core containing dbx /* Given pointers to an a.out symbol table in core containing dbx
style data, setup partial_symtab's describing each source file for style data, setup partial_symtab's describing each source file for
which debugging information is available. which debugging information is available.

View File

@ -1199,10 +1199,12 @@ add_text_to_loadinfo (textaddr, dataaddr)
} }
/* FIXME: This assumes that the "textorg" and "dataorg" elements /* Note that this assumes that the "textorg" and "dataorg" elements
of a member of this array are correlated with the "toc_offset" of a member of this array are correlated with the "toc_offset"
element of the same member. But they are sequentially assigned in wildly element of the same member. This is taken care of because the loops
different places, and probably there is no correlation. FIXME! */ which assign the former (in xcoff_relocate_symtab or xcoff_relocate_core)
and the latter (in scan_xcoff_symtab, via vmap_symtab, in vmap_ldinfo
or xcoff_relocate_core) traverse the same objfiles in the same order. */
static CORE_ADDR static CORE_ADDR
find_toc_address (pc) find_toc_address (pc)

File diff suppressed because it is too large Load Diff