* minsyms.c, symtab.h (prim_record_minimal_symbol{,_and_info}),

coffread.c (record_minimal_symbol),
	xcoffread.c (RECORD_MINIMAL_SYMBOL), callers: Add objfile parameter.
This commit is contained in:
Jim Kingdon
1993-12-27 17:47:28 +00:00
parent dfb4a50861
commit 8d60affde9
8 changed files with 39 additions and 28 deletions

View File

@ -13,6 +13,9 @@ Mon Dec 27 11:07:05 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* minsyms.c (prim_record_minimal_symbol_and_info): . . . to here. * minsyms.c (prim_record_minimal_symbol_and_info): . . . to here.
* minsyms.c (prim_record_minimal_symbol): Call * minsyms.c (prim_record_minimal_symbol): Call
prim_record_minimal_symbol_and_info rather than duplicating code. prim_record_minimal_symbol_and_info rather than duplicating code.
* minsyms.c, symtab.h (prim_record_minimal_symbol{,_and_info}),
coffread.c (record_minimal_symbol),
xcoffread.c (RECORD_MINIMAL_SYMBOL), callers: Add objfile parameter.
Sun Dec 26 20:44:02 1993 Jeffrey A. Law (law@snake.cs.utah.edu) Sun Dec 26 20:44:02 1993 Jeffrey A. Law (law@snake.cs.utah.edu)

View File

@ -205,7 +205,8 @@ record_minimal_symbol_and_info (name, address, ms_type, info, objfile)
} }
name = obsavestring (name, strlen (name), &objfile -> symbol_obstack); name = obsavestring (name, strlen (name), &objfile -> symbol_obstack);
prim_record_minimal_symbol_and_info (name, address, ms_type, info, section); prim_record_minimal_symbol_and_info (name, address, ms_type, info, section,
objfile);
} }
/* /*

View File

@ -2161,7 +2161,7 @@ parse_partial_symbols (objfile, section_offsets)
ms_type = mst_unknown; ms_type = mst_unknown;
complain (&unknown_ext_complaint, name); complain (&unknown_ext_complaint, name);
} }
prim_record_minimal_symbol (name, ext_in->asym.value, ms_type); prim_record_minimal_symbol (name, ext_in->asym.value, ms_type, objfile);
} }
/* Pass 3 over files, over local syms: fill in static symbols */ /* Pass 3 over files, over local syms: fill in static symbols */
@ -2333,7 +2333,8 @@ parse_partial_symbols (objfile, section_offsets)
/* I believe this is used only for file-local functions. /* I believe this is used only for file-local functions.
The comment in symconst.h ("load time only static procs") The comment in symconst.h ("load time only static procs")
isn't particularly clear on this point. */ isn't particularly clear on this point. */
prim_record_minimal_symbol (name, sh.value, mst_file_text); prim_record_minimal_symbol (name, sh.value, mst_file_text,
objfile);
/* FALLTHROUGH */ /* FALLTHROUGH */
case stProc: /* Asm labels apparently */ case stProc: /* Asm labels apparently */
@ -2378,9 +2379,11 @@ parse_partial_symbols (objfile, section_offsets)
case stStatic: /* Variable */ case stStatic: /* Variable */
if (sh.sc == scData || sh.sc == scSData || sh.sc == scRData) if (sh.sc == scData || sh.sc == scSData || sh.sc == scRData)
prim_record_minimal_symbol (name, sh.value, mst_file_data); prim_record_minimal_symbol (name, sh.value, mst_file_data,
objfile);
else else
prim_record_minimal_symbol (name, sh.value, mst_file_bss); prim_record_minimal_symbol (name, sh.value, mst_file_bss,
objfile);
class = LOC_STATIC; class = LOC_STATIC;
break; break;

View File

@ -292,21 +292,24 @@ init_minimal_symbol_collection ()
} }
void void
prim_record_minimal_symbol (name, address, ms_type) prim_record_minimal_symbol (name, address, ms_type, objfile)
const char *name; const char *name;
CORE_ADDR address; CORE_ADDR address;
enum minimal_symbol_type ms_type; enum minimal_symbol_type ms_type;
struct objfile *objfile;
{ {
prim_record_minimal_symbol (name, address, ms_type, NULL, -1); prim_record_minimal_symbol (name, address, ms_type, NULL, -1, objfile);
} }
void void
prim_record_minimal_symbol_and_info (name, address, ms_type, info, section) prim_record_minimal_symbol_and_info (name, address, ms_type, info, section,
objfile)
const char *name; const char *name;
CORE_ADDR address; CORE_ADDR address;
enum minimal_symbol_type ms_type; enum minimal_symbol_type ms_type;
char *info; char *info;
int section; int section;
struct objfile *objfile;
{ {
register struct msym_bunch *new; register struct msym_bunch *new;
register struct minimal_symbol *msymbol; register struct minimal_symbol *msymbol;

View File

@ -89,7 +89,7 @@ record_minimal_symbol (name, address, ms_type, objfile)
struct objfile *objfile; struct objfile *objfile;
{ {
name = obsavestring (name, strlen (name), &objfile -> symbol_obstack); name = obsavestring (name, strlen (name), &objfile -> symbol_obstack);
prim_record_minimal_symbol (name, address, ms_type); prim_record_minimal_symbol (name, address, ms_type, objfile);
} }

View File

@ -81,7 +81,7 @@ record_minimal_symbol (name, address, ms_type, objfile)
struct objfile *objfile; struct objfile *objfile;
{ {
name = obsavestring (name, strlen (name), &objfile -> symbol_obstack); name = obsavestring (name, strlen (name), &objfile -> symbol_obstack);
prim_record_minimal_symbol (name, address, ms_type); prim_record_minimal_symbol (name, address, ms_type, objfile);
} }
/* /*

View File

@ -326,7 +326,7 @@ solib_add_common_symbols (rtc_symp, objfile)
name = obsavestring (name, strlen (name), name = obsavestring (name, strlen (name),
&objfile -> symbol_obstack); &objfile -> symbol_obstack);
prim_record_minimal_symbol (name, inferior_rtc_nlist.n_value, prim_record_minimal_symbol (name, inferior_rtc_nlist.n_value,
mst_bss); mst_bss, objfile);
} }
free (origname); free (origname);
} }
@ -442,7 +442,7 @@ look_for_base (fd, baseaddr)
mapped memory segment, so skip it. Also, if the fd corresponds mapped memory segment, so skip it. Also, if the fd corresponds
to the exec file, skip it as well. */ to the exec file, skip it as well. */
if ((fd == -1) || fdmatch (fileno ((FILE *)(exec_bfd -> iostream)), fd)) if ((fd == -1) || fdmatch (fileno ((GDB_FILE *)(exec_bfd -> iostream)), fd))
{ {
return (0); return (0);
} }
@ -785,7 +785,7 @@ solib_add (arg_string, from_tty, target)
{ {
if (from_tty) if (from_tty)
{ {
printf ("Symbols already loaded for %s\n", so -> so_name); printf_unfiltered ("Symbols already loaded for %s\n", so -> so_name);
} }
} }
else if (catch_errors else if (catch_errors
@ -887,7 +887,7 @@ info_sharedlibrary_command (ignore, from_tty)
if (exec_bfd == NULL) if (exec_bfd == NULL)
{ {
printf ("No exec file.\n"); printf_unfiltered ("No exec file.\n");
return; return;
} }
while ((so = find_solib (so)) != NULL) while ((so = find_solib (so)) != NULL)
@ -896,23 +896,23 @@ info_sharedlibrary_command (ignore, from_tty)
{ {
if (!header_done) if (!header_done)
{ {
printf("%-12s%-12s%-12s%s\n", "From", "To", "Syms Read", printf_unfiltered("%-12s%-12s%-12s%s\n", "From", "To", "Syms Read",
"Shared Object Library"); "Shared Object Library");
header_done++; header_done++;
} }
printf ("%-12s", printf_unfiltered ("%-12s",
local_hex_string_custom ((unsigned long) LM_ADDR (so), local_hex_string_custom ((unsigned long) LM_ADDR (so),
"08l")); "08l"));
printf ("%-12s", printf_unfiltered ("%-12s",
local_hex_string_custom ((unsigned long) so -> lmend, local_hex_string_custom ((unsigned long) so -> lmend,
"08l")); "08l"));
printf ("%-12s", so -> symbols_loaded ? "Yes" : "No"); printf_unfiltered ("%-12s", so -> symbols_loaded ? "Yes" : "No");
printf ("%s\n", so -> so_name); printf_unfiltered ("%s\n", so -> so_name);
} }
} }
if (so_list_head == NULL) if (so_list_head == NULL)
{ {
printf ("No shared libraries loaded at this time.\n"); printf_unfiltered ("No shared libraries loaded at this time.\n");
} }
} }
@ -1268,7 +1268,7 @@ solib_create_inferior_hook()
stop_signal = 0; stop_signal = 0;
do do
{ {
target_resume (inferior_pid, 0, stop_signal); target_resume (-1, 0, stop_signal);
wait_for_inferior (); wait_for_inferior ();
} }
while (stop_signal != SIGTRAP); while (stop_signal != SIGTRAP);

View File

@ -926,7 +926,7 @@ retrieve_traceback (abfd, textsec, cs, size)
/* Reading symbol table has to be fast! Keep the followings as macros, rather /* Reading symbol table has to be fast! Keep the followings as macros, rather
than functions. */ than functions. */
#define RECORD_MINIMAL_SYMBOL(NAME, ADDR, TYPE, ALLOCED, SECTION) \ #define RECORD_MINIMAL_SYMBOL(NAME, ADDR, TYPE, ALLOCED, SECTION, OBJFILE) \
{ \ { \
char *namestr; \ char *namestr; \
if (ALLOCED) \ if (ALLOCED) \
@ -937,7 +937,7 @@ retrieve_traceback (abfd, textsec, cs, size)
(ALLOCED) = 1; \ (ALLOCED) = 1; \
} \ } \
prim_record_minimal_symbol_and_info (namestr, (ADDR), (TYPE), \ prim_record_minimal_symbol_and_info (namestr, (ADDR), (TYPE), \
(char *)NULL, (SECTION)); \ (char *)NULL, (SECTION), (OBJFILE)); \
misc_func_recorded = 1; \ misc_func_recorded = 1; \
} }
@ -1182,7 +1182,8 @@ read_xcoff_symtab (objfile, nsyms)
if (!misc_func_recorded) { if (!misc_func_recorded) {
int alloced = 0; int alloced = 0;
RECORD_MINIMAL_SYMBOL (last_csect_name, last_csect_val, RECORD_MINIMAL_SYMBOL (last_csect_name, last_csect_val,
mst_text, alloced, last_csect_sec); mst_text, alloced, last_csect_sec,
objfile);
} }
@ -1241,7 +1242,7 @@ read_xcoff_symtab (objfile, nsyms)
function_entry_point: function_entry_point:
RECORD_MINIMAL_SYMBOL (cs->c_name, cs->c_value, mst_text, RECORD_MINIMAL_SYMBOL (cs->c_name, cs->c_value, mst_text,
symname_alloced, cs->c_secnum); symname_alloced, cs->c_secnum, objfile);
fcn_line_offset = main_aux->x_sym.x_fcnary.x_fcn.x_lnnoptr; fcn_line_offset = main_aux->x_sym.x_fcnary.x_fcn.x_lnnoptr;
fcn_start_addr = cs->c_value; fcn_start_addr = cs->c_value;
@ -1330,14 +1331,14 @@ function_entry_point:
prim_record_minimal_symbol_and_info prim_record_minimal_symbol_and_info
("<trampoline>", cs->c_value, mst_unknown, ("<trampoline>", cs->c_value, mst_unknown,
(char *)NULL, cs->c_secnum); (char *)NULL, cs->c_secnum, objfile);
#else #else
/* record trampoline code entries as mst_unknown symbol. When we /* record trampoline code entries as mst_unknown symbol. When we
lookup mst symbols, we will choose mst_text over mst_unknown. */ lookup mst symbols, we will choose mst_text over mst_unknown. */
RECORD_MINIMAL_SYMBOL (cs->c_name, cs->c_value, mst_unknown, RECORD_MINIMAL_SYMBOL (cs->c_name, cs->c_value, mst_unknown,
symname_alloced); symname_alloced, objfile);
#endif #endif
continue; continue;
} }
@ -1361,7 +1362,7 @@ function_entry_point:
int alloced = 0; int alloced = 0;
RECORD_MINIMAL_SYMBOL (last_csect_name, last_csect_val, RECORD_MINIMAL_SYMBOL (last_csect_name, last_csect_val,
mst_text, alloced, last_csect_sec); mst_text, alloced, last_csect_sec, objfile);
} }
/* c_value field contains symnum of next .file entry in table /* c_value field contains symnum of next .file entry in table