* minsyms.c (prim_record_minimal_symbol_and_info): . . . to here.
* minsyms.c (prim_record_minimal_symbol): Call
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)
}
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);
}
/*
ms_type = mst_unknown;
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 */
/* I believe this is used only for file-local functions.
The comment in symconst.h ("load time only static procs")
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 */
case stProc: /* Asm labels apparently */
case stStatic: /* Variable */
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
- prim_record_minimal_symbol (name, sh.value, mst_file_bss);
+ prim_record_minimal_symbol (name, sh.value, mst_file_bss,
+ objfile);
class = LOC_STATIC;
break;
}
void
-prim_record_minimal_symbol (name, address, ms_type)
+prim_record_minimal_symbol (name, address, ms_type, objfile)
const char *name;
CORE_ADDR address;
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
-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;
CORE_ADDR address;
enum minimal_symbol_type ms_type;
char *info;
int section;
+ struct objfile *objfile;
{
register struct msym_bunch *new;
register struct minimal_symbol *msymbol;
struct objfile *objfile;
{
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);
}
struct objfile *objfile;
{
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);
}
/*
name = obsavestring (name, strlen (name),
&objfile -> symbol_obstack);
prim_record_minimal_symbol (name, inferior_rtc_nlist.n_value,
- mst_bss);
+ mst_bss, objfile);
}
free (origname);
}
mapped memory segment, so skip it. Also, if the fd corresponds
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);
}
{
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
if (exec_bfd == NULL)
{
- printf ("No exec file.\n");
+ printf_unfiltered ("No exec file.\n");
return;
}
while ((so = find_solib (so)) != NULL)
{
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");
header_done++;
}
- printf ("%-12s",
+ printf_unfiltered ("%-12s",
local_hex_string_custom ((unsigned long) LM_ADDR (so),
"08l"));
- printf ("%-12s",
+ printf_unfiltered ("%-12s",
local_hex_string_custom ((unsigned long) so -> lmend,
"08l"));
- printf ("%-12s", so -> symbols_loaded ? "Yes" : "No");
- printf ("%s\n", so -> so_name);
+ printf_unfiltered ("%-12s", so -> symbols_loaded ? "Yes" : "No");
+ printf_unfiltered ("%s\n", so -> so_name);
}
}
if (so_list_head == NULL)
{
- printf ("No shared libraries loaded at this time.\n");
+ printf_unfiltered ("No shared libraries loaded at this time.\n");
}
}
stop_signal = 0;
do
{
- target_resume (inferior_pid, 0, stop_signal);
+ target_resume (-1, 0, stop_signal);
wait_for_inferior ();
}
while (stop_signal != SIGTRAP);
/* Reading symbol table has to be fast! Keep the followings as macros, rather
than functions. */
-#define RECORD_MINIMAL_SYMBOL(NAME, ADDR, TYPE, ALLOCED, SECTION) \
+#define RECORD_MINIMAL_SYMBOL(NAME, ADDR, TYPE, ALLOCED, SECTION, OBJFILE) \
{ \
char *namestr; \
if (ALLOCED) \
(ALLOCED) = 1; \
} \
prim_record_minimal_symbol_and_info (namestr, (ADDR), (TYPE), \
- (char *)NULL, (SECTION)); \
+ (char *)NULL, (SECTION), (OBJFILE)); \
misc_func_recorded = 1; \
}
if (!misc_func_recorded) {
int alloced = 0;
RECORD_MINIMAL_SYMBOL (last_csect_name, last_csect_val,
- mst_text, alloced, last_csect_sec);
+ mst_text, alloced, last_csect_sec,
+ objfile);
}
function_entry_point:
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_start_addr = cs->c_value;
prim_record_minimal_symbol_and_info
("<trampoline>", cs->c_value, mst_unknown,
- (char *)NULL, cs->c_secnum);
+ (char *)NULL, cs->c_secnum, objfile);
#else
/* record trampoline code entries as mst_unknown symbol. When we
lookup mst symbols, we will choose mst_text over mst_unknown. */
RECORD_MINIMAL_SYMBOL (cs->c_name, cs->c_value, mst_unknown,
- symname_alloced);
+ symname_alloced, objfile);
#endif
continue;
}
int alloced = 0;
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