2011-01-05 Michael Snyder <msnyder@vmware.com>
* addrmap.c: Shorten lines of >= 80 columns. * arch-utils.c: Ditto. * arch-utils.h: Ditto. * ax-gdb.c: Ditto. * ax-general.c: Ditto. * bcache.c: Ditto. * blockframe.c: Ditto. * breakpoint.c: Ditto. * buildsym.c: Ditto. * c-lang.c: Ditto. * c-typeprint.c: Ditto. * charset.c: Ditto. * coffread.c: Ditto. * command.h: Ditto. * corelow.c: Ditto. * cp-abi.c: Ditto. * cp-namespace.c: Ditto. * cp-support.c: Ditto. * dbug-rom.c: Ditto. * dbxread.c: Ditto. * defs.h: Ditto. * dfp.c: Ditto. * dfp.h: Ditto. * dictionary.c: Ditto. * disasm.c: Ditto. * doublest.c: Ditto. * dwarf2-frame.c: Ditto. * dwarf2expr.c: Ditto. * dwarf2loc.c: Ditto. * dwarf2read.c: Ditto. * elfread.c: Ditto. * eval.c: Ditto. * event-loop.c: Ditto. * event-loop.h: Ditto. * exceptions.h: Ditto. * exec.c: Ditto. * expprint.c: Ditto. * expression.h: Ditto. * f-lang.c: Ditto. * f-valprint.c: Ditto. * findcmd.c: Ditto. * frame-base.c: Ditto. * frame-unwind.c: Ditto. * frame-unwind.h: Ditto. * frame.c: Ditto. * frame.h: Ditto. * gcore.c: Ditto. * gdb-stabs.h: Ditto. * gdb_assert.h: Ditto. * gdb_dirent.h: Ditto. * gdb_obstack.h: Ditto. * gdbcore.h: Ditto. * gdbtypes.c: Ditto. * gdbtypes.h: Ditto. * inf-ttrace.c: Ditto. * infcall.c: Ditto. * infcmd.c: Ditto. * inflow.c: Ditto. * infrun.c: Ditto. * inline-frame.h: Ditto. * language.c: Ditto. * language.h: Ditto. * libunwind-frame.c: Ditto. * libunwind-frame.h: Ditto. * linespec.c: Ditto. * linux-nat.c: Ditto. * linux-nat.h: Ditto. * linux-thread-db.c: Ditto. * machoread.c: Ditto. * macroexp.c: Ditto. * macrotab.c: Ditto. * main.c: Ditto. * maint.c: Ditto. * mdebugread.c: Ditto. * memattr.c: Ditto. * minsyms.c: Ditto. * monitor.c: Ditto. * monitor.h: Ditto. * objfiles.c: Ditto. * objfiles.h: Ditto. * osabi.c: Ditto. * p-typeprint.c: Ditto. * p-valprint.c: Ditto. * parse.c: Ditto. * printcmd.c: Ditto. * proc-events.c: Ditto. * procfs.c: Ditto. * progspace.c: Ditto. * progspace.h: Ditto. * psympriv.h: Ditto. * psymtab.c: Ditto. * record.c: Ditto. * regcache.c: Ditto. * regcache.h: Ditto. * remote-fileio.c: Ditto. * remote.c: Ditto. * ser-mingw.c: Ditto. * ser-tcp.c: Ditto. * ser-unix.c: Ditto. * serial.c: Ditto. * serial.h: Ditto. * solib-frv.c: Ditto. * solib-irix.c: Ditto. * solib-osf.c: Ditto. * solib-pa64.c: Ditto. * solib-som.c: Ditto. * solib-sunos.c: Ditto. * solib-svr4.c: Ditto. * solib-target.c: Ditto. * solib.c: Ditto. * somread.c: Ditto. * source.c: Ditto. * stabsread.c: Ditto. * stabsread.c: Ditto. * stack.c: Ditto. * stack.h: Ditto. * symfile-mem.c: Ditto. * symfile.c: Ditto. * symfile.h: Ditto. * symmisc.c: Ditto. * symtab.c: Ditto. * symtab.h: Ditto. * target-descriptions.c: Ditto. * target-memory.c: Ditto. * target.c: Ditto. * target.h: Ditto. * terminal.h: Ditto. * thread.c: Ditto. * top.c: Ditto. * tracepoint.c: Ditto. * tracepoint.h: Ditto. * ui-file.c: Ditto. * ui-file.h: Ditto. * ui-out.h: Ditto. * user-regs.c: Ditto. * user-regs.h: Ditto. * utils.c: Ditto. * valarith.c: Ditto. * valops.c: Ditto. * valprint.c: Ditto. * valprint.h: Ditto. * value.c: Ditto. * varobj.c: Ditto. * varobj.h: Ditto. * vec.h: Ditto. * xcoffread.c: Ditto. * xcoffsolib.c: Ditto. * xcoffsolib.h: Ditto. * xml-syscall.c: Ditto. * xml-tdesc.c: Ditto.
This commit is contained in:
parent
9689e3a3a7
commit
3e43a32aaa
151 changed files with 2974 additions and 1820 deletions
396
gdb/mdebugread.c
396
gdb/mdebugread.c
|
@ -142,7 +142,8 @@ basic_type_complaint (int arg1, const char *arg2)
|
|||
static void
|
||||
bad_tag_guess_complaint (const char *arg1)
|
||||
{
|
||||
complaint (&symfile_complaints, _("guessed tag type of %s incorrectly"), arg1);
|
||||
complaint (&symfile_complaints,
|
||||
_("guessed tag type of %s incorrectly"), arg1);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -372,9 +373,11 @@ mdebug_build_psymtabs (struct objfile *objfile,
|
|||
if (compare_glevel (max_glevel, GLEVEL_2) < 0)
|
||||
{
|
||||
if (max_gdbinfo == 0)
|
||||
printf_unfiltered (_("\n%s not compiled with -g, debugging support is limited.\n"),
|
||||
printf_unfiltered (_("\n%s not compiled with -g, "
|
||||
"debugging support is limited.\n"),
|
||||
objfile->name);
|
||||
printf_unfiltered (_("You should compile with -g2 or -g3 for best debugging support.\n"));
|
||||
printf_unfiltered (_("You should compile with -g2 or "
|
||||
"-g3 for best debugging support.\n"));
|
||||
gdb_flush (gdb_stdout);
|
||||
}
|
||||
#endif
|
||||
|
@ -935,7 +938,8 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
|
|||
|
||||
default:
|
||||
complaint (&symfile_complaints,
|
||||
_("declaration block contains unhandled symbol type %d"),
|
||||
_("declaration block contains "
|
||||
"unhandled symbol type %d"),
|
||||
tsym.st);
|
||||
}
|
||||
}
|
||||
|
@ -998,8 +1002,8 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
|
|||
if (sh->iss == 0 || name[0] == '.' || name[0] == '\0')
|
||||
TYPE_TAG_NAME (t) = NULL;
|
||||
else
|
||||
TYPE_TAG_NAME (t) = obconcat (¤t_objfile->objfile_obstack, name,
|
||||
(char *) NULL);
|
||||
TYPE_TAG_NAME (t) = obconcat (¤t_objfile->objfile_obstack,
|
||||
name, (char *) NULL);
|
||||
|
||||
TYPE_CODE (t) = type_code;
|
||||
TYPE_LENGTH (t) = sh->value;
|
||||
|
@ -1227,7 +1231,8 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
|
|||
FIELD_NAME (*f) = name;
|
||||
SET_FIELD_BITPOS (*f, sh->value);
|
||||
bitsize = 0;
|
||||
FIELD_TYPE (*f) = parse_type (cur_fd, ax, sh->index, &bitsize, bigend, name);
|
||||
FIELD_TYPE (*f) = parse_type (cur_fd, ax, sh->index,
|
||||
&bitsize, bigend, name);
|
||||
FIELD_BITSIZE (*f) = bitsize;
|
||||
break;
|
||||
|
||||
|
@ -1592,7 +1597,8 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
|
|||
else if (t->bt == btEnum)
|
||||
;
|
||||
else
|
||||
complaint (&symfile_complaints, _("can't handle TIR fBitfield for %s"),
|
||||
complaint (&symfile_complaints,
|
||||
_("can't handle TIR fBitfield for %s"),
|
||||
sym_name);
|
||||
}
|
||||
else
|
||||
|
@ -1689,8 +1695,9 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
|
|||
TYPE_TAG_NAME (tp) = NULL;
|
||||
else if (TYPE_TAG_NAME (tp) == NULL
|
||||
|| strcmp (TYPE_TAG_NAME (tp), name) != 0)
|
||||
TYPE_TAG_NAME (tp) = obsavestring (name, strlen (name),
|
||||
¤t_objfile->objfile_obstack);
|
||||
TYPE_TAG_NAME (tp)
|
||||
= obsavestring (name, strlen (name),
|
||||
¤t_objfile->objfile_obstack);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1784,7 +1791,8 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
|
|||
|
||||
/* Complain for illegal continuations due to corrupt aux entries. */
|
||||
if (t->continued)
|
||||
complaint (&symfile_complaints, _("illegal TIR continued for %s"), sym_name);
|
||||
complaint (&symfile_complaints,
|
||||
_("illegal TIR continued for %s"), sym_name);
|
||||
|
||||
return tp;
|
||||
}
|
||||
|
@ -1847,7 +1855,8 @@ upgrade_type (int fd, struct type **tpp, int tq, union aux_ext *ax, int bigend,
|
|||
if (TYPE_CODE (indx) != TYPE_CODE_INT)
|
||||
{
|
||||
complaint (&symfile_complaints,
|
||||
_("illegal array index type for %s, assuming int"), sym_name);
|
||||
_("illegal array index type for %s, assuming int"),
|
||||
sym_name);
|
||||
indx = objfile_type (current_objfile)->builtin_int;
|
||||
}
|
||||
|
||||
|
@ -2145,7 +2154,8 @@ parse_external (EXTR *es, int bigend, struct section_offsets *section_offsets,
|
|||
|
||||
/* Note that the case of a symbol with indexNil must be handled
|
||||
anyways by parse_symbol(). */
|
||||
parse_symbol (&es->asym, ax, (char *) NULL, bigend, section_offsets, objfile);
|
||||
parse_symbol (&es->asym, ax, (char *) NULL,
|
||||
bigend, section_offsets, objfile);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -2231,7 +2241,8 @@ static void
|
|||
function_outside_compilation_unit_complaint (const char *arg1)
|
||||
{
|
||||
complaint (&symfile_complaints,
|
||||
_("function `%s' appears to be defined outside of all compilation units"),
|
||||
_("function `%s' appears to be defined "
|
||||
"outside of all compilation units"),
|
||||
arg1);
|
||||
}
|
||||
|
||||
|
@ -2399,7 +2410,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
/* Allocate the map FDR -> PST.
|
||||
Minor hack: -O3 images might claim some global data belongs
|
||||
to FDR -1. We`ll go along with that */
|
||||
fdr_to_pst = (struct pst_map *) xzalloc ((hdr->ifdMax + 1) * sizeof *fdr_to_pst);
|
||||
fdr_to_pst = (struct pst_map *)
|
||||
xzalloc ((hdr->ifdMax + 1) * sizeof *fdr_to_pst);
|
||||
old_chain = make_cleanup (xfree, fdr_to_pst);
|
||||
fdr_to_pst++;
|
||||
{
|
||||
|
@ -2493,8 +2505,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
if (ext_in->ifd < -1 || ext_in->ifd >= hdr->ifdMax)
|
||||
{
|
||||
complaint (&symfile_complaints,
|
||||
_("bad ifd for external symbol: %d (max %ld)"), ext_in->ifd,
|
||||
hdr->ifdMax);
|
||||
_("bad ifd for external symbol: %d (max %ld)"),
|
||||
ext_in->ifd, hdr->ifdMax);
|
||||
continue;
|
||||
}
|
||||
if (ext_in->asym.iss < 0 || ext_in->asym.iss >= hdr->issExtMax)
|
||||
|
@ -2521,12 +2533,14 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
{
|
||||
case stProc:
|
||||
/* Beginnning of Procedure */
|
||||
svalue += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
svalue += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
break;
|
||||
case stStaticProc:
|
||||
/* Load time only static procs */
|
||||
ms_type = mst_file_text;
|
||||
svalue += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
svalue += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
break;
|
||||
case stGlobal:
|
||||
/* External symbol */
|
||||
|
@ -2539,12 +2553,14 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
else if (SC_IS_DATA (ext_in->asym.sc))
|
||||
{
|
||||
ms_type = mst_data;
|
||||
svalue += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
|
||||
svalue += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_DATA (objfile));
|
||||
}
|
||||
else if (SC_IS_BSS (ext_in->asym.sc))
|
||||
{
|
||||
ms_type = mst_bss;
|
||||
svalue += ANOFFSET (objfile->section_offsets, SECT_OFF_BSS (objfile));
|
||||
svalue += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_BSS (objfile));
|
||||
}
|
||||
else if (SC_IS_SBSS (ext_in->asym.sc))
|
||||
{
|
||||
|
@ -2584,7 +2600,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
continue;
|
||||
|
||||
ms_type = mst_file_text;
|
||||
svalue += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
svalue += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
}
|
||||
else if (SC_IS_DATA (ext_in->asym.sc))
|
||||
{
|
||||
|
@ -2592,7 +2609,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
continue;
|
||||
|
||||
ms_type = mst_file_data;
|
||||
svalue += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
|
||||
svalue += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_DATA (objfile));
|
||||
}
|
||||
else if (SC_IS_BSS (ext_in->asym.sc))
|
||||
{
|
||||
|
@ -2600,7 +2618,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
continue;
|
||||
|
||||
ms_type = mst_file_bss;
|
||||
svalue += ANOFFSET (objfile->section_offsets, SECT_OFF_BSS (objfile));
|
||||
svalue += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_BSS (objfile));
|
||||
}
|
||||
else if (SC_IS_SBSS (ext_in->asym.sc))
|
||||
{
|
||||
|
@ -2655,7 +2674,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
{
|
||||
textlow = fh->adr;
|
||||
if (relocatable || textlow != 0)
|
||||
textlow += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
textlow += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
}
|
||||
else
|
||||
textlow = 0;
|
||||
|
@ -2743,7 +2763,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
CORE_ADDR procaddr;
|
||||
long isym;
|
||||
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
if (sh.st == stStaticProc)
|
||||
{
|
||||
namestring = debug_info->ss + fh->issBase + sh.iss;
|
||||
|
@ -2790,7 +2811,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
case scPData:
|
||||
case scXData:
|
||||
namestring = debug_info->ss + fh->issBase + sh.iss;
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_DATA (objfile));
|
||||
record_minimal_symbol (namestring, sh.value,
|
||||
mst_file_data, sh.sc,
|
||||
objfile);
|
||||
|
@ -2800,7 +2822,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
/* FIXME! Shouldn't this use cases for bss,
|
||||
then have the default be abs? */
|
||||
namestring = debug_info->ss + fh->issBase + sh.iss;
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_BSS (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_BSS (objfile));
|
||||
record_minimal_symbol (namestring, sh.value,
|
||||
mst_file_bss, sh.sc,
|
||||
objfile);
|
||||
|
@ -2851,25 +2874,26 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
{
|
||||
char *p;
|
||||
|
||||
/*
|
||||
* Standard, external, non-debugger, symbols
|
||||
*/
|
||||
/* Standard, external, non-debugger, symbols. */
|
||||
|
||||
case N_TEXT | N_EXT:
|
||||
case N_NBTEXT | N_EXT:
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
goto record_it;
|
||||
|
||||
case N_DATA | N_EXT:
|
||||
case N_NBDATA | N_EXT:
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_DATA (objfile));
|
||||
goto record_it;
|
||||
|
||||
case N_BSS:
|
||||
case N_BSS | N_EXT:
|
||||
case N_NBBSS | N_EXT:
|
||||
case N_SETV | N_EXT: /* FIXME, is this in BSS? */
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_BSS (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_BSS (objfile));
|
||||
goto record_it;
|
||||
|
||||
case N_ABS | N_EXT:
|
||||
|
@ -2880,10 +2904,11 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
|
||||
case N_NBTEXT:
|
||||
|
||||
/* We need to be able to deal with both N_FN or N_TEXT,
|
||||
because we have no way of knowing whether the sys-supplied ld
|
||||
or GNU ld was used to make the executable. Sequents throw
|
||||
in another wrinkle -- they renumbered N_FN. */
|
||||
/* We need to be able to deal with both N_FN or
|
||||
N_TEXT, because we have no way of knowing
|
||||
whether the sys-supplied ld or GNU ld was used
|
||||
to make the executable. Sequents throw in
|
||||
another wrinkle -- they renumbered N_FN. */
|
||||
|
||||
case N_FN:
|
||||
case N_FN_SEQ:
|
||||
|
@ -2891,11 +2916,12 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
continue;
|
||||
|
||||
case N_DATA:
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_DATA (objfile));
|
||||
goto record_it;
|
||||
|
||||
case N_UNDF | N_EXT:
|
||||
continue; /* Just undefined, not COMMON */
|
||||
continue; /* Just undefined, not COMMON */
|
||||
|
||||
case N_UNDF:
|
||||
continue;
|
||||
|
@ -2937,13 +2963,14 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
char *p;
|
||||
int prev_textlow_not_set;
|
||||
|
||||
valu = sh.value + ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
valu = sh.value + ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
|
||||
prev_textlow_not_set = textlow_not_set;
|
||||
|
||||
/* A zero value is probably an indication for the SunPRO 3.0
|
||||
compiler. end_psymtab explicitly tests for zero, so
|
||||
don't relocate it. */
|
||||
/* A zero value is probably an indication for the
|
||||
SunPRO 3.0 compiler. end_psymtab explicitly tests
|
||||
for zero, so don't relocate it. */
|
||||
|
||||
if (sh.value == 0
|
||||
&& gdbarch_sofun_address_maybe_missing (gdbarch))
|
||||
|
@ -2975,22 +3002,26 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
/* SET_NAMESTRING ();*/
|
||||
namestring = stabstring;
|
||||
|
||||
/* Null name means end of .o file. Don't start a new one. */
|
||||
/* Null name means end of .o file. Don't start a new
|
||||
one. */
|
||||
if (*namestring == '\000')
|
||||
continue;
|
||||
|
||||
/* Some compilers (including gcc) emit a pair of initial N_SOs.
|
||||
The first one is a directory name; the second the file name.
|
||||
If pst exists, is empty, and has a filename ending in '/',
|
||||
we assume the previous N_SO was a directory name. */
|
||||
/* Some compilers (including gcc) emit a pair of
|
||||
initial N_SOs. The first one is a directory name;
|
||||
the second the file name. If pst exists, is
|
||||
empty, and has a filename ending in '/', we assume
|
||||
the previous N_SO was a directory name. */
|
||||
|
||||
p = strrchr (namestring, '/');
|
||||
if (p && *(p + 1) == '\000')
|
||||
continue; /* Simply ignore directory name SOs */
|
||||
continue; /* Simply ignore directory
|
||||
name SOs */
|
||||
|
||||
/* Some other compilers (C++ ones in particular) emit useless
|
||||
SOs for non-existant .c files. We ignore all subsequent SOs that
|
||||
immediately follow the first. */
|
||||
/* Some other compilers (C++ ones in particular) emit
|
||||
useless SOs for non-existant .c files. We ignore
|
||||
all subsequent SOs that immediately follow the
|
||||
first. */
|
||||
|
||||
if (!pst)
|
||||
pst = save_pst;
|
||||
|
@ -3009,27 +3040,31 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
/* SET_NAMESTRING ();*/
|
||||
namestring = stabstring;
|
||||
|
||||
tmp_language = deduce_language_from_filename (namestring);
|
||||
tmp_language
|
||||
= deduce_language_from_filename (namestring);
|
||||
|
||||
/* Only change the psymtab's language if we've learned
|
||||
something useful (eg. tmp_language is not language_unknown).
|
||||
In addition, to match what start_subfile does, never change
|
||||
from C++ to C. */
|
||||
/* Only change the psymtab's language if we've
|
||||
learned something useful (eg. tmp_language is not
|
||||
language_unknown). In addition, to match what
|
||||
start_subfile does, never change from C++ to
|
||||
C. */
|
||||
if (tmp_language != language_unknown
|
||||
&& (tmp_language != language_c
|
||||
|| psymtab_language != language_cplus))
|
||||
psymtab_language = tmp_language;
|
||||
|
||||
/* In C++, one may expect the same filename to come round many
|
||||
times, when code is coming alternately from the main file
|
||||
and from inline functions in other files. So I check to see
|
||||
if this is a file we've seen before -- either the main
|
||||
source file, or a previously included file.
|
||||
/* In C++, one may expect the same filename to come
|
||||
round many times, when code is coming alternately
|
||||
from the main file and from inline functions in
|
||||
other files. So I check to see if this is a file
|
||||
we've seen before -- either the main source file,
|
||||
or a previously included file.
|
||||
|
||||
This seems to be a lot of time to be spending on N_SOL, but
|
||||
things like "break c-exp.y:435" need to work (I
|
||||
suppose the psymtab_include_list could be hashed or put
|
||||
in a binary tree, if profiling shows this is a major hog). */
|
||||
This seems to be a lot of time to be spending on
|
||||
N_SOL, but things like "break c-exp.y:435" need to
|
||||
work (I suppose the psymtab_include_list could be
|
||||
hashed or put in a binary tree, if profiling shows
|
||||
this is a major hog). */
|
||||
if (pst && strcmp (namestring, pst->filename) == 0)
|
||||
continue;
|
||||
|
||||
|
@ -3060,43 +3095,46 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
}
|
||||
continue;
|
||||
}
|
||||
case N_LSYM: /* Typedef or automatic variable. */
|
||||
case N_STSYM: /* Data seg var -- static */
|
||||
case N_LCSYM: /* BSS " */
|
||||
case N_ROSYM: /* Read-only data seg var -- static. */
|
||||
case N_NBSTS: /* Gould nobase. */
|
||||
case N_NBLCS: /* symbols. */
|
||||
case N_LSYM: /* Typedef or automatic variable. */
|
||||
case N_STSYM: /* Data seg var -- static */
|
||||
case N_LCSYM: /* BSS " */
|
||||
case N_ROSYM: /* Read-only data seg var -- static. */
|
||||
case N_NBSTS: /* Gould nobase. */
|
||||
case N_NBLCS: /* symbols. */
|
||||
case N_FUN:
|
||||
case N_GSYM: /* Global (extern) variable; can be
|
||||
data or bss (sigh FIXME). */
|
||||
case N_GSYM: /* Global (extern) variable; can be
|
||||
data or bss (sigh FIXME). */
|
||||
|
||||
/* Following may probably be ignored; I'll leave them here
|
||||
for now (until I do Pascal and Modula 2 extensions). */
|
||||
|
||||
case N_PC: /* I may or may not need this; I
|
||||
suspect not. */
|
||||
case N_M2C: /* I suspect that I can ignore this here. */
|
||||
case N_SCOPE: /* Same. */
|
||||
case N_PC: /* I may or may not need this; I
|
||||
suspect not. */
|
||||
case N_M2C: /* I suspect that I can ignore this
|
||||
here. */
|
||||
case N_SCOPE: /* Same. */
|
||||
|
||||
/* SET_NAMESTRING ();*/
|
||||
namestring = stabstring;
|
||||
p = (char *) strchr (namestring, ':');
|
||||
if (!p)
|
||||
continue; /* Not a debugging symbol. */
|
||||
continue; /* Not a debugging symbol. */
|
||||
|
||||
|
||||
|
||||
/* Main processing section for debugging symbols which
|
||||
the initial read through the symbol tables needs to worry
|
||||
about. If we reach this point, the symbol which we are
|
||||
considering is definitely one we are interested in.
|
||||
p must also contain the (valid) index into the namestring
|
||||
which indicates the debugging type symbol. */
|
||||
the initial read through the symbol tables needs to
|
||||
worry about. If we reach this point, the symbol
|
||||
which we are considering is definitely one we are
|
||||
interested in. p must also contain the (valid)
|
||||
index into the namestring which indicates the
|
||||
debugging type symbol. */
|
||||
|
||||
switch (p[1])
|
||||
{
|
||||
case 'S':
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_DATA (objfile));
|
||||
|
||||
if (gdbarch_static_transform_name_p (gdbarch))
|
||||
namestring = gdbarch_static_transform_name
|
||||
|
@ -3109,7 +3147,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
psymtab_language, objfile);
|
||||
continue;
|
||||
case 'G':
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_DATA (objfile));
|
||||
/* The addresses in these entries are reported to be
|
||||
wrong. See the code that reads 'G's for symtabs. */
|
||||
add_psymbol_to_list (namestring, p - namestring, 1,
|
||||
|
@ -3138,18 +3177,20 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
if (p[2] == 't')
|
||||
{
|
||||
/* Also a typedef with the same name. */
|
||||
add_psymbol_to_list (namestring, p - namestring,
|
||||
1,
|
||||
add_psymbol_to_list (namestring,
|
||||
p - namestring, 1,
|
||||
VAR_DOMAIN, LOC_TYPEDEF,
|
||||
&objfile->static_psymbols,
|
||||
sh.value, 0,
|
||||
psymtab_language, objfile);
|
||||
psymtab_language,
|
||||
objfile);
|
||||
p += 1;
|
||||
}
|
||||
}
|
||||
goto check_enum;
|
||||
case 't':
|
||||
if (p != namestring) /* a name is there, not just :T... */
|
||||
if (p != namestring) /* a name is there, not
|
||||
just :T... */
|
||||
{
|
||||
add_psymbol_to_list (namestring, p - namestring, 1,
|
||||
VAR_DOMAIN, LOC_TYPEDEF,
|
||||
|
@ -3158,14 +3199,15 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
psymtab_language, objfile);
|
||||
}
|
||||
check_enum:
|
||||
/* If this is an enumerated type, we need to
|
||||
add all the enum constants to the partial symbol
|
||||
table. This does not cover enums without names, e.g.
|
||||
"enum {a, b} c;" in C, but fortunately those are
|
||||
rare. There is no way for GDB to find those from the
|
||||
enum type without spending too much time on it. Thus
|
||||
to solve this problem, the compiler needs to put out the
|
||||
enum in a nameless type. GCC2 does this. */
|
||||
/* If this is an enumerated type, we need to add
|
||||
all the enum constants to the partial symbol
|
||||
table. This does not cover enums without names,
|
||||
e.g. "enum {a, b} c;" in C, but fortunately
|
||||
those are rare. There is no way for GDB to find
|
||||
those from the enum type without spending too
|
||||
much time on it. Thus to solve this problem,
|
||||
the compiler needs to put out the enum in a
|
||||
nameless type. GCC2 does this. */
|
||||
|
||||
/* We are looking for something of the form
|
||||
<name> ":" ("t" | "T") [<number> "="] "e"
|
||||
|
@ -3173,8 +3215,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
|
||||
/* Skip over the colon and the 't' or 'T'. */
|
||||
p += 2;
|
||||
/* This type may be given a number. Also, numbers can come
|
||||
in pairs like (0,26). Skip over it. */
|
||||
/* This type may be given a number. Also, numbers
|
||||
can come in pairs like (0,26). Skip over it. */
|
||||
while ((*p >= '0' && *p <= '9')
|
||||
|| *p == '(' || *p == ',' || *p == ')'
|
||||
|| *p == '=')
|
||||
|
@ -3182,7 +3224,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
|
||||
if (*p++ == 'e')
|
||||
{
|
||||
/* The aix4 compiler emits extra crud before the members. */
|
||||
/* The aix4 compiler emits extra crud before
|
||||
the members. */
|
||||
if (*p == '-')
|
||||
{
|
||||
/* Skip over the type (?). */
|
||||
|
@ -3202,8 +3245,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
{
|
||||
char *q;
|
||||
|
||||
/* Check for and handle cretinous dbx symbol name
|
||||
continuation! */
|
||||
/* Check for and handle cretinous dbx
|
||||
symbol name continuation! */
|
||||
if (*p == '\\' || (*p == '?' && p[1] == '\0'))
|
||||
p = next_symbol_text (objfile);
|
||||
|
||||
|
@ -3212,11 +3255,13 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
for (q = p; *q && *q != ':'; q++)
|
||||
;
|
||||
/* Note that the value doesn't matter for
|
||||
enum constants in psymtabs, just in symtabs. */
|
||||
enum constants in psymtabs, just in
|
||||
symtabs. */
|
||||
add_psymbol_to_list (p, q - p, 1,
|
||||
VAR_DOMAIN, LOC_CONST,
|
||||
&objfile->static_psymbols, 0,
|
||||
0, psymtab_language, objfile);
|
||||
&objfile->static_psymbols,
|
||||
0, 0, psymtab_language,
|
||||
objfile);
|
||||
/* Point past the name. */
|
||||
p = q;
|
||||
/* Skip over the value. */
|
||||
|
@ -3232,8 +3277,9 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
/* Constant, e.g. from "const" in Pascal. */
|
||||
add_psymbol_to_list (namestring, p - namestring, 1,
|
||||
VAR_DOMAIN, LOC_CONST,
|
||||
&objfile->static_psymbols, sh.value,
|
||||
0, psymtab_language, objfile);
|
||||
&objfile->static_psymbols,
|
||||
sh.value, 0, psymtab_language,
|
||||
objfile);
|
||||
continue;
|
||||
|
||||
case 'f':
|
||||
|
@ -3247,7 +3293,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
function_outside_compilation_unit_complaint (name);
|
||||
xfree (name);
|
||||
}
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
add_psymbol_to_list (namestring, p - namestring, 1,
|
||||
VAR_DOMAIN, LOC_BLOCK,
|
||||
&objfile->static_psymbols,
|
||||
|
@ -3256,8 +3303,9 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
continue;
|
||||
|
||||
/* Global functions were ignored here, but now they
|
||||
are put into the global psymtab like one would expect.
|
||||
They're also in the minimal symbol table. */
|
||||
are put into the global psymtab like one would
|
||||
expect. They're also in the minimal symbol
|
||||
table. */
|
||||
case 'F':
|
||||
if (! pst)
|
||||
{
|
||||
|
@ -3269,7 +3317,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
function_outside_compilation_unit_complaint (name);
|
||||
xfree (name);
|
||||
}
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
add_psymbol_to_list (namestring, p - namestring, 1,
|
||||
VAR_DOMAIN, LOC_BLOCK,
|
||||
&objfile->global_psymbols,
|
||||
|
@ -3277,9 +3326,10 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
psymtab_language, objfile);
|
||||
continue;
|
||||
|
||||
/* Two things show up here (hopefully); static symbols of
|
||||
local scope (static used inside braces) or extensions
|
||||
of structure symbols. We can ignore both. */
|
||||
/* Two things show up here (hopefully); static
|
||||
symbols of local scope (static used inside
|
||||
braces) or extensions of structure symbols. We
|
||||
can ignore both. */
|
||||
case 'V':
|
||||
case '(':
|
||||
case '0':
|
||||
|
@ -3293,25 +3343,27 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
case '8':
|
||||
case '9':
|
||||
case '-':
|
||||
case '#': /* for symbol identification (used in live ranges) */
|
||||
case '#': /* For symbol identification (used
|
||||
in live ranges). */
|
||||
continue;
|
||||
|
||||
case ':':
|
||||
/* It is a C++ nested symbol. We don't need to record it
|
||||
(I don't think); if we try to look up foo::bar::baz,
|
||||
then symbols for the symtab containing foo should get
|
||||
read in, I think. */
|
||||
/* It is a C++ nested symbol. We don't need to
|
||||
record it (I don't think); if we try to look up
|
||||
foo::bar::baz, then symbols for the symtab
|
||||
containing foo should get read in, I think. */
|
||||
/* Someone says sun cc puts out symbols like
|
||||
/foo/baz/maclib::/usr/local/bin/maclib,
|
||||
which would get here with a symbol type of ':'. */
|
||||
continue;
|
||||
|
||||
default:
|
||||
/* Unexpected symbol descriptor. The second and subsequent stabs
|
||||
of a continued stab can show up here. The question is
|
||||
whether they ever can mimic a normal stab--it would be
|
||||
nice if not, since we certainly don't want to spend the
|
||||
time searching to the end of every string looking for
|
||||
/* Unexpected symbol descriptor. The second and
|
||||
subsequent stabs of a continued stab can show up
|
||||
here. The question is whether they ever can
|
||||
mimic a normal stab--it would be nice if not,
|
||||
since we certainly don't want to spend the time
|
||||
searching to the end of every string looking for
|
||||
a backslash. */
|
||||
|
||||
complaint (&symfile_complaints,
|
||||
|
@ -3347,12 +3399,14 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
case N_EINCL:
|
||||
case N_DSLINE:
|
||||
case N_BSLINE:
|
||||
case N_SSYM: /* Claim: Structure or union element.
|
||||
Hopefully, I can ignore this. */
|
||||
case N_ENTRY: /* Alternate entry point; can ignore. */
|
||||
case N_MAIN: /* Can definitely ignore this. */
|
||||
case N_SSYM: /* Claim: Structure or union
|
||||
element. Hopefully, I can
|
||||
ignore this. */
|
||||
case N_ENTRY: /* Alternate entry point; can
|
||||
ignore. */
|
||||
case N_MAIN: /* Can definitely ignore this. */
|
||||
case N_CATCH: /* These are GNU C++ extensions */
|
||||
case N_EHDECL: /* that can safely be ignored here. */
|
||||
case N_EHDECL: /* that can safely be ignored here. */
|
||||
case N_LENG:
|
||||
case N_BCOMM:
|
||||
case N_ECOMM:
|
||||
|
@ -3364,18 +3418,21 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
case N_LBRAC:
|
||||
case N_NSYMS: /* Ultrix 4.0: symbol count */
|
||||
case N_DEFD: /* GNU Modula-2 */
|
||||
case N_ALIAS: /* SunPro F77: alias name, ignore for now. */
|
||||
case N_ALIAS: /* SunPro F77: alias name, ignore
|
||||
for now. */
|
||||
|
||||
case N_OBJ: /* useless types from Solaris */
|
||||
case N_OBJ: /* useless types from Solaris */
|
||||
case N_OPT:
|
||||
/* These symbols aren't interesting; don't worry about them */
|
||||
/* These symbols aren't interesting; don't worry about
|
||||
them */
|
||||
|
||||
continue;
|
||||
|
||||
default:
|
||||
/* If we haven't found it yet, ignore it. It's probably some
|
||||
new type we don't know about yet. */
|
||||
complaint (&symfile_complaints, _("unknown symbol type %s"),
|
||||
/* If we haven't found it yet, ignore it. It's
|
||||
probably some new type we don't know about yet. */
|
||||
complaint (&symfile_complaints,
|
||||
_("unknown symbol type %s"),
|
||||
hex_string (type_code)); /*CUR_SYMBOL_TYPE*/
|
||||
continue;
|
||||
}
|
||||
|
@ -3424,18 +3481,21 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
/* The value of a stEnd symbol is the displacement from the
|
||||
corresponding start symbol value, do not relocate it. */
|
||||
if (sh.st != stEnd)
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
break;
|
||||
case scData:
|
||||
case scSData:
|
||||
case scRData:
|
||||
case scPData:
|
||||
case scXData:
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_DATA (objfile));
|
||||
break;
|
||||
case scBss:
|
||||
case scSBss:
|
||||
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_BSS (objfile));
|
||||
sh.value += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_BSS (objfile));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -3448,8 +3508,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
case stStaticProc:
|
||||
prim_record_minimal_symbol_and_info (name, sh.value,
|
||||
mst_file_text,
|
||||
SECT_OFF_TEXT (objfile), NULL,
|
||||
objfile);
|
||||
SECT_OFF_TEXT (objfile),
|
||||
NULL, objfile);
|
||||
|
||||
/* FALLTHROUGH */
|
||||
|
||||
|
@ -3635,7 +3695,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
CORE_ADDR svalue;
|
||||
|
||||
if (ext_ptr->ifd != f_idx)
|
||||
internal_error (__FILE__, __LINE__, _("failed internal consistency check"));
|
||||
internal_error (__FILE__, __LINE__,
|
||||
_("failed internal consistency check"));
|
||||
psh = &ext_ptr->asym;
|
||||
|
||||
/* Do not add undefined symbols to the partial symbol table. */
|
||||
|
@ -3647,18 +3708,21 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
{
|
||||
case scText:
|
||||
case scRConst:
|
||||
svalue += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
svalue += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
break;
|
||||
case scData:
|
||||
case scSData:
|
||||
case scRData:
|
||||
case scPData:
|
||||
case scXData:
|
||||
svalue += ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile));
|
||||
svalue += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_DATA (objfile));
|
||||
break;
|
||||
case scBss:
|
||||
case scSBss:
|
||||
svalue += ANOFFSET (objfile->section_offsets, SECT_OFF_BSS (objfile));
|
||||
svalue += ANOFFSET (objfile->section_offsets,
|
||||
SECT_OFF_BSS (objfile));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -3750,8 +3814,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
if (fh->crfd <= 1)
|
||||
continue;
|
||||
|
||||
/* Skip the first file indirect entry as it is a self dependency
|
||||
for source files or a reverse .h -> .c dependency for header files. */
|
||||
/* Skip the first file indirect entry as it is a self dependency for
|
||||
source files or a reverse .h -> .c dependency for header files. */
|
||||
pst->number_of_dependencies = 0;
|
||||
pst->dependencies =
|
||||
((struct partial_symtab **)
|
||||
|
@ -3779,7 +3843,8 @@ parse_partial_symbols (struct objfile *objfile)
|
|||
/* Do not add to dependeny list if psymtab was empty. */
|
||||
if (fdr_to_pst[rh].pst == (struct partial_symtab *) NULL)
|
||||
continue;
|
||||
pst->dependencies[pst->number_of_dependencies++] = fdr_to_pst[rh].pst;
|
||||
pst->dependencies[pst->number_of_dependencies++]
|
||||
= fdr_to_pst[rh].pst;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4067,7 +4132,8 @@ psymtab_to_symtab_1 (struct partial_symtab *pst, const char *filename)
|
|||
else
|
||||
{
|
||||
/* Handle encoded stab line number. */
|
||||
valu += ANOFFSET (pst->section_offsets, SECT_OFF_TEXT (pst->objfile));
|
||||
valu += ANOFFSET (pst->section_offsets,
|
||||
SECT_OFF_TEXT (pst->objfile));
|
||||
record_line (current_subfile, sh.index,
|
||||
gdbarch_addr_bits_remove (gdbarch, valu));
|
||||
}
|
||||
|
@ -4077,12 +4143,14 @@ psymtab_to_symtab_1 (struct partial_symtab *pst, const char *filename)
|
|||
/* These are generated by gcc-2.x, do not complain */
|
||||
;
|
||||
else
|
||||
complaint (&symfile_complaints, _("unknown stabs symbol %s"), name);
|
||||
complaint (&symfile_complaints,
|
||||
_("unknown stabs symbol %s"), name);
|
||||
}
|
||||
|
||||
if (! last_symtab_ended)
|
||||
{
|
||||
st = end_symtab (pst->texthigh, pst->objfile, SECT_OFF_TEXT (pst->objfile));
|
||||
st = end_symtab (pst->texthigh, pst->objfile,
|
||||
SECT_OFF_TEXT (pst->objfile));
|
||||
end_stabs ();
|
||||
}
|
||||
|
||||
|
@ -4188,7 +4256,8 @@ psymtab_to_symtab_1 (struct partial_symtab *pst, const char *filename)
|
|||
(*swap_sym_in) (cur_bfd, sym_ptr, &sh);
|
||||
c = parse_symbol (&sh,
|
||||
debug_info->external_aux + fh->iauxBase,
|
||||
sym_ptr, fh->fBigendian, pst->section_offsets, pst->objfile);
|
||||
sym_ptr, fh->fBigendian,
|
||||
pst->section_offsets, pst->objfile);
|
||||
sym_ptr += c * external_sym_size;
|
||||
}
|
||||
|
||||
|
@ -4226,7 +4295,8 @@ psymtab_to_symtab_1 (struct partial_symtab *pst, const char *filename)
|
|||
lowest_pdr_addr = pdr_in->adr;
|
||||
}
|
||||
|
||||
parse_lines (fh, pr_block, lines, maxlines, pst, lowest_pdr_addr);
|
||||
parse_lines (fh, pr_block, lines, maxlines,
|
||||
pst, lowest_pdr_addr);
|
||||
if (lines->nitems < fh->cline)
|
||||
lines = shrink_linetable (lines);
|
||||
|
||||
|
@ -4246,13 +4316,15 @@ psymtab_to_symtab_1 (struct partial_symtab *pst, const char *filename)
|
|||
XXX use the global list to speed up things here. how?
|
||||
FIXME, Maybe quit once we have found the right number of ext's? */
|
||||
top_stack->cur_st = st;
|
||||
top_stack->cur_block = BLOCKVECTOR_BLOCK (BLOCKVECTOR (top_stack->cur_st),
|
||||
GLOBAL_BLOCK);
|
||||
top_stack->cur_block
|
||||
= BLOCKVECTOR_BLOCK (BLOCKVECTOR (top_stack->cur_st),
|
||||
GLOBAL_BLOCK);
|
||||
top_stack->blocktype = stFile;
|
||||
|
||||
ext_ptr = PST_PRIVATE (pst)->extern_tab;
|
||||
for (i = PST_PRIVATE (pst)->extern_count; --i >= 0; ext_ptr++)
|
||||
parse_external (ext_ptr, fh->fBigendian, pst->section_offsets, pst->objfile);
|
||||
parse_external (ext_ptr, fh->fBigendian,
|
||||
pst->section_offsets, pst->objfile);
|
||||
|
||||
/* If there are undefined symbols, tell the user.
|
||||
The alpha has an undefined symbol for every symbol that is
|
||||
|
@ -4261,7 +4333,8 @@ psymtab_to_symtab_1 (struct partial_symtab *pst, const char *filename)
|
|||
{
|
||||
printf_filtered (_("File %s contains %d unresolved references:"),
|
||||
st->filename, n_undef_symbols);
|
||||
printf_filtered ("\n\t%4d variables\n\t%4d procedures\n\t%4d labels\n",
|
||||
printf_filtered ("\n\t%4d variables\n\t%4d "
|
||||
"procedures\n\t%4d labels\n",
|
||||
n_undef_vars, n_undef_procs, n_undef_labels);
|
||||
n_undef_symbols = n_undef_labels = n_undef_vars = n_undef_procs = 0;
|
||||
|
||||
|
@ -4317,7 +4390,9 @@ has_opaque_xref (FDR *fh, SYMR *sh)
|
|||
Return value says how many aux symbols we ate. */
|
||||
|
||||
static int
|
||||
cross_ref (int fd, union aux_ext *ax, struct type **tpp, enum type_code type_code, /* Use to alloc new type if none is found. */
|
||||
cross_ref (int fd, union aux_ext *ax, struct type **tpp,
|
||||
enum type_code type_code,
|
||||
/* Use to alloc new type if none is found. */
|
||||
char **pname, int bigend, char *sym_name)
|
||||
{
|
||||
RNDXR rn[1];
|
||||
|
@ -4350,7 +4425,8 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp, enum type_code type_cod
|
|||
if (rf == -1)
|
||||
{
|
||||
*pname = "<undefined>";
|
||||
*tpp = init_type (type_code, 0, TYPE_FLAG_STUB, (char *) NULL, current_objfile);
|
||||
*tpp = init_type (type_code, 0, TYPE_FLAG_STUB,
|
||||
(char *) NULL, current_objfile);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue