From Elena Zannoni <ezannoni@redhat.com>
* dbxread.c (process_one_symbol): Only record line 0 if one or
more sline entries have been seen for the function.
From Jim Ingham <jingham@apple.com>:
* dbxread.c (process_one_symbol): Use last_function_start rather
than function_start_offset to find the real beginning of the
current function. The latter is just the text section offset on
some systems, the former is always the real function start.
(fill_symbuf): Support an in-memory buffer for stabs data.
(stabs_seek): New function.
(dbx_psymtab_to_symtab): Relocate the stabs data if necessary.
(read_ofile_symtab): Use stabs_seek.
(elfstab_build_psymtabs): Take an asection* instead of
an offset and size. Relocate the stabs data if necessary.
Save the section* for dbx_psymtab_to_symtab.
* dwarf2read.c: Add section variables for each debug section.
(dwarf2_locate_sections): Fill them in.
(dwarf2_read_section): Take an asection* argument.
Relocate the section contents if necessary.
(dwarf2_build_psymtabs, dwarf2_build_psymtabs_easy): Update callers.
* dwarf2cfi.c (parse_frame_info): Take a section argument and pass
it to dwarf2_read_section.
(dwarf2_build_frame_info): Update callers.
* elfread.c (elf_symfile_read): Update call to
elfstab_build_psymtabs.
* gdb-stabs.h (struct dbx_symfile_info): Add stab_section.
(DBX_STAB_SECTION): New macro.
* stabsread.h (elfstab_build_psymtabs): Update prototype.
* symfile.c (symfile_dummy_outputs): New function.
(symfile_relocate_debug_section): New function.
* symfile.h (symfile_relocate_debug_section): Add prototype.
* buildsym.h (pop_context): Convert to function, defined in
buildsym.c.
* buildsym.c: Include gdb_assert.h.
(pop_context): Implement as C function. Add check for stack
underflow.
* dbxread.c (process_one_symbol): Complain and stop processing
that symbol if we are already at the top of the context stack for
a function-end N_FUN (this would imply an umatched RBRAC). Ditto
when processing N_RBRAC.
texthigh and textlow to reader-specific structs caused
objfile_relocate to miss them. This is fixable, but the work that
the change was supposed to prepare GDB for never got done anyway.
* symtab.h (find_stab_function_addr): Kill extern.
* minsyms.c (find_stab_function_addr): Remove from here...
* dbxread.c: ... to here, and mark it static.
2002-02-21 Fred Fish <fnf@redhat.com>
* dbxread.c (process_one_symbol): When finding an N_FUN symbol
that marks the end of the range of a function, enter a line number
entry that has a line number of zero and a PC offset that matches
the end of the function. This starts a range of PC's for which no
line number information is known.
* symtab.c (find_pc_sect_line): If our best fit is in a range of
PC's for which no line number info is found (line number is zero)
then we didn't find any valid line information.
* symtab.h: Document use of zero line number entry.
* dbxread.c (set_namestring): New function, replacing the
SET_NAMESTRING macro.
(SET_NAMESTRING, CUR_SYMBOL_TYPE, CUR_SYMBOL_VALUE,
CUR_SYMBOL_STRX, DBXREAD_ONLY, START_PSYMTAB, END_PSYMTAB): Delete
definitions.
(read_dbx_symtab): Don't include partial-stab.h any more. Don't
reuse code in partial-stab.h, include the code directly, instead.
* Makefile.in (dbxread.o): Remove dependency on partial-stab.h.
(HFILES_NO_SRCDIR): Remove partial-stab.h.
of `struct partial_symtab' to only a few locations. This change
is not supposed to affect the way the values are computed, only
where they live.
* dbxread.c (struct symloc): Add `textlow' and `texthigh' fields
to the reader-specific structure.
* mdebugread.c (struct symloc): Same.
* dbxread.c (TEXTLOW, TEXTHIGH): New accessor macros.
* mdebugread.c (TEXTLOW, TEXTHIGH): Same.
* dbxread.c (dbx_symfile_read): After we've built all our partial
symbol tables, set each partial symtab's `textlow' and `texthigh'
fields from our reader-specific structure.
* mdebugread.c (mdebug_build_psymtabs): Same.
* dbxread.c (start_psymtab): Initialize the reader-specific
structure's `textlow' and `texthigh' from the new psymtab's.
* mdebugread.c (parse_partial_symbols, new_psymtab): Same.
* dbxread.c (read_dbx_symtab, end_psymtab, read_ofile_symtab): Use
the reader-specific `textlow' and `texthigh', not the generic
psymtab fields.
* mdebugread.c (parse_lines, parse_partial_symbols,
psymtab_to_symtab_1): Same.
* partial-stab.h: Same.
From Daniel Jacobowitz <drow@mvista.com>
* dbxread.c (free_header_files): Make global.
(init_header_files): Likewise.
* stabsread.h (free_header_files): Add prototype.
(init_header_files): Likewise.
* mdebugread.c (mdebug_build_psymtabs): Initialize
properly before using the stabs debug reader.
From Daniel Jacobowitz <drow@mvista.com>
* dbxread.c (dbx_symfile_read): Only reinitialize
the psymbol list if mainline or if both static
and global lists are empty.
* dwarf2read.c (dwarf2_build_psymtabs): Likewise.
* dwarfread.c (dwarf_build_psymtabs): Likewise.
* xcoffread.c (xcoff_initial_scan): Likewise.
* os9kread.c (os9k_symfile_read): Likewise.
H.J. Lu (hjl@gnu.org)
* partial-stab.h: valu should be a CORE_ADDR.
2001-08-14 H.J. Lu (hjl@gnu.org)
* dbxread.c (SWAP_SYMBOL): Removed.
(INTERNALIZE_SYMBOL): Check sign extended vma.
Abstract out operations specific to particular C++ ABI's, and
invoke them through a function table. This removes the C++ ABI
dependencies scattered throughout the code, and allows us to
cleanly add support for new C++ ABI's.
* cp-abi.h, cp-abi.h, gnu-v2-abi.c, hpacc-abi.c: New files.
* c-typeprint.c, c-valprint.c, dbxread.c, eval.c, gdbtypes.c,
jv-typeprint.c, linespec.c, symtab.c, typeprint.c, valops.c:
#include "cp-abi.h". These files all use functions now declared
there.
* symtab.h (OPNAME_PREFIX_P, VTBL_PREFIX_P, DESTRUCTOR_PREFIX_P):
Deleted. These services are now provided by functions declared in
cp-abi.h.
* value.h (value_rtti_type, value_virtual_fn_field): Same.
* values.c (value_virtual_fn_field): Same, for this definition.
* valops.c (value_rtti_type): Same.
* c-typeprint.c (c_type_print_base): Use the functions from
"cp-abi.h", instead of the old macros, or hard-coded ABI-specific
tests.
* dbxread.c (record_minimal_symbol): Same.
* gdbtypes.c (get_destructor_fn_field, virtual_base_index,
virtual_base_index_skip_primaries): Same.
* jv-typeprint.c (java_type_print_base): Same.
* linespec.c (find_methods, decode_line_1): Same.
* symtab.c (gdb_mangle_name): Same.
* Makefile.in (SFILES): Add the new .c files mentioned above.
(cp_abi_h): New variable.
(COMMON_OBS): Add gnu-v2-abi.o, hpacc-abi.o, and cp-abi.o.
(cp-abi.o, gnu-v2-abi.o, hpacc-abi.o): New targets.
(c-typeprint.o, c-valprint.o, dbxread.o, eval.o, gdbtypes.o,
jv-typeprint.o, symtab.o, linespec.o, typeprint.o, valops.o): Add
dependency on $(cp_abi_h).
From Andrew Cagney <ac131313@redhat.com>
* coffread.c (coff_symtab_read): Initialize
``fcn_first_line_addr''. Check that the ``.bf'' always preceeds
the ``.ef'' info.
* dbxread.c (find_text_range): Initialize ``start'' and ``end''.
entries.
* dbxread.c: More comment cleanups.
* stabsread.c: Fix various violations of the GNU coding and
formatting standards. Update/add comments to make code clearer.
(resolve_reference): Delete unused function.
(ref_search_val): Remove function. It didn't belong in stabsread.c
(resolve_live_range): No longer returns a value. Do not add it
to the live range list until the entire range stab has been parsed.
(get_substring): Remove duplicate declaration.
(resolve_symbol_reference): Now static. Remove unnecessary code
to deal with cleanups.
(ref_add): Use xrealloc instea of realloc.
(process_reference): Reorganize slightly to make clearer.
* stabsread.h (resolve_symbol_reference): Remove declaration.
(resolve_reference): Likewise.
* symtab.c (find_active_alias): New function.
(lookup_block_symbol): Use find_active_alias.
* symtab.h (struct range_list): Fix dangling struct live_range
reference.
(ref_search_val): Remove decl.
* symtab.h (struct range_list): Renamed from struct live_range.
(struct symbol): Remove struct live_range_info substruct.
Bring the alias list and range list fields up to the toplevel
as "aliases" and "ranges".
(SYMBOL_ALIASES, SYMBOL_RANGES): Corresponding changes.
(SYMBOL_RANGE_START, SYMBOL_RANGE_END, SYMBOL_RANGE_NEXT): Delete.
* stabsread.c: Corresponding changes.
Bring first round of cleanups over from r5900 branch.
(end_psymtab): Use MSYMBOL_SIZE to extract size from minimal symbol.
* elfread.c (elf_symtab_read): If ELF symbol is "special",
such as a MIPS16 function, mark minimal symbol as special too.
* mips-tdep.c (pc_is_mips16): New function to check whether
a function is MIPS16 by looking at the minimal symbol. Use
pc_is_mips16 throughout instead of IS_MIPS16_ADDR macro.
* config/mips/tm-mips.h (SYMBOL_IS_SPECIAL, MAKE_MSYMBOL_SPECIAL,
MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): New functions for setting/testing
"special" MIPS16 bit in ELF and minimal symbols.
* mdebugread.c (parse_partial_symbols): Don't construct a partial
symbol table for a file that already has one.
start-sanitize-tx19
* configure.tgt: Support TX19.
* config/mips/tm-tx19.h, config/mips/tm-tx19l.h, config/mips/tx19.mt,
config/mips/tx19l.mt: New files for TX19.
end-sanitize-tx19
reading stabs extensions for live range information.
* stabsread.h, partial-stab.h: Add prototypes for new functions.
* symtab.h: Add structure for storing live range information.
(record_debugformat): Declare global function.
* buildsym.c (start_subfile): Initialize debugformat member
to NULL.
(record_debugformat): New function to record the format.
(end_symtab): Copy format into symtab debugformat member.
(end_symtab): Free subfile debugformat member.
* symmisc.c (free_symtab): Free debugformat when freeing
symtab.
* symfile.c (allocate_symtab): Initialize the new debugformat
member for new symtabs.
* symtab.h (struct symtab): Add debugformat member.
* source.c (source_info): Print the debug format.
* os9kread.c (os9k_process_one_symbol): Call record_debugformat
with "OS9".
* hpread.c (hpread_expand_symtab): Call record_debugformat
with "HP".
(hpread_process_one_debug_symbol): Ditto.
* dbxread.c (process_one_symbol): Call record_debugformat
with "stabs".
* coffread.c (coff_start_symtab): Call record_debugformat
with "COFF".
* xcoffread.c (read_xcoff_symtab): Call record_debugformat
with "XCOFF".
* dwarfread.c (read_file_scope): Call record_debugformat
with "DWARF 1".
* dwarf2read.c (read_file_scope): Call record_debugformat
with "DWARF 2".
* dstread.c (dst_end_symtab): Set debugformat to be
"Apollo DST".
* mdebugread.c (new_symtab): Set debugformat to be "ECOFF".
external forms may have different sizes. Don't assume that an
internal_nlist has the same layout as an external_nlist. Create
symbol for n_strx element so to hide specifics of nlist from
partial-stab.h.
* partial-stab.h: Don't reference dbxread symbols directly. Use
CUR_SYMBOL_STRX instead.
* config/i386/xm-windows.h: Define SIGQUIT and SIGTRAP.
* config/v850/tm-v850.h: Define PS_REGNUM and TARGET_V850 for
MSVC builds.
* mswin/gdbwin.c (reg_order): Define register order for V850.
* mswin/gui.cpp (CGuiApp::InitInstance): Define target name for
V850.
* mswin/regdoc.h: Define MAXREGS for V850.
* dbxread.c (dbx_symfile_read): Call free_pending_blocks rather
than poking global variable (which is now static).
* hpread.c (hpread_build_psymtabs): Ditto.
* os9kread.c (os9k_symfile_read): Ditto.
* xcoffread.c (xcoff_initial_scan): Ditto.
* buildsym.h (free_pending_blocks): Declare here.
(pending_blocks): Remove declaration of global symbol.
(free_pendings): Remove declaration of global symbol.
(make_blockvector): Declare here.
(record_pending_block): Declare here.
* dstread.c (make_blockvector): Remove static copy that was old
clone of version in buildsym.c.
(process_dst_block): Call record_pending_block rather than doing
it by hand.
(read_dst_symtab): Ditto.
* buildsym.c (make_blockvector): Make global rather than static,
(record_pending_block): New function, code moved from finish_block.
(finish_block): Use record_pending_block.
(free_pending_blocks): New function.
(really_free_pendings): Call free_pending_blocks.
(pending_blocks): Make static instead of global.
(free_pendings): Make static instead of global.
* dbxread.c (read_dbx_symtab end_psymtab), partial-stab.h: Don't
use partial_symtab->textlow==0 as a flag, as 0 is a legitimate
text address. Use a seperate flag (textlow_not_set) instead.
This makes stabs in ELF .o files work a lot better.
* mdebugread.c xcoffread.c: Define textlow_not_set for
partial-stab.h.
* stabsread.h (end_psymtab): Add textlow_not_set arg to prototype.
* coffread.c (record_minimal_symbol): Don't presave name string
on symbol_obstack before passing to prim_record_minimal_symbol.
It now handles saving the string itself.
* dbxread.c (read_dbx_dynamic_symtab): Ditto.
* mipsread.c (read_alphacoff_dynamic_symtab): Ditto.
* os9kread.c (record_minimal_symbol): Ditto.
* solib.c (solib_add_common_symbols): Ditto.
* coffread.c (coff_symtab_read): Don't presave name string on
symbol_obstack before passing to prim_record_minimal_symbol_and_info.
It now handles saving the string itself.
* dbxread.c (record_minimal_symbol): Ditto.
* elfread.c (record_minimal_symbol_and_info): Ditto.
* dstread.c (record_minimal_symbol): Remove static function that just
called prim_record_minimal_symbol with the same args (after change to
prim_record_minimal_symbol to do it's own name string saves).
* nlmread.c (record_minimal_symbol): Ditto.
* somread.c (record_minimal_symbol): Ditto.
* hpread.c (hpread_read_enum_type): Save symbol name on symbol obstack.
(hpread_read_function_type): Ditto.
(hpread_process_one_debug_symbol): Ditto.
* mdebugread.c (parse_symbol): Ditto.
(new_symbol): Ditto.
* minsyms.c (prim_record_minimal_symbol_and_info): Ditto.
* coffread.c (process_coff_symbol): Use obsavestring to save
SYMBOL_NAME, rather than obstack_copy0.
* dstread.c (create_new_symbol): Ditto
* symfile.c (obconcat): Ditto.
* stabsread.c (patch_block_stabs): Ditto.
* xcoffread.c (SYMNAME_ALLOC): Ditto.
* symfile.c (obsavestring): Update comments
* solib.c (solib_add_common_symbols): Remove local var origname.
* symfile.c, symfile.h (init_psymbol_list): New function;
consolidate duplicated copies from os9kread.c, dbxread.c
and dwarfread.c.
* defs.h: Declare info_verbose.
* xcoffread.c: Extensive changes to support psymtabs.
with the real source file name.
* dbxread.c (end_psymtab): Handle static functions in the
SOFUN_ADDRESS_MAYBE_MISSING case by passing pst->filename
to lookup_minimal_symbol.
(process_one_symbol): Ignore extra outermost context from
SunPRO cc and acc.
* stabsread.c (define_symbol): Do not complain for SunPRO
static variable encoding if STATIC_TRANSFORM_NAME is defined.
* sparc-tdep.c, config/sparc/tm-sun4sol2.h
(sunpro_static_transform_name): Renamed from
solaris_static_transform_name.
* config/sparc/tm-sun4os4.h (STATIC_TRANSFORM_NAME):
Define to sunpro_static_transform_name for acc 3.0 compiled
executables.
* procfs.c, config/alpha/nm-osf2.h (PROCFS_DONT_TRACE_FAULTS):
Renamed from PROCFS_DONT_TRACE_IFAULT, don't trace any faults
if defined.
* procfs.c (info_proc_siginfo): Cast sip->si_addr to
`unsigned long' and use `lx' format for printing it.
mst_solib_trampoline.
* f-valprint.c (f_val_print): Change cast of valaddr from
CORE_ADDR * to char **, since that is how it is used.
* dbxread.c (read_dbx_dynamic_symtab): Save copy of symbol names
using obsavestring, and pass that to prim_record_minimal_symbol.
Having the objfile point to bfd_asymbol_name directly doesn't work
if we save and restore a mapped symbol file.
core_ops to current_target after adding the shared libraries.
* partial-stab.h (N_EXCL), dbxread.c (add_old_header_file,
find_corresponding_bincl_psymtab): Change `repeated header not seen'
error to a complaint, simplify complaint.
* procfs.c (signalname, errnoname): Make `name' const.
* symfile.c (reread_symbols): Use filename from old BFD to
reopen the objfile.
* values.c (record_latest_value): Don't record value in the
history chain until we are sure there won't be an error.
names mean end of .o file.
* infrun.c (wait_for_inferior): Clean up multi-thread logic near
top of routine. Handle new thread notification cleanly.
* lynx-nat.c (child_wait): General cleanups, handle new LynxOS
thread notification scheme.
* (child_resume): General cleanups, handle resumption of all
threads properly.
comments to reflect that this file deals with SOM (an object file
format), rather than the PA (a cpu).
(Makefile.in): Chaned appropriately.
(config/pa/hppabsd.mh, config/pa/hppahpux.mh): Likewise.
* dbxread.c (somstab_build_psymtabs): Renamed from
pastab_build_psymtabs.
associated with the symbol to make dynmaic relocation work.
* (dbx_symfile_read, process_one_symbol): Fixes to work around
Solaris brain-damage which don't apply to relocatable object
files.
* (stabsect_build_psymtabs): New routine to read stabs out of an
arbitrarily named section.
* nlmread.c (nlm_symtab_read): Read ALL syms from the NLM, not just
globals.
* (nlm_symfile_read): Call stabsect_build_psymtabs to read the
stabs out of the nlm.
* partial-stabs.h (cases 'f' & 'F'): Fixes to work around Solaris
brain-damage which don't apply to relocatable object files.
* remote.c (putpkt): Improve error reporting and error handling.
* stabsread.c (define_symbol, scan_file_globals): Record section
info in sym.
are in the .plt section.
* minsyms.c (lookup_solib_trampoline_symbol_by_pc,
find_solib_trampoline_target): New functions for handling
stepping into -g compiled shared libraries.
* symtab.h (lookup_solib_trampoline_symbol_by_pc,
find_solib_trampoline_target): Add prototypes.
* config/tm-sunos.h (IN_SOLIB_TRAMPOLINE, SKIP_TRAMPOLINE_CODE):
Define to handle stepping into -g compiled shared libraries.
* config/tm-sysv4.h (SKIP_TRAMPOLINE_CODE): Define to handle
stepping into -g compiled shared libraries.
* configure.in: Add mips-*-sysv4* support.
* config/mips/mipsv4.mh, config/mips/mipsv4.mt,
config/mips/tm-mipsv4.h, config/mips/xm-mipsv4.h, mipsv4-nat.c:
New files for MIPS SVR4 support.
* Makefile.in: Update for new mipsv4 files.
* alpha-tdep.c (heuristic_proc_desc, find_proc_desc): Use
read_next_frame_reg to obtain the frame relative stack pointer.
* mips-tdep.c (heuristic_proc_desc): Use read_next_frame_reg to
obtain the frame relative stack pointer.
* mdebugread.c (parse_partial_symbols, psymtab_to_symtab1):
Handle stStatic and stStaticProc symbols in stabs-in-ecoff output
by entering them into the minimal symbol table.
* printcmd.c (print_scalar_formatted): Do not try to unpack to
a long for float formats.
* solib.c: Include "elf/mips.h" only if DT_MIPS_RLD_MAP does not
get defined in <link.h>.
* solib.c (solib_add): Add shared library sections to the section
table of the target before adding the symbols.
* partial-stab.h: Relocate static and global functions.
* dbxread.c (read_dbx_symtab): Remove unused variable
end_of_text_address. Relocate text_addr when passing it
to end_psymtab.
For Alpha OSF/1 targets, enable gdb to set breakpoints in shared
library functions before the executable is run. Retrieve dynamic
symbols from stripped executables.
* mipsread.c (read_alphacoff_dynamic_symtab): New function.
* mipsread.c (mipscoff_symfile_read): Use it. Issue warning message
if no debugging symbols were found.
* alpha-tdep.c (alpha_skip_prologue): Silently return the unaltered
pc if memory at the pc is not accessible and GDB_TARGET_HAS_SHARED_LIBS
is defined.
* config/alpha/nm-alpha.h (GDB_TARGET_HAS_SHARED_LIBS): Define,
OSF/1 has shared libraries.
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.