mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
* 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:
@ -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)
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
22
gdb/solib.c
22
gdb/solib.c
@ -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);
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user