match_bitstring_literal): Guard tolower calls with isupper,
tolower on old BSD systems blindly subtracts a constant.
* dbxread.c (read_ofile_symtab): Check for __gnu_compiled_* as
well when determining the producer of the object file.
* mdebugread.c (has_opaque_xref): New function to check for
cross reference to an opaque aggregate.
* mdebugread.c (parse_symbol, parse_partial_symbols): Do not
enter typedefs to opaque aggregates into the symbol tables.
* mdebugread.c (parse_external): Remove skip_procedures argument,
it has always been 1. Remove code that handled stProc symbols,
it was never executed and was wrong, as the index of a
stProc symbol points to the local symbol table and not to the
auxiliary symbol info. Update caller.
* mdebugread.c (parse_partial_symbols): Do not enter external
stProc symbols into the partial symbol table, they are already
entered into the minimal symbol table.
* config/i386/tm-symmetry.h: Clean up, it is now only used for Dynix.
Remove all conditionals and definitions for ptx.
I386_REGNO_TO_SYMMETRY moved to here from symm-tdep.c.
Fix addresses of floating point registers in REGISTER_U_ADDR.
STORE_STRUCT_RETURN now handles cc and gcc conventions.
FRAME_CHAIN, FRAMELESS_FUNCTION_INVOCATION, FRAME_SAVED_PC,
IN_SIGTRAMP, SIGCONTEXT_PC_OFFSET defined to make backtracing through
signal trampoline code work.
* config/i386/xm-symmetry.h: Clean up, it is now only used for Dynix.
Remove all conditionals and definitions for ptx.
Remove KDB definitions.
* symm-nat.c (store_inferior_registers): Fetch registers before
storing them to obtain valid floating point control registers.
Store fpu registers.
* symm-nat.c (print_1167_control_word): Dynix 3.1.1 defines
FPA_PCR_CC_C0 and FPA_PCR_CC_C1, avoid duplicate case value.
* symm-nat.c (fetch_inferior_registers, child_xfer_memory):
Fix typos.
* symm-nat.c (child_resume): Update type of `signal' parameter.
* symm-tdep.c (I386_REGNO_TO_SYMMETRY): Moved to tm-symmetry.h.
(record_minimal_symbol, read_dbx_symtab): Set it.
(read_dbx_symtab): Use lowest_text_address + text_size instead of
end_of_text_address.
* config/gould/tm-pn.h: Add comment regarding END_OF_TEXT_DEFAULT.
from here . . .
* symtab.h: . . . to here.
* dbxread.c (record_minimal_symbol): Move check for gcc{,2}_compiled.
and __gnu_compiled* from here . . .
* minsyms.c (prim_record_minimal_symbol_and_info): . . . to here.
* minsyms.c (prim_record_minimal_symbol): Call
prim_record_minimal_symbol_and_info rather than duplicating code.
stabs-in-elf.
(pastab_build_psymtabs): Likewise.
* hppa-tdep.c: Change all comments to reference %r3 or frame pointer
rather than %r4.
(frame_chain, skip_prologue, dig_rp_from_stack): Handle %r3 as the
frame pointer.
* config/pa/tm-hppa.h (FP_REGNUM): Define as %r3.
(FIND_FRAME_SAVED_REGS): Handle %r3 as frame pointer.
(CALL_DUMMY): Likewise.
Change all references to stdout/stderr to gdb_stdout/gdb_stderr.
Replace all calls to stdio output functions with calls to
corresponding _unfiltered functions (`fprintf_unfiltered')
Replaced calls to fopen for output to gdb_fopen.
Added sufficient goo to utils.c and defs.h to make the above work.
The net effect is that stdio output functions are only directly used
in utils.c. Elsewhere, the _unfiltered and _filtered functions and
GDB_FILE type are used.
In the near future, GDB_FILE will stop being equivalant to FILE.
The semantics of some commands has changed in a very subtle way:
called in the right context, they may cause new occurences of
prompt_for_continue() behavior. The testsuite doesn't notice anything
like this, though.
Please respect this change by not reintroducing stdio output
dependencies in the main body of gdb code. All output from commands
should go to a GDB_FILE.
Target-specific code can still use stdio directly to communicate with
targets.
right operations ourself, rather than calling symbol_file_command.
If we re-read something, call clear_symtab_users not just
breakpoint_re_set.
* objfiles.h, objfiles.c (build_objfile_section_table): No longer
static.
* symfile.c (clear_symtab_users): Call clear_pc_function_cache.
* coffread.c, dbxread.c, elfread.c, mipsread.c, nlmread.c, paread.c
(*_symfile_offsets): Set objfile->num_sections.
* remote.c (remote_wait), symfile.c (syms_from_objfile):
Don't muck with objfile->num_sections now that all the symbol
readers set it.
* elfread.c: Clean up obsolete comment about handling only DWARF.
* paread.c: Remove comment about how we should use an "ordinary"
file format with an hppa suffix. There is nothing ordinary about SOM.
* symmisc.c (print_symbol): Use %02x not %2x for LOC_CONST_BYTES.
Clean up problems with targets and hosts that have 64 bit longs
and pointers and 32 bit ints.
* breakpoint.c, buildsym.c, c-lang.c, c-valprint.c, ch-lang.c,
ch-valprint.c, core.c, cp-valprint.c, dbxread.c, exec.c,
expprint.c, gdbtypes.c, infcmd.c, language.c, language.h,
m2-lang.c, maint.c, mips-tdep.c, mipsread.c, partial-stab.h,
printcmd.c, remote-vx.c, solib.c, source.c, stack.c, symfile.c,
symmisc.c, symtab.c, valops.c, valprint.c, xcoffexec.c:
Change all printf formats from %x to %lx if outputting an address.
Change la_*_format to use long format.
local_hex_string, local_hex_string_custom now take an unsigned long
argument, change all callers.
* coffread.c (read_coff_symtab): Remove superfluous cast for
complaint output.
* dbxread.c (end_psymtab): Cast MSYMBOL_INFO to long, not int.
* findvar.c, value.h (write_register): Change register value to long.
* gdbtypes.h (struct type): Change `bitsize' to long as
TYPE_FIELD_STATIC_PHYSNAME uses this field as a pointer.
* inferior.h (struct inferior_status): Change type of stop_pc to
CORE_ADDR.
* language.h (local_octal_string, local_octal_string_custom):
Remove prototype, the functions are neither defined nor used.
* mipsread.c (parse_symbol): Use temporary variable for bitsize as
f->bitsize is a long now.
* objfiles.c (add_to_objfile_sections, build_objfile_section_table):
Use unsigned long casts instead of int for abusing sections_end
pointer as integer.
* stack.c (parse_frame_specification): Change type of `args' to
CORE_ADDR for SETUP_ARBITRARY_FRAME.
* printcmd.c (make_vasize): Allow redefinition via MAKEVA_SIZE.
* mipsread.c (parse_type): Alpha cc now supports the t->continued
bit, update algorithm to match the way the compiler uses it.
consider there may be a file compiled without -g screwing things up
(e.g. we are looking for the minimal symbol for "main" and we get the
one for "start" instead).
This is the change I mean:
* minsyms.c, symtab.h (lookup_next_minimal_symbol): New function.
* dbxread.c (process_one_symbol): Use it.
was empty and thrown away.
* mipsread.c (parse_partial_symbols): Do not add empty psymtabs to
dependency list, skip self dependencies.
* mipsread.c (parse_fdr): Removed, obsolete.
* mipsread.c (parse_lines): Check for cbLine being zero, not
cbLineOffset.
* mipsread.c (struct symloc): Add pst_language.
* mipsread.c (parse_partial_symbols): Set up proper language for header
files, save it in pst_language for psymtab_to_symtab_1.
* mipsread.c (psymtab_to_symtab_1): Use pst_language.
we have breakpoints or watchpoints as we might have to ignore internal
breakpoints.
Fix gdb core dumps after `file newfile' commands.
* symtab.h, symfile.c (clear_symtab_users): New routine which
unconditionally clears symtab users. clear_symtab_users_once
commented out as it was a noop anyway.
* objfiles.c (free_objfile): Don't call clear_symtab_users_once.
* objfiles.c (free_all_objfiles), symfile.c (new_symfile_objfile),
xcoffexec.c (exec_close): Call clear_symtab_users if necessary.
* symfile.c (syms_from_objfile): Install cleanups for errors during
symbol reading.
* coffread.c, dbxread.c, mipsread.c, xcoffread.c (*_symfile_read):
Lint cleanup code, call do_cleanups explicitly.
* symfile.c (symbol_file_add): Call new_symfile_objfile and
reinit_frame_cache _after_ the new symbols are read in.
command. Now we use unwind info by default if we can find it.
* config/sparc: Move VARIABLES_INSIDE_BLOCK and SUN_FIXED_LBRAC_BUG
to tm-sparc.h so they are shared between Solaris and SunOS4.
* dbxread.c (process_one_symbol): Deal with SunOS4 acc N_STSYM and
N_GSYM functions.
* configure.in: Use them.
* alldeps.mak: List them.
* coffread.c (decode_base_type): Deal with anonymous enum type.
* i387-tdep.c (print_387_status_word): Add comment re "top".
* i386-tdep.c [I386_AIX_TARGET] (i386_extract_return_value): New func.
* dbxread.c: Use SEEK_SET and SEEK_CUR, not L_*. Define them if and
only if not defined by a header file.
* mipsread.c: Don't define L_SET or L_INCR.
defined, don't worry about Sun's silly LBRAC bug.
* dbxread.c (process_one_symbol): If there's a symbol before an
N_SO, don't error().
(case N_BCOMM): complain () not error ().
a non-gcc N_OPT symbol is found. Make SUN_FIXED_LBRAC_BUG a macro
which returns 0 or 1 to say whether to do it.
* config/sparc/sun4{sol2,os4}.h
(SUN_FIXED_LBRAC_BUG,VARIABLES_INSIDE_BLOCK): Use n_opt_found so
the right thing happens for both acc and SunOS4 /bin/cc.
BLOCK_ADDRESS_FUNCTION_RELATIVE a macro, make it a variable which
is true if we are doing stabs-in-elf, false otherwise.
config/sparc/tm-sun4sol2.h: Don't define it.
set demangling style automatically.
* defs.h (CPLUS_MARKER): Clarify comment that this is only for
GNU C++, not C++ in general.
* symtab.h (general_symbol_info): Simplify by eliminating one
structure level for the language dependent info.
size field a define (DBX_STRINGTAB_SIZE_SIZE). Ensure that the
offset to the string table is nonzero and handle the nonexistant
string table case, should it occur. Ensure that the string table
size read from the file is reasonable, with a minimum lower bound
of DBX_STRINGTAB_SIZE_SIZE instead of zero.
reported by mycroft@gnu.ai.mit.edu.
(Ultrix 2.2 support from Michael Rendell <michael@mercury.cs.mun.ca>)
* configure.in (vax-*-ultrix2*): New triplet.
* config/vaxult2.mh: New file.
* xm-vaxult2.h: New file.
Call new bfd_get_size() and verify that string table is no larger
than the file that is supposed to contain it.
* symfile.c (syms_from_objfile): Only complain about configured
NAMES_HAVE_UNDERSCORE differences between gdb and bfd if the
current target is the default BFD target.
* defs.h (demangle_and_match): Remove prototype.
* dwarfread.c (STREQ, STREQN): Remove macros, replaced with STREQ
and STREQN defined in defs.h.
* dwarfread.c (set_cu_language): For completely unknown languages,
try to deduce the language from the filename. Retain behavior
that for known languages we don't know how to handle, we use
language_unknown.
* dwarfread.c (enum_type, symthesize_typedef): Initialize language
and demangled name fields in symbol.
* dwarfread.c, mipsread.c, partial-stab.h: For all usages of
ADD_PSYMBOL_TO_LIST, add language and objfile parameters.
* dwarfread.c (new_symbol): Attempt to demangle C++ symbol names
and cache the results in SYMBOL_DEMANGLED_NAME for the symbol.
* elfread.c (STREQ): Remove macro, use STREQ defined in defs.h.
Replace usages throughout.
* elfread.c (demangle.h): Include.
* elfread.c (record_minimal_symbol): Remove prototype and function.
* gdbtypes.h, symtab.h (B_SET, B_CLR, B_TST, B_TYPE, B_BYTES,
B_CLRALL): Moved from symtab.h to gdbtypes.h.
* infcmd.c (jump_command): Remove code to demangle name and add
it to a cleanup list. Now just use SYMBOL_DEMANGLED_NAME.
* minsyms.c (demangle.h): Include.
* minsyms.c (lookup_minimal_symbol): Indent comment to match code.
* minsyms.c (install_minimal_symbols): Attempt to demangle symbol
names as C++ names, and cache them in SYMBOL_DEMANGLED_NAME.
* mipsread.c (psymtab_language): Add static variable.
* stabsread.c (demangle.h): Include.
* stabsread.c (define_symbol): Attempt to demangle C++ symbol
names and cache them in the SYMBOL_DEMANGLED_NAME field.
* stack.c (return_command): Remove explicit demangling of name
and use of cleanups. Just use SYMBOL_DEMANGLED_NAME.
* symfile.c (demangle.h): Include.
* symfile.c (add_psymbol_to_list, add_psymbol_addr_to_list): Fix
to match macros in symfile.h and allow them to be compiled
if INLINE_ADD_PSYMBOL is not true.
* symfile.h (INLINE_ADD_PSYMBOL): Default to true if not set.
* symfile.h (ADD_PSYMBOL_*): Add language and objfile parameters.
Add code to demangle and cache C++ symbol names. Use macro form
if INLINE_ADD_PSYMBOL is true, otherwise use C function form.
* symmisc.c (add_psymbol_to_list, add_psymbol_addr_to_list):
Remove, also defined in symfile.c, which we already fixed.
* symtab.c (expensive_mangler): Remove prototype and function.
* symtab.c (find_methods): Remove physnames parameter and fix
prototype to match.
* symtab.c (completion_list_add_symbol): Name changed to
completion_list_add_name.
* symtab.c (COMPLETION_LIST_ADD_SYMBOL): New macro, adds both
the normal symbol name and the cached C++ demangled name.
* symtab.c (lookup_demangled_partial_symbol,
lookup_demangled_block_symbol): Remove prototypes and functions.
* symtab.c (lookup_symbol): Remove use of expensive_mangler,
use lookup_block_symbol instead of lookup_demangled_block_symbol.
Remove code to try demangling names and matching them.
* symtab.c (lookup_partial_symbol, lookup_block_symbol):
Fix to try matching the cached demangled name if no match is
found using the regular symbol name.
* symtab.c (find_methods): Remove unused physnames array.
* symtab.c (name_match, NAME_MATCH): Remove function and macro,
replaced with SYMBOL_MATCHES_REGEXP from symtab.h.
* symtab.c (completion_list_add_symbol): Rewrite to use cached
C++ demangled symbol names.
* symtab.h: Much reformatting of structures and such to add
whitespace to make them more readable, and make them more
consistent with other gdb structure definitions.
* symtab.h (general_symbol_info): New struct containing fields
common to all symbols.
* symtab.h (SYMBOL_LANGUAGE, SYMBOL_DEMANGLED_NAME,
SYMBOL_SOURCE_NAME, SYMBOL_LINKAGE_NAME, SYMBOL_MATCHES_NAME,
SYMBOL_MATCHES_REGEXP, MSYMBOL_INFO, MSYMBOL_TYPE): New macros.
* symtab. (struct minimal_symbol, struct partial_symbol, struct
symbol): Use general_symbol_info struct.
* utils.c (demangle_and_match): Remove, no longer used.
* valops.c (demangle.h): Include.
* xcoffexec.c (eq): Remove macro, replace usages with STREQ.
* blockframe.c, breakpoint.c, c-exp.y, c-valprint.c, dbxread.c,
infcmd.c, m2-exp.y, minsyms.c, objfiles.h, solib.c, stack.c,
symmisc.c, symtab.c, valops.c: Replace references to minimal
symbol fields with appropriate macros.
* breakpoint.c, buildsym.c, c-exp.y, c-typeprint.c, c-valprint.c,
coffread.c, command.c, convex-tdep.c, cp-valprint.c, dbxread.c,
demangle.c, elfread.c, energize.c, environ.c, exec.c,
gdbtypes.c, i960-tdep.c, infrun.c, infrun-hacked.c, language.c,
main.c, minsyms.c, mipsread.c, partial-stab.h, remote-es1800.c,
remote-nindy.c, remote-udi.c, rs6000-tdep.c, solib.c, source.c,
sparc-pinsn.c, stabsread.c, standalone.c, state.c, stuff.c,
symfile.c, symmisc.c, symtab.c, symtab.h, tm-sysv4.h,
tm-ultra3.h, values.c, xcoffexec.c, xcoffread.c: Replace strcmp
and strncmp usages with STREQ, STREQN, or STRCMP as appropriate.
* breakpoint.c, buildsym.c, c-typeprint.c, expprint.c, findvar.c,
mipsread.c, printcmd.c, source.c, stabsread.c, stack.c,
symmisc.c, tm-29k.h, valops.c, values.c: Replace SYMBOL_NAME
references with SYMBOL_SOURCE_NAME or SYMBOL_LINKAGE_NAME as
appropriate.
* buildsym.c (start_subfile, patch_subfile_names): Default the
source language to what can be deduced from the filename.
* buildsym.c (end_symtab): Update the source language in the
allocated symtab to match what we have been using.
* buildsym.h (struct subfile): Add a language field.
* c-typeprint.c (c_print_type): Remove code to do explicit
demangling.
* dbxread.c (psymtab_language): Add static variable.
* dbxread.c (start_psymtab): Initialize psymtab_language using
deduce_language_from_filename.
* complaints.c (complain): Made into a varargs function.
* complaints.h: New file, code moved from symfile.h.
* Makefile.in (SFILES_MAINDIR): Add complaints.c.
* Makefile.in (HFILES): Add complaints.h.
* Makefile.in (OBS): Add complaints.o.
* symfile.c (complaint_root, stop_whining, complaint_series,
complain, clear_complaints, add_show_from_set for stop_whining):
Moved to complaints.c.
* symfile.h (struct complaint, complaint_root decl, complain
prototype, clear_complaints prototype): Moved to complaints.h.
* buildsym.c, coffread.c, dbxread.c, dwarfread.c, elfread.c,
gdbtypes.c, mipsread.c, stbsread.c, symfile.c: Include
complaints.h. Remove casts from arguments to complain(),
which is now a varargs function, and remove unnecessary
placeholder zero args.
* defs.h (begin_line): Add prototype.
* defs.h (vprintf_filtered): Add prototype.
* dwarfread.c (varargs.h): Remove, no longer needed.
* dwarfread.c (dwarfwarn): Remove prototype and function.
* dwarfread.c (complaints): Define a bunch of complaints.
* dwarfread.c (SQUAWK): Remove macro defs, convert all
usages to standard complain() calls.
* utils.c (begin_line): New function that ensures that
whatever gets filter-printed next starts on its own line.
* utils.c (vprintf_filtered): New func, like vfprintf_filtered,
but to stdout (calls vfprintf_filtered internally).
* tm-hppa.h (CLEAN_UP_REGISTER_VALUE): Use it.
* hppa-coredep.c: Remove, now that we use the hook.
* config/hppab.mh, config/hppah.mh: Use standard coredep.o.
* hppab-xdep.c, hppah-xdep.c: Remove custom code, use hook.
* dbxread.c, partial-stab.h: Replace all #ifdef hp9000s800's with
GDB_TARGET_IS_HPPA's. This is a SERIOUS KLUDGE. The code needs to all
be ripped out and reimplemented right (see elfread.c).
* tm-hppa.h (GDB_TARGET_IS_HPPA): Define.
fix to differentiate between gcc1 & gcc2 compiled files so that we
can debug calls that pass structs as args correctly.
* symmisc.c (dump_symtab): If block was compiled with gcc, say
so, and what version.
prevent crashes when examining cross-targets.
* dbxread.c (process_one_symbol): Include directory name when
calling start_subfile for SOL & BINCL symbols. This allows gdb to
find include files, and yacc/lex sources when the cwd doesn't match
that in which the object was compiled.
* objfiles.h (ALL_MSYMBOLS): Don't seg fault when there are no
msymbols.
* symtab.c (lookup_symtab_1): Rewrite. It now handles include
files.
* dbxread.c (process_one_symbol): Parse N_OPT "gcc2_compiled.".
* procfs.c (proc_set_exec_trap): Set run-on-last-close flag on
child processes, to avoid dead ones "hanging around" after GDB exits.
(attach): Always stop the process if it needs it. Set RLC flag
when attaching running processes, so it will continue if we detach
it, quit, or are killed.
(detach): Clear faults and set RLC flag to make process run
when we close it.
(open_proc_file): New `mode' argument for O_RDONLY or O_RDWR.
Callers changed.
(info_proc): Open process O_RDONLY, so we can see any process,
even those controlled by debuggers.
* tm-sun4sol2.h (SUN_FIXED_LBRAC_BUG): They did (in Sol 2).
single `addr' or `offset'. This makes Solaris-2 support work, and
permits better VxWorks (and maybe xcoff) support later.
* dbxread.c: Conforming changes.
(struct dbx_symfile_info): Move to gdb-stabs.h.
(start_psymtab): Call elfstab_offset_sections to calculate good
offsets for this source file, based on the ELF symbol table info.
(read_ofile_symtab): Yank N_CATCH, which is dead.
(process_one_symbol, N_CATCH): Yank.
(", N_FUN, N_FNAME, N_FN, N_FN_SEQ, N_SO, N_SOL, N_ENTRY):
Relocate with SECT_OFF_TEXT.
(", N_STSYM, N_LCSYM, N_ROSYM): Grope around in the stab string
to distinguish relocatable from absolute symbols. Then, if not
absolute, do:
(", N_STSYM, N_DSLINE): SECT_OFF_DATA.
(", N_LCSYM, N_BSLINE): SECT_OFF_BSS.
(", N_ROSYM): SECT_OFF_RODATA.
(elfstab_build_psymtabs): Caller has allocated dbx_symfile_info.
(dbx_symfile_offsets): Add to translate addr to offset.
* partial-stab.h: Ignore N_ENDM.
* elfread.c (elf_symtab_read): Ignore symbols that don't have a
CODE or DATA section attachment. This eliminates a lot of random
values from shared libraries, which screw up the ordinary symbols
in the address ranges they happen to overlap.
* buildsym.c (define_symbol): Eliminate special tests
for function types; move into "function" cases in switch statement.
(define_symbol: 'f', 'F', 'P'): Process all parameter types
in case they define new type numbers. But ignore them (FIXME).
('k', 'B'): Ignore const and volatile if we see them (FIXME).
(read_sun_builtin_type): Add commentary.
symtab.h, tm-i386v4.h, valprint.c, values.c: Lint.
* breakpoint.c, c-exp.y, coffread.c, command.c, environ.c, eval.c,
findvar.c, infcmd.c, infptrace.c, infrun.c, m2-exp.y, parse.c,
putenv.c, solib.c, sparc-xdep.c, symtab.c, tm-i386v.h, tm-sparc.h,
utils.c, valarith.c, valops.c, valprint.c, values.c:
Replace bcopy() use with memcpy(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
* breakpoint.c, buildsym.c, coffread.c, dbxread.c, i386-tdep.c,
ieee-float.c, infcmd.c, sparc-tdep.c, stack.c, symtab.c, symtab.h,
target.c, values.c:
Replace bzero() use with memset(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
* i386-tdep.c, main.c, valprint.c:
Replace bcmp() use with memcmp(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
conditional.
* hppabsd-core.c: Don't include "param.h", include <sys/param.h>
instead.
* remote.c (remote_wait): Cast signal to void * to avoid warning
from busted HP compiler.
(_initialize_remote): `set remotedebug' enables packet trace.
* dbxread.c (process_one_symbol:N_FUN): GCC now produces relative
N_SLINE's, etc, just like Sun cc on Solaris2.
* am29k-tdep.c (read_register_stack, write_register_stack):
Change RSTACK_HIGH_ADDR to rstack_high_address, a user-settable
variable. Add `set' and `show' commands for it.
* doc/gdb.texinfo: Document it.
* eval.c: Avoid residue-by-zero when evaluating without side effects.
(Bug and fix found by Pierre Willard.)
* sparc-tdep.c: Clean up slightly for Solaris2.
* symtab.c (decode_line_1): Until C++ support stabilizes, when
C++ lookups fail, print possibly helpful hint about completion.
* cplus-dem.c (demangle_signature): Fix ARM style demangling
for static data members.
* dbxread.c (dbx_psymtab_to_symtab_1): Fix prototype.
* config/ncr3000.mh (INSTALL): Don't use /usr/ucb/install,
it's broken on ncr3000's.
set. Don't reset our own texthigh, or dependency-only pst's, in
scanning all the rest of the psymtabs.
(process_one_symbol): Fix comments around N_OBJ, N_OPT, N_UNDF.
* buildsym.h (N_UNDF): Improve comments.
(N_LSYM, etc): Skip types without names (":T(0,3)=sfoob...").
Add symbol_size and file offsets to struct symloc.
Add static symbol_table_offset, string_table_offset,
file_string_table_offset, next_file_string_table_offset,
last_function_name.
(add_old_header_file): Convert error() to complain()t.
(dbx_symfile_read): Get symbol size via the objfile.
Also get symbol_table_offset.
(dbx_symfile_init): Record symbol size and count via the objfile.
(dbx_next_symbol_text): Always add file_string_table_offset when
accessing string table.
(read_dbx_symtab): Initialize file_string_table_offset to 0.
(SET_NAMESTRING): Use the offset.
(end_psymtab): Large kludge to determine addresses where source
files start and end (for the psymtab header).
(psymtab_to_symtab_1): Set file_string_table_offset before reading.
Get this, symbol size, and symbol offset, from psymtab.
(read_ofile_symtab): Don't back up one symbol for Solaris2.
Patch up last_source_start_addr if zero in N_SO.
(process_one_symbol): Add variable function_start_offset.
( "", N_FUN, N_LBRAC, N_RBRAC, N_SLINE): Add ifdef for
BLOCK_ADDRESS_FUNCTION_RELATIVE.
( "", N_OBJ, N_OPT): Ignore.
(elfstab_build_psymtabs): New function to read stabs out of
an ELF file.
* Makefile.in: Accept $(BISON) even though we really want $(YACC).
(gdb): use GLOBAL_CFLAGS when linking, too.
* partial-stab.h (N_UNDF): Deal with Sol2 relative stringtab offsets.
(N_OBJ, N_OPT): Ignore.
('f', 'F'): Save last function name.
* symfile.h: Prototype elfstab_build_psymtabs.
* symfile.c: Add almost-OK debug versions of add_psymbol_*to_list.
* xm-sysv4.h: Add <limits.h> to avoid conflicting defns in defs.h.
elfread.c (coff_symfile_finish): Add function, prototype, and
add to the xxxx_sym_fns struct for each file type. Also reformat
the xxxx_sym_fns vector to a standard format and add comments.
* coffread.c, mipsread.c, xcoffread.c, coffread.c, dbxread.c,
elfread.c (xxx_symfile_new_init, xxx_symfile_init, xxx_symfile_read):
Pass pointer to struct objfile rather than pointer to sym_fns.
Change references inside each function accordingly. Allocate any
symbol file specific info in the per-objfile memory region.
* dbxread.c (free_and_init_header_files): Break function into
free_header_files(), called from dbx_symfile_finish(), and
init_header_files(), called from dbx_new_init().
* dbxread.c (dbx_new_init): Move deallocation things to new
dbx_symfile_finish function.
* elfread.c (elf_new_init): Call buildsym_new_init().
* objfiles.c (free_objfile): Call the appropriate symfile_finish()
routine for the objfile before deallocating other stuff.
* sparc-tdep.c (get_longjmp_target): Cast target_read_memory arg.
* symfile.h: Move struct sym_fns to before struct objfile def.
Add sym_finish function pointer and change prototypes of other
function pointers to reflect passing struct objfile pointer rather
than struct sym_fns pointer.
* symfile.c: Remove now obsolete symtab_fns pointer.
* symfile.c (symfile_init): Renamed to find_sym_fns, and now only
locates the correct sym_fns struct for the given objfile.
* symfile.c (syms_from_objfile, symbol_file_add): Restructured
for better support of mapped symbol tables.
* symfile.c (symbol_file_command): Remove obsolete code using
symfile_fns.
* symfile.h: Remove duplicate declarations for symfile_objfile,
entry_point, and object_files.
* target.c (target_info): Compare symfile_objfile to NULL.
* xcoffread.c (aixcoff_new_init): Move deallocation stuff to
aixcoff_symfile_finish().
* minsyms.c (install_minimal_symbols): Add bunches to any
existing minsyms in the objfile. Avoid extra mallocation
by working directly in the obstack. Remove ignored `mainline' parm.
* coffread.c, dbxread.c, elfread.c, mipsread.c, solib.c, symtab.h,
xcoffread.c: Change all callers.
* FIXME: We should be able to eliminate MAINLINE from all the
symbol readers now, with a small bit of work.
* valops.c, value.h: Lint.
* remote-vx.c: Add missing break; statement. Bugfix by
Michael Sclafani, <sclafani@src.dec.com>.
* dbxread.c (read_ofile_symtab): Fix up N_CATCH better. Pass
offset to process_one_symbol.
(process_one_symbol): Take new offset parameter. Add it into
appropriate symbol types to relocate symbols to loaded addresses.
Handle all possible symbol types, and complain() about types that
we don't expect to see.
* mipsread.c (psymtab_to_symtab_1): Pass offset of zero to
process_one_symbol (FIXME, should pass real offset).
Misc bugfixes:
* breakpoint.c (resolve_sal_pc): Split out code to resolve a
sal's PC value.
(set_breakpoint, break_command_1, until_break_command,
catch_command_1, breakpoint_re_set_one): Use it.
(breakpoint_re_set_one): Disable bkpts that don't re-set cleanly.
(breakpoint_re_set): Mention breakpoint number in error messages.
* symtab.h (resolve_sal_pc): Declare.
* infcmd.c (jump_command): Use resolve_sal_pc.
* source.c (find_source_lines): Avoid "Source file is more
recent than executable" when bfd_get_mtime gives 0.
(list_command): Shorten "FILE, line N" to "FILE:N".
* putenv.c (putenv): Avoid unportably casting pointers to unsigneds.
Made some more progress in removing duplicate assembly opcode files.
More improvements to how mipsread and to a lesser extent dbxread work.
See the ChangeLog for details.
(record_line): Record directly in a subfile. Alloc on demand.
(compare_line_numbers): Add from xcoffread.c.
(end_symtab): New params say whether to sort pendings and
linetable. Patch block stabs if defined. Shrink linetable before
allocating the symtab.
* buildsym.h: Delete line_vector* and prev_line_number. Add
global_stabs and file_stabs for xcoffread.
* dbxread.c (start_subfile): Move to buildsym. Change above calls.
* symtab.h: LINETABLE(symtab) can now be null. Zap LINELIST.
* symmisc.c, symtab.c: Cope with null LINETABLEs.
* tm-68k.h (FPI_REGNUM): Add.
* infrun.c (child_create_inferior): flush stdout and stderr
before forking.
* configure.in: Handle amigados, amix hosts and targets.
* inflow.c: Handle TIOCGLTC_BROKEN for Amiga.
From Andreas Schwab:
* values.c (show_convenience): Use printf_filtered.
* main.c (define_command): Check result of lookup_command for
exact match.
(echo_command): Use printf_filtered, and force output out.
* dbxread.c (read_enum_type): Avoid Modula-2 kludge that breaks C
programs.
* i387-tdep.c (double_to_i387): Fix typo for double_to_ieee_extended.
* utils.c (_initialize_utils): If !ISATTY, don't paginate.
Make complaint message not C++-specific.
* symtab.c (lookup_symtab_1, lookup_symbol): "fatal" errors
between symtabs and psymtabs become ordinary error()s.
* dbxread.c (read_dbx_symtab): Relocate end_of_text_addr
properly, making "end pc" correct in shared lib psymtabs.
(From Guy Harris <guy@auspex.com>.)
(read_dbx_symtab): N_STSYM and N_LCSYM define static vars.
Ditto Gould N_NBSTS and N_NBLCS. Also, all types in the psymtab
should be file-scope, not global.
(read_struct_type): Remove ancient multiple-inheritance warning.
(read_range_type): Check base type, complain & patch if undefined.
of allocating and initializing a new struct symtab. Set the
language of the symtab based on its filename extension.
* symfile.h: Declare it.
* mipsread.c (new_symtab): Use it. Minor formatting changes.
* dbxread.c (end_symtab): Use it.
* mipsread.c (parse_symbol, case stParam and stProc): Add #if 0'd
code for saving types of parameters with each function definition.
* dbxread.c (define_symbol, function and parameter cases): Ditto.
(read_dbx_symtab, case N_DEFD): Ignore.
(read_enum_type): Recognize FALSE/TRUE enum as Modula-2 BOOLEAN
type.
(read_range_type): Rename MAX_OF_TYPE to MAX_OF_C_TYPE, etc.
#if 0 out its uses, though, since they set a dead value.
* coffread.c (end_symtab): Use allocate_symtab.
(process_coff_symbol): #if 0'd for functions and params as above.
(read_enum_type): Recognize Modula-2 BOOLEAN.
Get getopt and obstack from -liberty rather than compiling them here.
* coffread.c: turn a printf into a complain(), and try to deal more
gracefully with botched-looking lineno pointers.
* dbxread.c: Use bfd_get_symcount rather than bfd_get_symcount_upper_bound.
Don't coredump on files with zero symbols in them (a BFD bug showed this one).
* environ.c: Pass GNUTARGET into the parent (gdb) as well as the child.
* valprint.c (type_print_base): If the type being printed is a
struct containing undefined types, print "<undefine type>"
as the type instead of crashing.
* values.c (value_headof): Get the vtable pointer taking
TYPE_VPTR_BASETYPE into account.
* symtab.c, symtab.h, dbxread.c: Fix various whitespace splotches.
and start clobbering it; allocate_stub_method instead.
* dbxread.c (read_struct_type): Put "op$" instead of "operator"
in the symbol table.
* dbxread.c (read_struct_type): Set fcontext to 0 for normal member
function.
* dbxread.c (read_struct_type): Initialize name to 0.
* dbxread.c (read_ofile_symtab, N_CATCH): Add offset to bufp->n_value.
* dbxread.c (dbx_create_type): Zero TYPE_VPTR_BASETYPE.
(read_struct_type): Don't bother to set TYPE_VTPR_{BASETYPE,FIELDNO}
if it's just going to be {0,1}.
* dbxread.c (virtual_context): Use TYPE_BASECLASS starting at 0
(yes, it's #if 0, but just in case...).
* dbxread.c (read_struct_type): If const/volatile character is
missing, don't complain, just continue.
* dbxread.c (read_struct_type): Only try to read the fcontext if
it is there. Also change "error_type " to "return error_type ".
values.c (value_virtual_fn_field): If there is no fcontext,
then do things the way GDB 3.x did.
valops.c (search_struct_method): Add type to value_virtual_fn_field
arguments.
* dbxread.c (read_struct_type): Fix typo: *pp != '\0' -> **pp != '\0'.
been read in, particularly for VxWorks.
* dbxread.c (read_dbx_symtab): Allow N_SOL to cleanly take us back
to the main file, as well as to include files. Also, put global
functions into the global psymtab, to make "i fun" work.
(end_psymtab): Free named symtabs and psymtabs for a file, once a
new psymtab for it has been read.