gdb, gdbserver, gdbsupport: fix leading space vs tabs issues

Many spots incorrectly use only spaces for indentation (for example,
there are a lot of spots in ada-lang.c).  I've always found it awkward
when I needed to edit one of these spots: do I keep the original wrong
indentation, or do I fix it?  What if the lines around it are also
wrong, do I fix them too?  I probably don't want to fix them in the same
patch, to avoid adding noise to my patch.

So I propose to fix as much as possible once and for all (hopefully).

One typical counter argument for this is that it makes code archeology
more difficult, because git-blame will show this commit as the last
change for these lines.  My counter counter argument is: when
git-blaming, you often need to do "blame the file at the parent commit"
anyway, to go past some other refactor that touched the line you are
interested in, but is not the change you are looking for.  So you
already need a somewhat efficient way to do this.

Using some interactive tool, rather than plain git-blame, makes this
trivial.  For example, I use "tig blame <file>", where going back past
the commit that changed the currently selected line is one keystroke.
It looks like Magit in Emacs does it too (though I've never used it).
Web viewers of Github and Gitlab do it too.  My point is that it won't
really make archeology more difficult.

The other typical counter argument is that it will cause conflicts with
existing patches.  That's true... but it's a one time cost, and those
are not conflicts that are difficult to resolve.  I have also tried "git
rebase --ignore-whitespace", it seems to work well.  Although that will
re-introduce the faulty indentation, so one needs to take care of fixing
the indentation in the patch after that (which is easy).

gdb/ChangeLog:

	* aarch64-linux-tdep.c: Fix indentation.
	* aarch64-ravenscar-thread.c: Fix indentation.
	* aarch64-tdep.c: Fix indentation.
	* aarch64-tdep.h: Fix indentation.
	* ada-lang.c: Fix indentation.
	* ada-lang.h: Fix indentation.
	* ada-tasks.c: Fix indentation.
	* ada-typeprint.c: Fix indentation.
	* ada-valprint.c: Fix indentation.
	* ada-varobj.c: Fix indentation.
	* addrmap.c: Fix indentation.
	* addrmap.h: Fix indentation.
	* agent.c: Fix indentation.
	* aix-thread.c: Fix indentation.
	* alpha-bsd-nat.c: Fix indentation.
	* alpha-linux-tdep.c: Fix indentation.
	* alpha-mdebug-tdep.c: Fix indentation.
	* alpha-nbsd-tdep.c: Fix indentation.
	* alpha-obsd-tdep.c: Fix indentation.
	* alpha-tdep.c: Fix indentation.
	* amd64-bsd-nat.c: Fix indentation.
	* amd64-darwin-tdep.c: Fix indentation.
	* amd64-linux-nat.c: Fix indentation.
	* amd64-linux-tdep.c: Fix indentation.
	* amd64-nat.c: Fix indentation.
	* amd64-obsd-tdep.c: Fix indentation.
	* amd64-tdep.c: Fix indentation.
	* amd64-windows-tdep.c: Fix indentation.
	* annotate.c: Fix indentation.
	* arc-tdep.c: Fix indentation.
	* arch-utils.c: Fix indentation.
	* arch/arm-get-next-pcs.c: Fix indentation.
	* arch/arm.c: Fix indentation.
	* arm-linux-nat.c: Fix indentation.
	* arm-linux-tdep.c: Fix indentation.
	* arm-nbsd-tdep.c: Fix indentation.
	* arm-pikeos-tdep.c: Fix indentation.
	* arm-tdep.c: Fix indentation.
	* arm-tdep.h: Fix indentation.
	* arm-wince-tdep.c: Fix indentation.
	* auto-load.c: Fix indentation.
	* auxv.c: Fix indentation.
	* avr-tdep.c: Fix indentation.
	* ax-gdb.c: Fix indentation.
	* ax-general.c: Fix indentation.
	* bfin-linux-tdep.c: Fix indentation.
	* block.c: Fix indentation.
	* block.h: Fix indentation.
	* blockframe.c: Fix indentation.
	* bpf-tdep.c: Fix indentation.
	* break-catch-sig.c: Fix indentation.
	* break-catch-syscall.c: Fix indentation.
	* break-catch-throw.c: Fix indentation.
	* breakpoint.c: Fix indentation.
	* breakpoint.h: Fix indentation.
	* bsd-uthread.c: Fix indentation.
	* btrace.c: Fix indentation.
	* build-id.c: Fix indentation.
	* buildsym-legacy.h: Fix indentation.
	* buildsym.c: Fix indentation.
	* c-typeprint.c: Fix indentation.
	* c-valprint.c: Fix indentation.
	* c-varobj.c: Fix indentation.
	* charset.c: Fix indentation.
	* cli/cli-cmds.c: Fix indentation.
	* cli/cli-decode.c: Fix indentation.
	* cli/cli-decode.h: Fix indentation.
	* cli/cli-script.c: Fix indentation.
	* cli/cli-setshow.c: Fix indentation.
	* coff-pe-read.c: Fix indentation.
	* coffread.c: Fix indentation.
	* compile/compile-cplus-types.c: Fix indentation.
	* compile/compile-object-load.c: Fix indentation.
	* compile/compile-object-run.c: Fix indentation.
	* completer.c: Fix indentation.
	* corefile.c: Fix indentation.
	* corelow.c: Fix indentation.
	* cp-abi.h: Fix indentation.
	* cp-namespace.c: Fix indentation.
	* cp-support.c: Fix indentation.
	* cp-valprint.c: Fix indentation.
	* cris-linux-tdep.c: Fix indentation.
	* cris-tdep.c: Fix indentation.
	* darwin-nat-info.c: Fix indentation.
	* darwin-nat.c: Fix indentation.
	* darwin-nat.h: Fix indentation.
	* dbxread.c: Fix indentation.
	* dcache.c: Fix indentation.
	* disasm.c: Fix indentation.
	* dtrace-probe.c: Fix indentation.
	* dwarf2/abbrev.c: Fix indentation.
	* dwarf2/attribute.c: Fix indentation.
	* dwarf2/expr.c: Fix indentation.
	* dwarf2/frame.c: Fix indentation.
	* dwarf2/index-cache.c: Fix indentation.
	* dwarf2/index-write.c: Fix indentation.
	* dwarf2/line-header.c: Fix indentation.
	* dwarf2/loc.c: Fix indentation.
	* dwarf2/macro.c: Fix indentation.
	* dwarf2/read.c: Fix indentation.
	* dwarf2/read.h: Fix indentation.
	* elfread.c: Fix indentation.
	* eval.c: Fix indentation.
	* event-top.c: Fix indentation.
	* exec.c: Fix indentation.
	* exec.h: Fix indentation.
	* expprint.c: Fix indentation.
	* f-lang.c: Fix indentation.
	* f-typeprint.c: Fix indentation.
	* f-valprint.c: Fix indentation.
	* fbsd-nat.c: Fix indentation.
	* fbsd-tdep.c: Fix indentation.
	* findvar.c: Fix indentation.
	* fork-child.c: Fix indentation.
	* frame-unwind.c: Fix indentation.
	* frame-unwind.h: Fix indentation.
	* frame.c: Fix indentation.
	* frv-linux-tdep.c: Fix indentation.
	* frv-tdep.c: Fix indentation.
	* frv-tdep.h: Fix indentation.
	* ft32-tdep.c: Fix indentation.
	* gcore.c: Fix indentation.
	* gdb_bfd.c: Fix indentation.
	* gdbarch.sh: Fix indentation.
	* gdbarch.c: Re-generate
	* gdbarch.h: Re-generate.
	* gdbcore.h: Fix indentation.
	* gdbthread.h: Fix indentation.
	* gdbtypes.c: Fix indentation.
	* gdbtypes.h: Fix indentation.
	* glibc-tdep.c: Fix indentation.
	* gnu-nat.c: Fix indentation.
	* gnu-nat.h: Fix indentation.
	* gnu-v2-abi.c: Fix indentation.
	* gnu-v3-abi.c: Fix indentation.
	* go32-nat.c: Fix indentation.
	* guile/guile-internal.h: Fix indentation.
	* guile/scm-cmd.c: Fix indentation.
	* guile/scm-frame.c: Fix indentation.
	* guile/scm-iterator.c: Fix indentation.
	* guile/scm-math.c: Fix indentation.
	* guile/scm-ports.c: Fix indentation.
	* guile/scm-pretty-print.c: Fix indentation.
	* guile/scm-value.c: Fix indentation.
	* h8300-tdep.c: Fix indentation.
	* hppa-linux-nat.c: Fix indentation.
	* hppa-linux-tdep.c: Fix indentation.
	* hppa-nbsd-nat.c: Fix indentation.
	* hppa-nbsd-tdep.c: Fix indentation.
	* hppa-obsd-nat.c: Fix indentation.
	* hppa-tdep.c: Fix indentation.
	* hppa-tdep.h: Fix indentation.
	* i386-bsd-nat.c: Fix indentation.
	* i386-darwin-nat.c: Fix indentation.
	* i386-darwin-tdep.c: Fix indentation.
	* i386-dicos-tdep.c: Fix indentation.
	* i386-gnu-nat.c: Fix indentation.
	* i386-linux-nat.c: Fix indentation.
	* i386-linux-tdep.c: Fix indentation.
	* i386-nto-tdep.c: Fix indentation.
	* i386-obsd-tdep.c: Fix indentation.
	* i386-sol2-nat.c: Fix indentation.
	* i386-tdep.c: Fix indentation.
	* i386-tdep.h: Fix indentation.
	* i386-windows-tdep.c: Fix indentation.
	* i387-tdep.c: Fix indentation.
	* i387-tdep.h: Fix indentation.
	* ia64-libunwind-tdep.c: Fix indentation.
	* ia64-libunwind-tdep.h: Fix indentation.
	* ia64-linux-nat.c: Fix indentation.
	* ia64-linux-tdep.c: Fix indentation.
	* ia64-tdep.c: Fix indentation.
	* ia64-tdep.h: Fix indentation.
	* ia64-vms-tdep.c: Fix indentation.
	* infcall.c: Fix indentation.
	* infcmd.c: Fix indentation.
	* inferior.c: Fix indentation.
	* infrun.c: Fix indentation.
	* iq2000-tdep.c: Fix indentation.
	* language.c: Fix indentation.
	* linespec.c: Fix indentation.
	* linux-fork.c: Fix indentation.
	* linux-nat.c: Fix indentation.
	* linux-tdep.c: Fix indentation.
	* linux-thread-db.c: Fix indentation.
	* lm32-tdep.c: Fix indentation.
	* m2-lang.c: Fix indentation.
	* m2-typeprint.c: Fix indentation.
	* m2-valprint.c: Fix indentation.
	* m32c-tdep.c: Fix indentation.
	* m32r-linux-tdep.c: Fix indentation.
	* m32r-tdep.c: Fix indentation.
	* m68hc11-tdep.c: Fix indentation.
	* m68k-bsd-nat.c: Fix indentation.
	* m68k-linux-nat.c: Fix indentation.
	* m68k-linux-tdep.c: Fix indentation.
	* m68k-tdep.c: Fix indentation.
	* machoread.c: Fix indentation.
	* macrocmd.c: Fix indentation.
	* macroexp.c: Fix indentation.
	* macroscope.c: Fix indentation.
	* macrotab.c: Fix indentation.
	* macrotab.h: Fix indentation.
	* main.c: Fix indentation.
	* mdebugread.c: Fix indentation.
	* mep-tdep.c: Fix indentation.
	* mi/mi-cmd-catch.c: Fix indentation.
	* mi/mi-cmd-disas.c: Fix indentation.
	* mi/mi-cmd-env.c: Fix indentation.
	* mi/mi-cmd-stack.c: Fix indentation.
	* mi/mi-cmd-var.c: Fix indentation.
	* mi/mi-cmds.c: Fix indentation.
	* mi/mi-main.c: Fix indentation.
	* mi/mi-parse.c: Fix indentation.
	* microblaze-tdep.c: Fix indentation.
	* minidebug.c: Fix indentation.
	* minsyms.c: Fix indentation.
	* mips-linux-nat.c: Fix indentation.
	* mips-linux-tdep.c: Fix indentation.
	* mips-nbsd-tdep.c: Fix indentation.
	* mips-tdep.c: Fix indentation.
	* mn10300-linux-tdep.c: Fix indentation.
	* mn10300-tdep.c: Fix indentation.
	* moxie-tdep.c: Fix indentation.
	* msp430-tdep.c: Fix indentation.
	* namespace.h: Fix indentation.
	* nat/fork-inferior.c: Fix indentation.
	* nat/gdb_ptrace.h: Fix indentation.
	* nat/linux-namespaces.c: Fix indentation.
	* nat/linux-osdata.c: Fix indentation.
	* nat/netbsd-nat.c: Fix indentation.
	* nat/x86-dregs.c: Fix indentation.
	* nbsd-nat.c: Fix indentation.
	* nbsd-tdep.c: Fix indentation.
	* nios2-linux-tdep.c: Fix indentation.
	* nios2-tdep.c: Fix indentation.
	* nto-procfs.c: Fix indentation.
	* nto-tdep.c: Fix indentation.
	* objfiles.c: Fix indentation.
	* objfiles.h: Fix indentation.
	* opencl-lang.c: Fix indentation.
	* or1k-tdep.c: Fix indentation.
	* osabi.c: Fix indentation.
	* osabi.h: Fix indentation.
	* osdata.c: Fix indentation.
	* p-lang.c: Fix indentation.
	* p-typeprint.c: Fix indentation.
	* p-valprint.c: Fix indentation.
	* parse.c: Fix indentation.
	* ppc-linux-nat.c: Fix indentation.
	* ppc-linux-tdep.c: Fix indentation.
	* ppc-nbsd-nat.c: Fix indentation.
	* ppc-nbsd-tdep.c: Fix indentation.
	* ppc-obsd-nat.c: Fix indentation.
	* ppc-ravenscar-thread.c: Fix indentation.
	* ppc-sysv-tdep.c: Fix indentation.
	* ppc64-tdep.c: Fix indentation.
	* printcmd.c: Fix indentation.
	* proc-api.c: Fix indentation.
	* producer.c: Fix indentation.
	* producer.h: Fix indentation.
	* prologue-value.c: Fix indentation.
	* prologue-value.h: Fix indentation.
	* psymtab.c: Fix indentation.
	* python/py-arch.c: Fix indentation.
	* python/py-bpevent.c: Fix indentation.
	* python/py-event.c: Fix indentation.
	* python/py-event.h: Fix indentation.
	* python/py-finishbreakpoint.c: Fix indentation.
	* python/py-frame.c: Fix indentation.
	* python/py-framefilter.c: Fix indentation.
	* python/py-inferior.c: Fix indentation.
	* python/py-infthread.c: Fix indentation.
	* python/py-objfile.c: Fix indentation.
	* python/py-prettyprint.c: Fix indentation.
	* python/py-registers.c: Fix indentation.
	* python/py-signalevent.c: Fix indentation.
	* python/py-stopevent.c: Fix indentation.
	* python/py-stopevent.h: Fix indentation.
	* python/py-threadevent.c: Fix indentation.
	* python/py-tui.c: Fix indentation.
	* python/py-unwind.c: Fix indentation.
	* python/py-value.c: Fix indentation.
	* python/py-xmethods.c: Fix indentation.
	* python/python-internal.h: Fix indentation.
	* python/python.c: Fix indentation.
	* ravenscar-thread.c: Fix indentation.
	* record-btrace.c: Fix indentation.
	* record-full.c: Fix indentation.
	* record.c: Fix indentation.
	* reggroups.c: Fix indentation.
	* regset.h: Fix indentation.
	* remote-fileio.c: Fix indentation.
	* remote.c: Fix indentation.
	* reverse.c: Fix indentation.
	* riscv-linux-tdep.c: Fix indentation.
	* riscv-ravenscar-thread.c: Fix indentation.
	* riscv-tdep.c: Fix indentation.
	* rl78-tdep.c: Fix indentation.
	* rs6000-aix-tdep.c: Fix indentation.
	* rs6000-lynx178-tdep.c: Fix indentation.
	* rs6000-nat.c: Fix indentation.
	* rs6000-tdep.c: Fix indentation.
	* rust-lang.c: Fix indentation.
	* rx-tdep.c: Fix indentation.
	* s12z-tdep.c: Fix indentation.
	* s390-linux-tdep.c: Fix indentation.
	* score-tdep.c: Fix indentation.
	* ser-base.c: Fix indentation.
	* ser-mingw.c: Fix indentation.
	* ser-uds.c: Fix indentation.
	* ser-unix.c: Fix indentation.
	* serial.c: Fix indentation.
	* sh-linux-tdep.c: Fix indentation.
	* sh-nbsd-tdep.c: Fix indentation.
	* sh-tdep.c: Fix indentation.
	* skip.c: Fix indentation.
	* sol-thread.c: Fix indentation.
	* solib-aix.c: Fix indentation.
	* solib-darwin.c: Fix indentation.
	* solib-frv.c: Fix indentation.
	* solib-svr4.c: Fix indentation.
	* solib.c: Fix indentation.
	* source.c: Fix indentation.
	* sparc-linux-tdep.c: Fix indentation.
	* sparc-nbsd-tdep.c: Fix indentation.
	* sparc-obsd-tdep.c: Fix indentation.
	* sparc-ravenscar-thread.c: Fix indentation.
	* sparc-tdep.c: Fix indentation.
	* sparc64-linux-tdep.c: Fix indentation.
	* sparc64-nbsd-tdep.c: Fix indentation.
	* sparc64-obsd-tdep.c: Fix indentation.
	* sparc64-tdep.c: Fix indentation.
	* stabsread.c: Fix indentation.
	* stack.c: Fix indentation.
	* stap-probe.c: Fix indentation.
	* stubs/ia64vms-stub.c: Fix indentation.
	* stubs/m32r-stub.c: Fix indentation.
	* stubs/m68k-stub.c: Fix indentation.
	* stubs/sh-stub.c: Fix indentation.
	* stubs/sparc-stub.c: Fix indentation.
	* symfile-mem.c: Fix indentation.
	* symfile.c: Fix indentation.
	* symfile.h: Fix indentation.
	* symmisc.c: Fix indentation.
	* symtab.c: Fix indentation.
	* symtab.h: Fix indentation.
	* target-float.c: Fix indentation.
	* target.c: Fix indentation.
	* target.h: Fix indentation.
	* tic6x-tdep.c: Fix indentation.
	* tilegx-linux-tdep.c: Fix indentation.
	* tilegx-tdep.c: Fix indentation.
	* top.c: Fix indentation.
	* tracefile-tfile.c: Fix indentation.
	* tracepoint.c: Fix indentation.
	* tui/tui-disasm.c: Fix indentation.
	* tui/tui-io.c: Fix indentation.
	* tui/tui-regs.c: Fix indentation.
	* tui/tui-stack.c: Fix indentation.
	* tui/tui-win.c: Fix indentation.
	* tui/tui-winsource.c: Fix indentation.
	* tui/tui.c: Fix indentation.
	* typeprint.c: Fix indentation.
	* ui-out.h: Fix indentation.
	* unittests/copy_bitwise-selftests.c: Fix indentation.
	* unittests/memory-map-selftests.c: Fix indentation.
	* utils.c: Fix indentation.
	* v850-tdep.c: Fix indentation.
	* valarith.c: Fix indentation.
	* valops.c: Fix indentation.
	* valprint.c: Fix indentation.
	* valprint.h: Fix indentation.
	* value.c: Fix indentation.
	* value.h: Fix indentation.
	* varobj.c: Fix indentation.
	* vax-tdep.c: Fix indentation.
	* windows-nat.c: Fix indentation.
	* windows-tdep.c: Fix indentation.
	* xcoffread.c: Fix indentation.
	* xml-syscall.c: Fix indentation.
	* xml-tdesc.c: Fix indentation.
	* xstormy16-tdep.c: Fix indentation.
	* xtensa-config.c: Fix indentation.
	* xtensa-linux-nat.c: Fix indentation.
	* xtensa-linux-tdep.c: Fix indentation.
	* xtensa-tdep.c: Fix indentation.

gdbserver/ChangeLog:

	* ax.cc: Fix indentation.
	* dll.cc: Fix indentation.
	* inferiors.h: Fix indentation.
	* linux-low.cc: Fix indentation.
	* linux-nios2-low.cc: Fix indentation.
	* linux-ppc-ipa.cc: Fix indentation.
	* linux-ppc-low.cc: Fix indentation.
	* linux-x86-low.cc: Fix indentation.
	* linux-xtensa-low.cc: Fix indentation.
	* regcache.cc: Fix indentation.
	* server.cc: Fix indentation.
	* tracepoint.cc: Fix indentation.

gdbsupport/ChangeLog:

	* common-exceptions.h: Fix indentation.
	* event-loop.cc: Fix indentation.
	* fileio.cc: Fix indentation.
	* filestuff.cc: Fix indentation.
	* gdb-dlfcn.cc: Fix indentation.
	* gdb_string_view.h: Fix indentation.
	* job-control.cc: Fix indentation.
	* signals.cc: Fix indentation.

Change-Id: I4bad7ae6be0fbe14168b8ebafb98ffe14964a695
This commit is contained in:
Simon Marchi 2020-11-02 10:26:14 -05:00
parent 1c2bec1918
commit dda83cd783
420 changed files with 14515 additions and 14099 deletions

View file

@ -111,8 +111,8 @@ struct symloc
#define SC_IS_TEXT(sc) ((sc) == scText \
|| (sc) == scRConst \
|| (sc) == scInit \
|| (sc) == scFini)
|| (sc) == scInit \
|| (sc) == scFini)
#define SC_IS_DATA(sc) ((sc) == scData \
|| (sc) == scSData \
|| (sc) == scRData \
@ -339,7 +339,7 @@ mdebug_build_psymtabs (minimal_symbol_reader &reader,
stabsread_new_init ();
free_header_files ();
init_header_files ();
/* Make sure all the FDR information is swapped in. */
if (info->fdr == NULL)
{
@ -512,7 +512,7 @@ static void
reg_value_complaint (int regnum, int num_regs, const char *sym)
{
complaint (_("bad register number %d (max %d) in symbol %s"),
regnum, num_regs - 1, sym);
regnum, num_regs - 1, sym);
}
/* Parse a single symbol. Mostly just make up a GDB symbol for it.
@ -596,10 +596,10 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
case scText:
case scRConst:
/* Do not relocate relative values.
The value of a stEnd symbol is the displacement from the
corresponding start symbol value.
The value of a stBlock symbol is the displacement from the
procedure address. */
The value of a stEnd symbol is the displacement from the
corresponding start symbol value.
The value of a stBlock symbol is the displacement from the
procedure address. */
if (sh->st != stEnd && sh->st != stBlock)
sh->value += section_offsets[SECT_OFF_TEXT (objfile)];
break;
@ -707,36 +707,36 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
case stProc: /* Procedure, usually goes into global block. */
case stStaticProc: /* Static procedure, goes into current block. */
/* For stProc symbol records, we need to check the storage class
as well, as only (stProc, scText) entries represent "real"
procedures - See the Compaq document titled "Object File /
Symbol Table Format Specification" for more information.
If the storage class is not scText, we discard the whole block
of symbol records for this stProc. */
as well, as only (stProc, scText) entries represent "real"
procedures - See the Compaq document titled "Object File /
Symbol Table Format Specification" for more information.
If the storage class is not scText, we discard the whole block
of symbol records for this stProc. */
if (sh->st == stProc && sh->sc != scText)
{
char *ext_tsym = ext_sh;
int keep_counting = 1;
SYMR tsym;
{
char *ext_tsym = ext_sh;
int keep_counting = 1;
SYMR tsym;
while (keep_counting)
{
ext_tsym += external_sym_size;
(*swap_sym_in) (cur_bfd, ext_tsym, &tsym);
count++;
switch (tsym.st)
{
case stParam:
break;
case stEnd:
keep_counting = 0;
break;
default:
complaint (_("unknown symbol type 0x%x"), sh->st);
break;
}
}
break;
}
while (keep_counting)
{
ext_tsym += external_sym_size;
(*swap_sym_in) (cur_bfd, ext_tsym, &tsym);
count++;
switch (tsym.st)
{
case stParam:
break;
case stEnd:
keep_counting = 0;
break;
default:
complaint (_("unknown symbol type 0x%x"), sh->st);
break;
}
}
break;
}
s = new_symbol (name);
SYMBOL_DOMAIN (s) = VAR_DOMAIN;
SYMBOL_ACLASS_INDEX (s) = LOC_BLOCK;
@ -750,14 +750,14 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
&& t->code () == TYPE_CODE_VOID)
{
/* I don't know why, but, at least under Alpha GNU/Linux,
when linking against a malloc without debugging
symbols, its read as a function returning void---this
is bad because it means we cannot call functions with
string arguments interactively; i.e., "call
printf("howdy\n")" would fail with the error message
"program has no memory available". To avoid this, we
patch up the type and make it void*
instead. (davidm@azstarnet.com). */
when linking against a malloc without debugging
symbols, its read as a function returning void---this
is bad because it means we cannot call functions with
string arguments interactively; i.e., "call
printf("howdy\n")" would fail with the error message
"program has no memory available". To avoid this, we
patch up the type and make it void*
instead. (davidm@azstarnet.com). */
t = make_pointer_type (t, NULL);
}
}
@ -784,7 +784,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
SYMBOL_TYPE (s) = lookup_function_type (t);
/* All functions in C++ have prototypes. For C we don't have enough
information in the debug info. */
information in the debug info. */
if (s->language () == language_cplus)
SYMBOL_TYPE (s)->set_is_prototyped (true);
@ -810,7 +810,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
break;
/* Beginning of code for structure, union, and enum definitions.
They all share a common set of local variables, defined here. */
They all share a common set of local variables, defined here. */
{
enum type_code type_code;
char *ext_tsym;
@ -858,28 +858,28 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
switch (tsym.st)
{
case stEnd:
/* C++ encodes class types as structures where there the
methods are encoded as stProc. The scope of stProc
symbols also ends with stEnd, thus creating a risk of
taking the wrong stEnd symbol record as the end of
the current struct, which would cause GDB to undercount
the real number of fields in this struct. To make sure
we really reached the right stEnd symbol record, we
check the associated name, and match it against the
struct name. Since method names are mangled while
the class name is not, there is no risk of having a
method whose name is identical to the class name
(in particular constructor method names are different
from the class name). There is therefore no risk that
this check stops the count on the StEnd of a method.
/* C++ encodes class types as structures where there the
methods are encoded as stProc. The scope of stProc
symbols also ends with stEnd, thus creating a risk of
taking the wrong stEnd symbol record as the end of
the current struct, which would cause GDB to undercount
the real number of fields in this struct. To make sure
we really reached the right stEnd symbol record, we
check the associated name, and match it against the
struct name. Since method names are mangled while
the class name is not, there is no risk of having a
method whose name is identical to the class name
(in particular constructor method names are different
from the class name). There is therefore no risk that
this check stops the count on the StEnd of a method.
Also, assume that we're really at the end when tsym.iss
is 0 (issNull). */
if (tsym.iss == issNull
if (tsym.iss == issNull
|| strcmp (debug_info->ss + cur_fdr->issBase + tsym.iss,
name) == 0)
goto end_of_fields;
break;
name) == 0)
goto end_of_fields;
break;
case stMember:
if (nfields == 0 && type_code == TYPE_CODE_UNDEF)
@ -923,9 +923,9 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
if (tsym.index != 0)
{
/* This is something like a struct within a
struct. Skip over the fields of the inner
struct. The -1 is because the for loop will
increment ext_tsym. */
struct. Skip over the fields of the inner
struct. The -1 is because the for loop will
increment ext_tsym. */
ext_tsym = ((char *) debug_info->external_sym
+ ((cur_fdr->isymBase + tsym.index - 1)
* external_sym_size));
@ -1105,12 +1105,12 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
case_stBlock_code:
found_ecoff_debugging_info = 1;
/* Beginnning of (code) block. Value of symbol
is the displacement from procedure start. */
is the displacement from procedure start. */
push_parse_stack ();
/* Do not start a new block if this is the outermost block of a
procedure. This allows the LOC_BLOCK symbol to point to the
block with the local variables, so funcname::var works. */
procedure. This allows the LOC_BLOCK symbol to point to the
block with the local variables, so funcname::var works. */
if (top_stack->blocktype == stProc
|| top_stack->blocktype == stStaticProc)
{
@ -1176,7 +1176,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
if (ftype->num_fields () <= 0)
{
/* No parameter type information is recorded with the function's
type. Set that from the type of the parameter symbols. */
type. Set that from the type of the parameter symbols. */
int nparams = top_stack->numargs;
int iparams;
struct symbol *sym;
@ -1246,14 +1246,14 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
case stIndirect: /* forward declaration on Irix5 */
/* Forward declarations from Irix5 cc are handled by cross_ref,
skip them. */
skip them. */
break;
case stTypedef: /* type definition */
found_ecoff_debugging_info = 1;
/* Typedefs for forward declarations and opaque structs from alpha cc
are handled by cross_ref, skip them. */
are handled by cross_ref, skip them. */
if (sh->iss == 0)
break;
@ -1268,23 +1268,23 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
t = pend->t;
/* Mips cc puts out a typedef with the name of the struct for forward
declarations. These should not go into the symbol table and
TYPE_NAME should not be set for them.
They can't be distinguished from an intentional typedef to
the same name however:
x.h:
struct x { int ix; int jx; };
struct xx;
x.c:
typedef struct x x;
struct xx {int ixx; int jxx; };
generates a cross referencing stTypedef for x and xx.
The user visible effect of this is that the type of a pointer
to struct foo sometimes is given as `foo *' instead of `struct foo *'.
The problem is fixed with alpha cc and Irix5 cc. */
declarations. These should not go into the symbol table and
TYPE_NAME should not be set for them.
They can't be distinguished from an intentional typedef to
the same name however:
x.h:
struct x { int ix; int jx; };
struct xx;
x.c:
typedef struct x x;
struct xx {int ixx; int jxx; };
generates a cross referencing stTypedef for x and xx.
The user visible effect of this is that the type of a pointer
to struct foo sometimes is given as `foo *' instead of `struct foo *'.
The problem is fixed with alpha cc and Irix5 cc. */
/* However if the typedef cross references to an opaque aggregate, it
is safe to omit it from the symbol table. */
is safe to omit it from the symbol table. */
if (has_opaque_xref (cur_fdr, sh))
break;
@ -1305,23 +1305,23 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
|| SYMBOL_TYPE (s)->code () == TYPE_CODE_FUNC)
{
/* If we are giving a name to a type such as "pointer to
foo" or "function returning foo", we better not set
the TYPE_NAME. If the program contains "typedef char
*caddr_t;", we don't want all variables of type char
* to print as caddr_t. This is not just a
consequence of GDB's type management; CC and GCC (at
least through version 2.4) both output variables of
either type char * or caddr_t with the type
refering to the stTypedef symbol for caddr_t. If a future
compiler cleans this up it GDB is not ready for it
yet, but if it becomes ready we somehow need to
disable this check (without breaking the PCC/GCC2.4
case).
foo" or "function returning foo", we better not set
the TYPE_NAME. If the program contains "typedef char
*caddr_t;", we don't want all variables of type char
* to print as caddr_t. This is not just a
consequence of GDB's type management; CC and GCC (at
least through version 2.4) both output variables of
either type char * or caddr_t with the type
refering to the stTypedef symbol for caddr_t. If a future
compiler cleans this up it GDB is not ready for it
yet, but if it becomes ready we somehow need to
disable this check (without breaking the PCC/GCC2.4
case).
Sigh.
Sigh.
Fortunately, this check seems not to be necessary
for anything except pointers or functions. */
Fortunately, this check seems not to be necessary
for anything except pointers or functions. */
}
else
SYMBOL_TYPE (s)->set_name (s->linkage_name ());
@ -1638,14 +1638,14 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
tp = init_type (mdebugread_objfile, type_code, 0, NULL);
/* DEC c89 produces cross references to qualified aggregate types,
dereference them. */
dereference them. */
while (tp->code () == TYPE_CODE_PTR
|| tp->code () == TYPE_CODE_ARRAY)
tp = TYPE_TARGET_TYPE (tp);
/* Make sure that TYPE_CODE(tp) has an expected type code.
Any type may be returned from cross_ref if file indirect entries
are corrupted. */
Any type may be returned from cross_ref if file indirect entries
are corrupted. */
if (tp->code () != TYPE_CODE_STRUCT
&& tp->code () != TYPE_CODE_UNION
&& tp->code () != TYPE_CODE_ENUM)
@ -1696,8 +1696,8 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
tp = init_type (mdebugread_objfile, type_code, 0, NULL);
/* Make sure that TYPE_CODE(tp) has an expected type code.
Any type may be returned from cross_ref if file indirect entries
are corrupted. */
Any type may be returned from cross_ref if file indirect entries
are corrupted. */
if (tp->code () != TYPE_CODE_RANGE)
{
unexpected_type_code_complaint (sym_name);
@ -1830,7 +1830,7 @@ upgrade_type (int fd, struct type **tpp, int tq, union aux_ext *ax, int bigend,
id, NULL, bigend, sym_name);
/* The bounds type should be an integer type, but might be anything
else due to corrupt aux entries. */
else due to corrupt aux entries. */
if (indx->code () != TYPE_CODE_INT)
{
complaint (_("illegal array index type for %s, assuming int"),
@ -1851,18 +1851,18 @@ upgrade_type (int fd, struct type **tpp, int tq, union aux_ext *ax, int bigend,
t = create_array_type (NULL, *tpp, range);
/* We used to fill in the supplied array element bitsize
here if the TYPE_LENGTH of the target type was zero.
This happens for a `pointer to an array of anonymous structs',
but in this case the array element bitsize is also zero,
so nothing is gained.
And we used to check the TYPE_LENGTH of the target type against
the supplied array element bitsize.
gcc causes a mismatch for `pointer to array of object',
since the sdb directives it uses do not have a way of
specifying the bitsize, but it does no harm (the
TYPE_LENGTH should be correct) and we should be able to
ignore the erroneous bitsize from the auxiliary entry safely.
dbx seems to ignore it too. */
here if the TYPE_LENGTH of the target type was zero.
This happens for a `pointer to an array of anonymous structs',
but in this case the array element bitsize is also zero,
so nothing is gained.
And we used to check the TYPE_LENGTH of the target type against
the supplied array element bitsize.
gcc causes a mismatch for `pointer to array of object',
since the sdb directives it uses do not have a way of
specifying the bitsize, but it does no harm (the
TYPE_LENGTH should be correct) and we should be able to
ignore the erroneous bitsize from the auxiliary entry safely.
dbx seems to ignore it too. */
/* TYPE_TARGET_STUB now takes care of the zero TYPE_LENGTH problem. */
if (TYPE_LENGTH (*tpp) == 0)
@ -1946,12 +1946,12 @@ parse_procedure (PDR *pr, struct compunit_symtab *search_symtab,
{
#if 0
/* This loses both in the case mentioned (want a static, find a global),
but also if we are looking up a non-mangled name which happens to
match the name of a mangled function. */
but also if we are looking up a non-mangled name which happens to
match the name of a mangled function. */
/* We have to save the cur_fdr across the call to lookup_symbol.
If the pdr is for a static function and if a global function with
the same name exists, lookup_symbol will eventually read in the symtab
for the global function and clobber cur_fdr. */
If the pdr is for a static function and if a global function with
the same name exists, lookup_symbol will eventually read in the symtab
for the global function and clobber cur_fdr. */
FDR *save_cur_fdr = cur_fdr;
s = lookup_symbol (sh_name, NULL, VAR_DOMAIN, 0);
@ -1993,7 +1993,7 @@ parse_procedure (PDR *pr, struct compunit_symtab *search_symtab,
BLOCK_FUNCTION (b) = s;
BLOCK_START (b) = pr->adr;
/* BOUND used to be the end of procedure's text, but the
argument is no longer passed in. */
argument is no longer passed in. */
BLOCK_END (b) = bound;
BLOCK_SUPERBLOCK (b) = top_stack->cur_block;
add_block (b, top_stack->cur_st);
@ -2010,14 +2010,14 @@ parse_procedure (PDR *pr, struct compunit_symtab *search_symtab,
e->pdr = *pr;
/* GDB expects the absolute function start address for the
procedure descriptor in e->pdr.adr.
As the address in the procedure descriptor is usually relative,
we would have to relocate e->pdr.adr with cur_fdr->adr.
Unfortunately cur_fdr->adr and e->pdr.adr are both absolute
in shared libraries on some systems, and on other systems
e->pdr.adr is sometimes offset by a bogus value.
To work around these problems, we replace e->pdr.adr with
the start address of the function. */
procedure descriptor in e->pdr.adr.
As the address in the procedure descriptor is usually relative,
we would have to relocate e->pdr.adr with cur_fdr->adr.
Unfortunately cur_fdr->adr and e->pdr.adr are both absolute
in shared libraries on some systems, and on other systems
e->pdr.adr is sometimes offset by a bogus value.
To work around these problems, we replace e->pdr.adr with
the start address of the function. */
e->pdr.adr = BLOCK_START (b);
}
@ -2107,24 +2107,24 @@ parse_external (EXTR *es, int bigend, const section_offsets &section_offsets,
case stProc:
case stStaticProc:
/* There is no need to parse the external procedure symbols.
If they are from objects compiled without -g, their index will
be indexNil, and the symbol definition from the minimal symbol
is preferrable (yielding a function returning int instead of int).
If the index points to a local procedure symbol, the local
symbol already provides the correct type.
Note that the index of the external procedure symbol points
to the local procedure symbol in the local symbol table, and
_not_ to the auxiliary symbol info. */
If they are from objects compiled without -g, their index will
be indexNil, and the symbol definition from the minimal symbol
is preferrable (yielding a function returning int instead of int).
If the index points to a local procedure symbol, the local
symbol already provides the correct type.
Note that the index of the external procedure symbol points
to the local procedure symbol in the local symbol table, and
_not_ to the auxiliary symbol info. */
break;
case stGlobal:
case stLabel:
/* Global common symbols are resolved by the runtime loader,
ignore them. */
ignore them. */
if (SC_IS_COMMON (es->asym.sc))
break;
/* Note that the case of a symbol with indexNil must be handled
anyways by parse_symbol(). */
anyways by parse_symbol(). */
parse_symbol (&es->asym, ax, NULL,
bigend, section_offsets, objfile);
break;
@ -2164,7 +2164,7 @@ parse_lines (FDR *fh, PDR *pr, struct linetable *lt, int maxlines,
continue;
/* Determine start and end address of compressed line bytes for
this procedure. */
this procedure. */
base = debug_info->line + fh->cbLineOffset;
if (j != (fh->cpd - 1))
halt = base + pr[1].cbLineOffset;
@ -2218,59 +2218,59 @@ function_outside_compilation_unit_complaint (const char *arg1)
static void
record_minimal_symbol (minimal_symbol_reader &reader,
const char *name, const CORE_ADDR address,
enum minimal_symbol_type ms_type, int storage_class,
struct objfile *objfile)
enum minimal_symbol_type ms_type, int storage_class,
struct objfile *objfile)
{
int section;
switch (storage_class)
{
case scText:
section = SECT_OFF_TEXT (objfile);
break;
section = SECT_OFF_TEXT (objfile);
break;
case scData:
section = SECT_OFF_DATA (objfile);
break;
section = SECT_OFF_DATA (objfile);
break;
case scBss:
section = SECT_OFF_BSS (objfile);
break;
section = SECT_OFF_BSS (objfile);
break;
case scSData:
section = get_section_index (objfile, ".sdata");
break;
section = get_section_index (objfile, ".sdata");
break;
case scSBss:
section = get_section_index (objfile, ".sbss");
break;
section = get_section_index (objfile, ".sbss");
break;
case scRData:
section = get_section_index (objfile, ".rdata");
break;
section = get_section_index (objfile, ".rdata");
break;
case scInit:
section = get_section_index (objfile, ".init");
break;
section = get_section_index (objfile, ".init");
break;
case scXData:
section = get_section_index (objfile, ".xdata");
break;
section = get_section_index (objfile, ".xdata");
break;
case scPData:
section = get_section_index (objfile, ".pdata");
break;
section = get_section_index (objfile, ".pdata");
break;
case scFini:
section = get_section_index (objfile, ".fini");
break;
section = get_section_index (objfile, ".fini");
break;
case scRConst:
section = get_section_index (objfile, ".rconst");
break;
section = get_section_index (objfile, ".rconst");
break;
#ifdef scTlsData
case scTlsData:
section = get_section_index (objfile, ".tlsdata");
break;
section = get_section_index (objfile, ".tlsdata");
break;
#endif
#ifdef scTlsBss
case scTlsBss:
section = get_section_index (objfile, ".tlsbss");
break;
section = get_section_index (objfile, ".tlsbss");
break;
#endif
default:
/* This kind of symbol is not associated to a section. */
section = -1;
/* This kind of symbol is not associated to a section. */
section = -1;
}
reader.record_with_info (name, address, ms_type, section);
@ -2445,7 +2445,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
CORE_ADDR svalue = ext_in->asym.value;
/* The Irix 5 native tools seem to sometimes generate bogus
external symbols. */
external symbols. */
if (ext_in->ifd < -1 || ext_in->ifd >= hdr->ifdMax)
{
complaint (_("bad ifd for external symbol: %d (max %ld)"),
@ -2485,7 +2485,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
if (SC_IS_COMMON (ext_in->asym.sc))
{
/* The value of a common symbol is its size, not its address.
Ignore it. */
Ignore it. */
continue;
}
else if (SC_IS_DATA (ext_in->asym.sc))
@ -2496,65 +2496,65 @@ parse_partial_symbols (minimal_symbol_reader &reader,
{
ms_type = mst_bss;
}
else if (SC_IS_SBSS (ext_in->asym.sc))
{
ms_type = mst_bss;
}
else if (SC_IS_SBSS (ext_in->asym.sc))
{
ms_type = mst_bss;
}
else
ms_type = mst_abs;
break;
case stLabel:
/* Label */
/* On certain platforms, some extra label symbols can be
generated by the linker. One possible usage for this kind
of symbols is to represent the address of the begining of a
given section. For instance, on Tru64 5.1, the address of
the _ftext label is the start address of the .text section.
/* On certain platforms, some extra label symbols can be
generated by the linker. One possible usage for this kind
of symbols is to represent the address of the begining of a
given section. For instance, on Tru64 5.1, the address of
the _ftext label is the start address of the .text section.
The storage class of these symbols is usually directly
related to the section to which the symbol refers. For
instance, on Tru64 5.1, the storage class for the _fdata
label is scData, refering to the .data section.
The storage class of these symbols is usually directly
related to the section to which the symbol refers. For
instance, on Tru64 5.1, the storage class for the _fdata
label is scData, refering to the .data section.
It is actually possible that the section associated to the
storage class of the label does not exist. On True64 5.1
for instance, the libm.so shared library does not contain
any .data section, although it contains a _fpdata label
which storage class is scData... Since these symbols are
usually useless for the debugger user anyway, we just
discard these symbols. */
It is actually possible that the section associated to the
storage class of the label does not exist. On True64 5.1
for instance, the libm.so shared library does not contain
any .data section, although it contains a _fpdata label
which storage class is scData... Since these symbols are
usually useless for the debugger user anyway, we just
discard these symbols. */
if (SC_IS_TEXT (ext_in->asym.sc))
{
if (objfile->sect_index_text == -1)
continue;
if (objfile->sect_index_text == -1)
continue;
ms_type = mst_file_text;
}
else if (SC_IS_DATA (ext_in->asym.sc))
{
if (objfile->sect_index_data == -1)
continue;
if (objfile->sect_index_data == -1)
continue;
ms_type = mst_file_data;
}
else if (SC_IS_BSS (ext_in->asym.sc))
{
if (objfile->sect_index_bss == -1)
continue;
if (objfile->sect_index_bss == -1)
continue;
ms_type = mst_file_bss;
}
else if (SC_IS_SBSS (ext_in->asym.sc))
{
const int sbss_sect_index = get_section_index (objfile, ".sbss");
else if (SC_IS_SBSS (ext_in->asym.sc))
{
const int sbss_sect_index = get_section_index (objfile, ".sbss");
if (sbss_sect_index == -1)
continue;
if (sbss_sect_index == -1)
continue;
ms_type = mst_file_bss;
}
ms_type = mst_file_bss;
}
else
ms_type = mst_abs;
break;
@ -2573,8 +2573,8 @@ parse_partial_symbols (minimal_symbol_reader &reader,
unknown_ext_complaint (name);
}
if (!ECOFF_IN_ELF (cur_bfd))
record_minimal_symbol (reader, name, svalue, ms_type, ext_in->asym.sc,
objfile);
record_minimal_symbol (reader, name, svalue, ms_type, ext_in->asym.sc,
objfile);
}
/* Pass 3 over files, over local syms: fill in static symbols. */
@ -2593,7 +2593,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
}
/* Determine the start address for this object file from the
file header and relocate it, except for Irix 5.2 zero fh->adr. */
file header and relocate it, except for Irix 5.2 zero fh->adr. */
if (fh->cpd)
textlow = fh->adr;
else
@ -2614,16 +2614,16 @@ parse_partial_symbols (minimal_symbol_reader &reader,
pst->legacy_expand_psymtab = mdebug_expand_psymtab;
/* Set up language for the pst.
The language from the FDR is used if it is unambigious (e.g. cfront
with native cc and g++ will set the language to C).
Otherwise we have to deduce the language from the filename.
Native ecoff has every header file in a separate FDR, so
deduce_language_from_filename will return language_unknown for
a header file, which is not what we want.
But the FDRs for the header files are after the FDR for the source
file, so we can assign the language of the source file to the
following header files. Then we save the language in the private
pst data so that we can reuse it when building symtabs. */
The language from the FDR is used if it is unambigious (e.g. cfront
with native cc and g++ will set the language to C).
Otherwise we have to deduce the language from the filename.
Native ecoff has every header file in a separate FDR, so
deduce_language_from_filename will return language_unknown for
a header file, which is not what we want.
But the FDRs for the header files are after the FDR for the source
file, so we can assign the language of the source file to the
following header files. Then we save the language in the private
pst data so that we can reuse it when building symtabs. */
prev_language = psymtab_language;
switch (fh->lang)
@ -2642,11 +2642,11 @@ parse_partial_symbols (minimal_symbol_reader &reader,
pst->set_text_high (pst->raw_text_low ());
/* For stabs-in-ecoff files, the second symbol must be @stab.
This symbol is emitted by mips-tfile to signal that the
current object file uses encapsulated stabs instead of mips
ecoff for local symbols. (It is the second symbol because
the first symbol is the stFile used to signal the start of a
file). */
This symbol is emitted by mips-tfile to signal that the
current object file uses encapsulated stabs instead of mips
ecoff for local symbols. (It is the second symbol because
the first symbol is the stFile used to signal the start of a
file). */
processing_gcc_compilation = 0;
if (fh->csym >= 2)
{
@ -2681,9 +2681,9 @@ parse_partial_symbols (minimal_symbol_reader &reader,
if (sh.st == stStaticProc)
{
namestring = debug_info->ss + fh->issBase + sh.iss;
record_minimal_symbol (reader, namestring, sh.value,
mst_file_text, sh.sc,
objfile);
record_minimal_symbol (reader, namestring, sh.value,
mst_file_text, sh.sc,
objfile);
}
procaddr = sh.value;
@ -2725,18 +2725,18 @@ parse_partial_symbols (minimal_symbol_reader &reader,
case scPData:
case scXData:
namestring = debug_info->ss + fh->issBase + sh.iss;
record_minimal_symbol (reader, namestring, sh.value,
mst_file_data, sh.sc,
objfile);
record_minimal_symbol (reader, namestring, sh.value,
mst_file_data, sh.sc,
objfile);
break;
default:
/* FIXME! Shouldn't this use cases for bss,
then have the default be abs? */
namestring = debug_info->ss + fh->issBase + sh.iss;
record_minimal_symbol (reader, namestring, sh.value,
mst_file_bss, sh.sc,
objfile);
record_minimal_symbol (reader, namestring, sh.value,
mst_file_bss, sh.sc,
objfile);
break;
}
}
@ -3399,7 +3399,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
if (sh.index >= hdr->iauxMax)
{
/* Should not happen, but does when cross-compiling
with the MIPS compiler. FIXME -- pull later. */
with the MIPS compiler. FIXME -- pull later. */
index_complaint (sym_name);
new_sdx = cur_sdx + 1; /* Don't skip at all. */
}
@ -3417,15 +3417,15 @@ parse_partial_symbols (minimal_symbol_reader &reader,
new_sdx = cur_sdx + 1; /* Don't skip backward. */
}
/* For stProc symbol records, we need to check the
storage class as well, as only (stProc, scText)
entries represent "real" procedures - See the
Compaq document titled "Object File / Symbol Table
Format Specification" for more information. If the
storage class is not scText, we discard the whole
block of symbol records for this stProc. */
if (sh.st == stProc && sh.sc != scText)
goto skip;
/* For stProc symbol records, we need to check the
storage class as well, as only (stProc, scText)
entries represent "real" procedures - See the
Compaq document titled "Object File / Symbol Table
Format Specification" for more information. If the
storage class is not scText, we discard the whole
block of symbol records for this stProc. */
if (sh.st == stProc && sh.sc != scText)
goto skip;
/* Usually there is a local and a global stProc symbol
for a function. This means that the function name
@ -3640,7 +3640,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
}
/* Link pst to FDR. dbx_end_psymtab returns NULL if the psymtab was
empty and put on the free list. */
empty and put on the free list. */
fdr_to_pst[f_idx].pst
= dbx_end_psymtab (objfile, save_pst,
psymtab_include_list, includes_used,
@ -3651,16 +3651,16 @@ parse_partial_symbols (minimal_symbol_reader &reader,
dependencies_used = 0;
/* The objfile has its functions reordered if this partial symbol
table overlaps any other partial symbol table.
We cannot assume a reordered objfile if a partial symbol table
is contained within another partial symbol table, as partial symbol
tables for include files with executable code are contained
within the partial symbol table for the including source file,
and we do not want to flag the objfile reordered for these cases.
table overlaps any other partial symbol table.
We cannot assume a reordered objfile if a partial symbol table
is contained within another partial symbol table, as partial symbol
tables for include files with executable code are contained
within the partial symbol table for the including source file,
and we do not want to flag the objfile reordered for these cases.
This strategy works well for Irix-5.2 shared libraries, but we
might have to use a more elaborate (and slower) algorithm for
other cases. */
This strategy works well for Irix-5.2 shared libraries, but we
might have to use a more elaborate (and slower) algorithm for
other cases. */
save_pst = fdr_to_pst[f_idx].pst;
if (save_pst != NULL
&& save_pst->text_low_valid
@ -3694,7 +3694,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
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. */
source files or a reverse .h -> .c dependency for header files. */
pst->number_of_dependencies = 0;
pst->dependencies
= objfile->partial_symtabs->allocate_dependencies (fh->crfd - 1);
@ -3754,12 +3754,12 @@ handle_psymbol_enumerators (struct objfile *objfile, partial_symtab *pst,
case stBlock:
/* It is an enumerated type if the next symbol entry is a stMember
and its auxiliary index is indexNil or its auxiliary entry
is a plain btNil or btVoid.
Alpha cc -migrate enums are recognized by a zero index and
a zero symbol value.
DU 4.0 cc enums are recognized by a member type of btEnum without
qualifiers and a zero symbol value. */
and its auxiliary index is indexNil or its auxiliary entry
is a plain btNil or btVoid.
Alpha cc -migrate enums are recognized by a zero index and
a zero symbol value.
DU 4.0 cc enums are recognized by a member type of btEnum without
qualifiers and a zero symbol value. */
(*swap_sym_in) (cur_bfd, ext_sym, &sh);
if (sh.st != stMember)
return;
@ -3792,7 +3792,7 @@ handle_psymbol_enumerators (struct objfile *objfile, partial_symtab *pst,
name = debug_info->ss + cur_fdr->issBase + sh.iss;
/* Note that the value doesn't matter for enum constants
in psymtabs, just in symtabs. */
in psymtabs, just in symtabs. */
pst->add_psymbol (name, true,
VAR_DOMAIN, LOC_CONST, -1,
psymbol_placement::STATIC, 0,
@ -3924,15 +3924,15 @@ mdebug_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile)
enum language language = PST_PRIVATE (pst)->pst_language;
/* We should never get non N_STAB symbols here, but they
should be harmless, so keep process_one_symbol from
complaining about them. */
should be harmless, so keep process_one_symbol from
complaining about them. */
if (type_code & N_STAB)
{
/* If we found a trailing N_SO with no name, process
it here instead of in process_one_symbol, so we
can keep a handle to its symtab. The symtab
would otherwise be ended twice, once in
process_one_symbol, and once after this loop. */
it here instead of in process_one_symbol, so we
can keep a handle to its symtab. The symtab
would otherwise be ended twice, once in
process_one_symbol, and once after this loop. */
if (type_code == N_SO
&& get_last_source_file ()
&& previous_stab_code != (unsigned char) N_SO
@ -4005,10 +4005,10 @@ mdebug_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile)
}
/* There used to be a call to sort_blocks here, but this should not
be necessary for stabs symtabs. And as sort_blocks modifies the
start address of the GLOBAL_BLOCK to the FIRST_LOCAL_BLOCK,
it did the wrong thing if the first procedure in a file was
generated via asm statements. */
be necessary for stabs symtabs. And as sort_blocks modifies the
start address of the GLOBAL_BLOCK to the FIRST_LOCAL_BLOCK,
it did the wrong thing if the first procedure in a file was
generated via asm statements. */
/* Fill in procedure info next. */
if (fh->cpd > 0)
@ -4031,7 +4031,7 @@ mdebug_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile)
(*swap_pdr_in) (cur_bfd, pdr_ptr, pdr_in);
/* Determine lowest PDR address, the PDRs are not always
sorted. */
sorted. */
if (pdr_in == pr_block.data ())
lowest_pdr_addr = pdr_in->adr;
else if (pdr_in->adr < lowest_pdr_addr)
@ -4160,8 +4160,8 @@ mdebug_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile)
xfree (lines);
/* .. and our share of externals.
XXX use the global list to speed up things here. How?
FIXME, Maybe quit once we have found the right number of ext's? */
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 = COMPUNIT_FILETABS (cust);
top_stack->cur_block
= BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (top_stack->cur_st),
@ -4174,8 +4174,8 @@ mdebug_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile)
section_offsets, objfile);
/* If there are undefined symbols, tell the user.
The alpha has an undefined symbol for every symbol that is
from a shared library, so tell the user only if verbose is on. */
The alpha has an undefined symbol for every symbol that is
from a shared library, so tell the user only if verbose is on. */
if (info_verbose && n_undef_symbols)
{
printf_filtered (_("File %s contains %d unresolved references:"),
@ -4374,12 +4374,12 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp,
case btTypedef:
/* Follow a forward typedef. This might recursively
call cross_ref till we get a non typedef'ed type.
FIXME: This is not correct behaviour, but gdb currently
cannot handle typedefs without type copying. Type
copying is impossible as we might have mutual forward
references between two files and the copied type would not
get filled in when we later parse its definition. */
call cross_ref till we get a non typedef'ed type.
FIXME: This is not correct behaviour, but gdb currently
cannot handle typedefs without type copying. Type
copying is impossible as we might have mutual forward
references between two files and the copied type would not
get filled in when we later parse its definition. */
*tpp = parse_type (xref_fd,
debug_info->external_aux + fh->iauxBase,
sh.index,