(symfile.h, objfiles.h, xcoffsolib.h): Include.
(vmap): New global variable.
(exec_close): Close and free objects in vmap chain.
(exec_file_command) [IBM6000_TARGET]: Set up initial vmap.
(bfdsec_to_vmap, map_vmap): Moved here from xcoffexec.c.
(exec_files_info): Print vmap information.
* xcoffexec.c: Remove.
* config/rs6000/rs6000.mt, config/rs6000/rs6000lynx.mt
(TDEPFILES): Use exec.o instead of xcoffexec.o.
* TODO: Remove pertinent items.
Lynx wait status.
(fetch_core_registers): Don't try to fetch a register if
regmap maps it to -1.
* sparc-tdep.c (sparc_frame_find_saved_regs): Use FRAME_SAVED_I0
and FRAME_SAVED_L0 when setting saved_regs_addr. SPARC Lynx
stores the registers in a weird order.
These patches make SPARC Lynx gdb usable, though it still has problems.
* symfile.h (ADD_PSYMBOL_VT_TO_LIST),
symfile.c (add_psymbol_to_list, add_psymbol_addr_to_list):
No longer demangle partial symbols.
* symtab.c (lookup_symbol, list_symbols): Handle mangled
variables, e.g. C++ static members, via the minimal symbols.
Handle reordered functions in an objfile, for Irix 5.2 shared
libraries.
* objfiles.h (OBJF_REORDERED): New bit in the objfile flags,
set if the functions in an objfile are reordered.
* mdebugread.c (parse_partial_symbols): Detect reordered
functions in an objfile.
* symtab.c (find_pc_psymtab, find_pc_symtab): Use expensive
lookup algorithm if the functions in the objfile are reordered.
* xcoffexec.c (exec_close): If the current target has a copy
of the exec_ops sections, reflect the freeing of the sections
in current_target.
* valops.c (call_function_by_hand): Use `sizeof dummy1', not
`sizeof dummy', for constructing the call dummy code.
* config/sparc/tm-sparc.h: Add PARAMS declarations to all
function declarations.
* sparc-tdep.c (sparc_pop_frame): Cast result of
read_memory_integer to CORE_ADDR when passing it to PC_ADJUST.
* irix5-nat.c (enable_break): Set breakpoint at the entry point
of the executable, to handle the case where main resides in a
shared library.
* irix5-nat.c (solib_create_inferior_hook): Reset stop_soon_quietly
after shared library symbol reading, to get rid of a warning from
heuristic_proc_start if the startup code has no symbolic debug info.
* breakpoint.h (struct breakpoint): Add new fields language
and input_radix, to enable breakpoint resetting with the
proper language and radix.
* breakpoint.c (set_raw_breakpoint): Initialize them.
(breakpoint_re_set_one): Use them when resetting the breakpoint.
(breakpoint_re_set): Preserve current language and input_radix
across breakpoint_re_set_one calls.
* symtab.c (decode_line_1): Do not build a canonical line
specification for `*expr' line specifications.
* breakpoint.h (bpstat_stop_status): Fix prototype declaration.
and stack pointer during stepping, to speed things up.
A. Changes to not select a frame until we need a selected frame:
* blockframe.c (flush_cached_frames): Call select_frame (NULL, -1).
* infrun.c (wait_for_inferior): Move call to select_frame back to
normal_stop. This reverts a change of 13 Apr 94 (it says Jeff
Law, but the change was my idea); the only reason for that change
was so we could save and restore the selected frame in
wait_for_inferior, and now that flush_cached frames clears the
selected frame, that should work OK now.
B. Changes to not create a current_frame until we need one:
* blockframe.c (get_current_frame): If current_frame is NULL, try
to create an innermost frame.
* sparc-tdep.c (sparc_pop_frame), infcmd.c (run-stack_dummy),
infrun.c (wait_for_inferior), thread.c (thread_switch),
convex-tdep.c (set_thread_command), a29k-tdep.c (pop_frame),
alpha-tdep.c (alpha_pop_frame), convex-xdep.c (core_file_command),
h8300-tdep.c (h8300_pop_frame), h8500-tdep.c (h8300_pop_frame),
hppa-tdep.c (hppa_pop_frame), i386-tdep.c (i386_pop_frame),
i960-tdep.c (pop_frame), m68k-tdep.c
(m68k_pop_frame), mips-tdep.c (mips_pop_frame), rs6000-tdep.c
(push_dummy_frame, pop_dummy_frame, pop_frame), sh-tdep.c
(pop_frame), config/arm/tm-arm.h (POP_FRAME),
config/convex/tm-convex.h (POP_FRAME), config/gould/tm-pn.h
(POP_FRAME), config/ns32k/tm-merlin.h (POP_FRAME),
config/ns32k/tm-umax.h (POP_FRAME), config/tahoe/tm-tahoe.h
(POP_FRAME), config/vax/tm-vax.h (POP_FRAME): Don't
call create_new_frame.
* corelow.c (core_open), altos-xdep.c (core_file_command),
arm-xdep.c (core_file_command), gould-xdep.c (core_file_command),
m3-nat.c (select_thread), sun386-nat.c (core_file_command),
umax-xdep.c (core_file_command): Don't call create_new_frame; do
call flush_cached_frames.
* blockframe.c (reinit_frame_cache): Don't call create_new_frame
or select_frame.
C. Changes to get rid of stop_frame_address and instead only
fetch the frame pointer when we need it.
* breakpoint.c (bpstat_stop_status): Remove argument
frame_address; use FRAME_FP (get_current_frame ()).
* infrun.c (wait_for_inferior): Don't pass frame pointer to
bpstat_stop_status.
* infrun.c (wait_for_inferior): Use FRAME_FP (get_current_frame
()) instead of stop_frame_address.
* infrun.c (save_inferior_status, restore_inferior_status),
inferior.h (struct inferior_status): Don't save and restore
stop_frame_address.
* inferior.h, infcmd.c, thread.c (thread_switch), m3-nat.c
(select_thread): Remove stop_frame_address and uses thereof.
D. Same thing for the stack pointer.
* infrun.c (wait_for_inferior): Remove stop_sp and replace
uses thereof with read_sp ().
E. Change to eliminate one nasty little spot where we were
wanting to know the frame pointer from before the current step
(idea from GDB 3.5, which saved my ass, because my other ideas of
how to fix it were very baroque).
* infrun.c: Remove prev_frame_address.
* infrun.c (wait_for_inferior, step_over_function): Use
step_frame_address instead of prev_frame_address.
F. Same basic idea for the stack pointer.
* inferior.h, infcmd.c: New variable step_sp.
* infcmd.c (step_1, until_next_command): Set it.
* infrun.c: Remove prev_sp and replace uses by step_sp.
* infrun.c (wait_for_inferior): If we get out of the step
range, then set step_sp to the current stack pointer before we
start going again.
(set_endian): Mention that ``auto'' is permitted.
(set_endian_auto): New static function.
(show_endian): Change message based on target_byte_order_auto.
(set_endian_from_file): New function.
(init_main): Add command ``auto'' to endianlist.
* exec.c (exec_file_command): Call set_endian_from_file.
* defs.h (set_endian_from_file): Declare.
pass current_target to SOLIB_ADD. The Sep 10 change failed
if SOLIB_ADD errored out, or if SOLIB_ADD was trying to access
target memory.
* corelow.c (core_open): After reading the shared libraries,
copy the modified to_sections vector from current_target to
core_ops, so that core_close can free it later.
* config/rs6000/nm-rs6000.h, rs6000-nat.c (xcoff_relocate_core):
Pass down target parameter from SOLIB_ADD and use it instead of
directly accessing core_ops.
<link.h>.
* i386b-nat.c: Add i386_float_info(), etc.
* config/i386/nm-nbsd.h: #define FLOAT_INFO.
* config/nm-nbsd.h: New file, for generic NetBSD native support.
* config/i386/nm-nbsd.h: Use it.
* config/sparc/nm-nbsd.h: Use it.
* config/ns32k/nm-nbsd.h: Use it.
* configure.in (i386-*-netbsd): Use config/i386/nbsd.m[ht].
(ns32k-*-netbsd): Use config/ns32k/nbsd.m[ht].
* config/i386/{nbsd.mh,nbsd.mt,nm-nbsd.h,tm-nbsd.h,xm-nbsd.h}:
New files, support for NetBSD/i386.
* config/ns32k/{nbsd.mh,nbsd.mh,nm-nbsd.h,tm-nbsd.h,xm-nbsd.h}:
New files, support for NetBSD/ns32k.
* dbxread.c (read_dbx_dynamic_symtab): Cast bfd_asymbol_name to
char * (from const char *) before assigning. Don't save string we
pass to record_minimal_symbol (it already saves it).
printing of static members.
(_initialize_cp_valprint): New print set subcommand
"static-members". Turn on printing of static members by default.
(cp_print_value_fields): Print static members if necessary.
* solib.c: Remove inclusion of libelf.h and elf/mips.h.
(elf_locate_base): Use only standard BFD functions to collect
information about the .dynamic section. Check for DT_MIPS_RLD_MAP
tag only if it got defined via the inclusion of <link.h>.
* f-exp.y: Write block for OP_VAR_VALUE.
* f-valprint.c (info_common_command): Handle `info common'
without an argument correctly.
* c-typeprint.c (c_type_print_base): Handle template constructors.
* symtab.c (gdb_mangle_name): Handle template method mangling,
get rid of GCC_MANGLE_BUG code, which only applied to gcc-2.2.2.
* ch-typeprint.c, ch-valprint.c: Use TYPE_INDEX_TYPE.
* ch-valprint.c (chill_val_print): Pass index type directly
(instead of its TYPE_TARGET_TYPE) to print_type_scalar.
* stabsread.c (read_type): Don't set TYPE_FLAG_TARGET_STUB
if the index type is a stub.
Also, add decl for symtab_to_filename.
* gdbtk.c: Replace calls to full_filename with symtab_to_filename.
* gdbtk.tcl: New routine pc_to_line replaces in line code. New
routine decr replaces in line code.
* (create_file_win): Use catch to handle open failures more
elegantly. Also, create special window to display file open
failure message. Move opening of file prior to creation of text
widget.
* (create_asm_win): Add PC as argument. We now base disassembly
on PC instead of function name, since function names can be
ambiguous (usually seen with shared libs). Also, use catch to
simplify code where we don't care about failures.
* source.c (symtab_to_filename): New. Returns the file
associated with a symtab.
* top.c: Define interactive_hook. Called during QUIT to animate
the GUI.
* stabsread.c (read_array_type): Check for stub domain type
using TYPE_FLAG_STUB, not its length.
* gdbtypes.c (create_set_type): Handle a stub domain type.
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.
* Put quotes around function name in disassemble command to better
handle assembler names containing `.'.
* Make pclist element 0 be filler to avoid off-by-one problem with
line numbers.
* Set names of top-level windows.
* Add register display window.
* Add PC to label of assembly window.
disassembly more efficient.
* (breakpoint_notify): Include pc in gdbtk_tcl_breakpoint
callback.
* (gdb_loc): Include pc in return value. Also, return function
name if arg was specified.
* (gdb_cmd_stub): Call gdb_flush to drain internal GDB buffers
after command completes.
* (gdbtk_init): Improve error handling.
* gdbtk.tcl: Add lots of comments. Clean up code.
* (gdbtk_tcl_fputs): Make output window redirectable.
* Add assembly window, and breapoint support.
* Make button 1 in margin toggle breakpoints.
* Use stippling to indicate breakpoint disabling.