symbol types are, by definition, in the .data section, so it is
correct to use SECT_OFF_DATA (objfile) here, not data_sect_index.
If there is no .data section, there should be no N_DATA or N_DATA
| N_EXT symbols.
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.