summaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authornobody <>2004-01-26 12:52:12 +0000
committernobody <>2004-01-26 12:52:12 +0000
commitaa0e88e3d758559942e192f3075a3edc0b2f222d (patch)
tree71afb6fbfb9d80e4b7b8ee31e758ebc905cf6c48 /gdb
parent5f2fbaa631ada809193f3619152ecdcd956cc63d (diff)
downloadbinutils-gdb-aa0e88e3d758559942e192f3075a3edc0b2f222d.tar.gz
This commit was manufactured by cvs2svn to create branch
'carlton_dictionary-branch'. Cherrypick from master 2004-01-26 12:52:10 UTC DJ Delorie <dj@redhat.com> 'merge from gcc': bfd/ChangeLog-0203 bfd/doc/ChangeLog-9103 gdb/ChangeLog-2003 gdb/config/sparc/linux64.mh gdb/config/sparc/linux64.mt gdb/config/sparc/nm-sol2.h gdb/config/sparc/obsd.mt gdb/config/sparc/obsd64.mt gdb/config/sparc/sol2-64.mt gdb/config/sparc/sol2.mh gdb/config/sparc/sol2.mt gdb/config/sparc/sparc.mt gdb/config/sparc/sparc64.mt gdb/config/sparc/tm-sol2.h gdb/config/sparc/tm-vxworks.h gdb/config/sparc/vxworks.mt gdb/mi/ChangeLog-1999-2003 gdb/sparc-linux-tdep.c gdb/sparc-nat.h gdb/sparc-sol2-nat.c gdb/sparc-sol2-tdep.c gdb/sparc64-linux-nat.c gdb/sparc64-linux-tdep.c gdb/sparc64-nat.c gdb/sparc64-sol2-tdep.c gdb/sparc64nbsd-tdep.c gdb/sparc64obsd-tdep.c gdb/sparcobsd-tdep.c gdb/testsuite/gdb.base/gdb1476.c gdb/testsuite/gdb.base/gdb1476.exp gdb/testsuite/gdb.base/sepdebug.c gdb/testsuite/gdb.base/sepdebug.exp gdb/testsuite/gdb.cp/bs15503.cc gdb/testsuite/gdb.cp/bs15503.exp gdb/testsuite/gdb.cp/exception.cc gdb/testsuite/gdb.cp/exception.exp gdb/testsuite/gdb.mi/ChangeLog-1999-2003 gdb/tui/ChangeLog-1998-2003 gdb/tui/tui-command.c gdb/tui/tui-command.h gdb/tui/tui-data.c gdb/tui/tui-data.h gdb/tui/tui-disasm.c gdb/tui/tui-disasm.h gdb/tui/tui-io.c gdb/tui/tui-io.h gdb/tui/tui-layout.c gdb/tui/tui-layout.h gdb/tui/tui-regs.c gdb/tui/tui-regs.h gdb/tui/tui-source.c gdb/tui/tui-source.h gdb/tui/tui-stack.c gdb/tui/tui-stack.h gdb/tui/tui-win.c gdb/tui/tui-win.h gdb/tui/tui-windata.c gdb/tui/tui-windata.h gdb/tui/tui-wingeneral.c gdb/tui/tui-wingeneral.h gdb/tui/tui-winsource.c gdb/tui/tui-winsource.h include/ChangeLog-9103 include/coff/ChangeLog-9103 include/elf/ChangeLog-9103 include/opcode/ChangeLog-9103 libiberty/configure.ac libiberty/cp-demangle.h libiberty/cp-demint.c opcodes/ChangeLog-0001 opcodes/ChangeLog-0203 sim/m32r/syscall.h sim/m32r/traps-linux.c
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog-200315447
-rw-r--r--gdb/config/sparc/linux64.mh11
-rw-r--r--gdb/config/sparc/linux64.mt5
-rw-r--r--gdb/config/sparc/nm-sol2.h65
-rw-r--r--gdb/config/sparc/obsd.mt4
-rw-r--r--gdb/config/sparc/obsd64.mt5
-rw-r--r--gdb/config/sparc/sol2-64.mt3
-rw-r--r--gdb/config/sparc/sol2.mh6
-rw-r--r--gdb/config/sparc/sol2.mt3
-rw-r--r--gdb/config/sparc/sparc.mt2
-rw-r--r--gdb/config/sparc/sparc64.mt2
-rw-r--r--gdb/config/sparc/tm-sol2.h40
-rw-r--r--gdb/config/sparc/tm-vxworks.h31
-rw-r--r--gdb/config/sparc/vxworks.mt4
-rw-r--r--gdb/mi/ChangeLog-1999-20032180
-rw-r--r--gdb/sparc-linux-tdep.c311
-rw-r--r--gdb/sparc-nat.h40
-rw-r--r--gdb/sparc-sol2-nat.c98
-rw-r--r--gdb/sparc-sol2-tdep.c201
-rw-r--r--gdb/sparc64-linux-nat.c48
-rw-r--r--gdb/sparc64-linux-tdep.c82
-rw-r--r--gdb/sparc64-nat.c87
-rw-r--r--gdb/sparc64-sol2-tdep.c182
-rw-r--r--gdb/sparc64nbsd-tdep.c256
-rw-r--r--gdb/sparc64obsd-tdep.c210
-rw-r--r--gdb/sparcobsd-tdep.c171
-rw-r--r--gdb/testsuite/gdb.base/gdb1476.c12
-rw-r--r--gdb/testsuite/gdb.base/gdb1476.exp72
-rw-r--r--gdb/testsuite/gdb.base/sepdebug.c150
-rw-r--r--gdb/testsuite/gdb.base/sepdebug.exp987
-rw-r--r--gdb/testsuite/gdb.cp/bs15503.cc74
-rw-r--r--gdb/testsuite/gdb.cp/bs15503.exp100
-rw-r--r--gdb/testsuite/gdb.cp/exception.cc69
-rw-r--r--gdb/testsuite/gdb.cp/exception.exp222
-rw-r--r--gdb/testsuite/gdb.mi/ChangeLog-1999-2003768
-rw-r--r--gdb/tui/ChangeLog-1998-20031217
-rw-r--r--gdb/tui/tui-command.c135
-rw-r--r--gdb/tui/tui-command.h30
-rw-r--r--gdb/tui/tui-data.c1055
-rw-r--r--gdb/tui/tui-data.h386
-rw-r--r--gdb/tui/tui-disasm.c403
-rw-r--r--gdb/tui/tui-disasm.h37
-rw-r--r--gdb/tui/tui-io.c722
-rw-r--r--gdb/tui/tui-io.h55
-rw-r--r--gdb/tui/tui-layout.c1140
-rw-r--r--gdb/tui/tui-layout.h38
-rw-r--r--gdb/tui/tui-regs.c1023
-rw-r--r--gdb/tui/tui-regs.h41
-rw-r--r--gdb/tui/tui-source.c356
-rw-r--r--gdb/tui/tui-source.h33
-rw-r--r--gdb/tui/tui-stack.c435
-rw-r--r--gdb/tui/tui-stack.h33
-rw-r--r--gdb/tui/tui-win.c1615
-rw-r--r--gdb/tui/tui-win.h59
-rw-r--r--gdb/tui/tui-windata.c349
-rw-r--r--gdb/tui/tui-windata.h47
-rw-r--r--gdb/tui/tui-wingeneral.c285
-rw-r--r--gdb/tui/tui-wingeneral.h49
-rw-r--r--gdb/tui/tui-winsource.c715
-rw-r--r--gdb/tui/tui-winsource.h68
60 files changed, 32274 insertions, 0 deletions
diff --git a/gdb/ChangeLog-2003 b/gdb/ChangeLog-2003
new file mode 100644
index 00000000000..b396264760a
--- /dev/null
+++ b/gdb/ChangeLog-2003
@@ -0,0 +1,15447 @@
+2003-12-30 Eli Zaretskii <eliz@elta.co.il>
+
+ * configure.in: Check for st_blocks member in struct stat and
+ define HAVE_STRUCT_STAT_ST_BLOCKS accordingly.
+
+ * acconfig.h (HAVE_STRUCT_STAT_ST_BLOCKS): New undef.
+
+ * configure, config.in: Regenerated.
+
+ * remote-fileio.c (remote_fileio_to_fio_stat)
+ (remote_fileio_func_fstat) [HAVE_STRUCT_STAT_ST_BLOCKS]: Support
+ systems that don't have `st_blocks' member in `struct stat'.
+
+2003-12-29 Eli Zaretskii <eliz@elta.co.il>
+
+ * go32-nat.c (go32_sldt, go32_sgdt, go32_sidt, go32_pte): Fix
+ mismatches between format string and arguments (avoids compiler
+ warnings).
+
+ * configure.in: Set ac_cv_search_tgetent to "none required" for
+ "*djgpp*" targets as well (DJGPP doesn't have termcap and doesn't
+ need one).
+
+ * config/djgpp/config.sed: Tweak to adapt to the changes in
+ configury.
+
+ * config/djgpp/djconfig.sh: Fix the test of unpacked
+ distribution, since there's no gdb.cxx directory anymore.
+
+2003-12-28 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-sol2-tdep.c (i386_sol2_mcontext_addr): New function.
+ (i386_sol2_init_abi): Initialize TDEP->sigcontext_addr,
+ TDEP->sc_reg_offset and TDEP->sc_num_regs.
+
+ * i386-tdep.h (i386_regnum): Add I386_CS_REGNUM and
+ I386_SS_REGNUM.
+
+2003-12-27 Mark Kettenis <kettenis@gnu.org>
+
+ * dwarf2-frame.c (dwarf2_reg_rule): Add REG_RA and REG_CFA.
+ (dwarf2_frame_cache): Initialize PC_REGNUM with REG_RA and
+ SP_REGNUM with REG_CFA. Don't overwrite the initialized register
+ rule for registers left unspecified by the CFI. Remove the
+ special handling of PC_REGNUM. Add code to eleminate any REG_RA
+ rules.
+ (dwarf2_frame_prev_register): Remove the special handling of
+ SP_REGNUM. Add support for the REG_CFA rule.
+
+2003-12-26 Mark Kettenis <kettenis@gnu.org>
+
+ * i386obsd-tdep.c: Include "regset.h", "gdb_assert.h" and
+ "gdb_string.h".
+ (i386obsd_r_reg_offset): New variable.
+ (i386obsd_aout_supply_regset)
+ (i386obsd_aout_regset_from_core_section): New functions.
+ (i386obsd_supply_reg, fetch_core_registers): Remove functions.
+ (i286obsd_core_fns): Remove variable.
+ (i386obsd_init_abi): Initialize TDEP->gregset_reg_offset,
+ TDEP->gregset_num_regs and TDEP->sizeof_gregset. Set
+ regset_from_core_section. Use ARRAY_SIZE to initialize
+ TDEP->sc_num_regs.
+ (_initialize_i386obsd_tdep): Don't call add_core_fns.
+
+ * i386bsd-tdep.c (i386bsd_core_osabi_sniffer): New function.
+ (_initialize_i386bsd_tdep): Register i386bsd_core_osabi_sniffer.
+
+ * i386-linux-nat.c: Add comment.
+
+2003-12-26 Christopher Faylor <cgf@redhat.com>
+
+ * win32-nat.c: Add some comments about below change.
+
+2003-12-25 Christopher Faylor <cgf@redhat.com>
+
+ Fix for PR threads/1048
+ * win32-nat.c (thread_info_struct): Add reload_context flag.
+ (thread_rec): Don't reload thread context here. Just set a flag.
+ (do_child_fetch_inferior_registers): Reload thread context here if
+ appropriate. Avoid doing anything if current_thread is NULL thanks to
+ strange Windows behavior.
+ (child_fetch_inferior_registers): Avoid doing anything if
+ current_thread is NULL.
+ (do_child_store_inferior_registers): Ditto.
+ (child_store_inferior_registers): Ditto.
+ (child_kill_inferior): Ditto.
+ (fake_create_process): Pretend to create a process for pathological
+ windows attach situation.
+ (get_child_debug_event): Call fake_create_process when the first event
+ noticed is thread creation rather than process creation.
+ (child_attach): Always set attach_flag when attaching.
+ (child_create_inferior): Set attach_flag to zero since we're not
+ attaching.
+
+2003-12-25 Christopher Faylor <cgf@redhat.com>
+
+ * win32-nat.c (get_child_debug_event): Keep main thread id around even
+ after thread exits since Windows insists on continuing to report events
+ against it.
+
+2003-12-22 Mark Kettenis <kettenis@gnu.org>
+
+ * dwarf2-frame.c (dwarf2_frame_cache): Don't skip the return
+ address column.
+
+2003-12-21 Jim Blandy <jimb@redhat.com>
+
+ * breakpoint.c (bpstat_do_actions): To ensure that
+ clear_proceed_status doesn't free the command tree we're
+ evaluating out from under us, zero the bpstat's pointer to it, and
+ take care of freeing it ourselves.
+ * cli/cli-script.c (make_cleanup_free_command_lines): Make this
+ function externally visible.
+ * cli/cli-script.h (make_cleanup_free_command_lines): New
+ declaration.
+
+2003-12-20 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (x86_64_dwarf_regmap): Map the Return Address to
+ RIP.
+
+2003-12-18 Michael Chastain <mec.gnu@mindspring.com>
+
+ * hppa-tdep.c (hppa_gdbarch_init): Set long double floating
+ point type to floatformat_ia64_quad_big.
+
+2003-12-18 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (skip_prologue_using_sal): New function. Taken verbatim
+ from mips-tdep.c.
+ (frv_analyze_prologue): Rework to account for intermixed prologue /
+ body instructions.
+
+2003-12-18 Michael Chastain <mec.gnu@mindspring.com>
+
+ * hppa-tdep.c (hppa_gdbarch_init): Set sizeof(long_double) to 128.
+ Document type sizes for hppa*-*-hpux* compilers available to me.
+
+2003-12-18 Michael Chastain <mec.gnu@mindspring.com>
+
+ * hppam3-nat.c: Delete obsolete file.
+ * hppab-nat.c: Delete obsolete file.
+ * Makefile.in: Remove references.
+
+2003-12-17 Jeff Johnston <jjohnstn@redhat.com>
+
+ * symtab.c (decode_line_spec): Change call to decode_line_1.
+
+2003-12-17 Jeff Johnston <jjohnstn@redhat.com>
+
+ * linespec.h (decode_line_1): Add new not_found_ptr parameter.
+ * linespec.c (decode_line_1): Add new parameter. Pass on
+ new parameter to decode_variable and symtab_from_filename
+ functions.
+ (decode_variable): Add new not_found_ptr parameter. Throw exception
+ rather than failing if the not_found_ptr is non-null and the
+ function is not found.
+ (symtab_from_filename): Add new not_found_ptr parametr. Throw
+ exception rather than failing if the not_found_ptr is non-null and
+ the source file is not found.
+ * breakpoint.c: Change all callers of decode_line_1 to add default
+ extra parameter for decode_line_1 calls.
+ * tracepoint.c: Ditto.
+ * cli/cli-cmds.c: Ditto.
+
+2003-12-16 J. Brobecker <brobecker@gnat.com>
+
+ * irix5-nat.c: Include mips-tdep.h.
+
+2003-12-16 Mark Kettenis <kettenis@gnu.org>
+
+ * solib.h (SOLIB_CREATE_CATCH_LOAD_HOOK)
+ (SOLIB_CREATE_CATCH_UNLOAD_HOOK, SOLIB_LOADED_LIBRARY_PATHNAME)
+ (SOLIB_UNLOADED_LIBRARY_PATHNAME, SOLIB_HAVE_LOAD_EVENT)
+ (SOLIB_HAVE_UNLOAD_EVENT): Remove defines.
+
+ * blockframe.c (inside_main_func): Don't treat a zero PC specially.
+ Needed to fix PR backtrace/1476.
+
+2003-12-16 David Carlton <carlton@kealia.com>
+
+ * cp-support.c (class_name_from_physname): Add DMGL_PARAMS.
+ (method_name_from_physname): Ditto.
+
+2003-12-15 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-sol2-tdep.c (i386_sol2_gregset_reg_offset): New variable.
+ (i386_sol2_init_abi): Initialize TDEP->gregset_reg_offset,
+ TDEP->gregset_num_regs, TDEP->sizeof_gregset and
+ TDEP->sizeof_fpregset.
+ * config/i386/i386sol2.mh (XM_FILE): Set to xm-i386.h.
+ (XM_CLIBS): Remove.
+ (NATDEPFILES): Remove core-regset.o and corelow.o.
+ * config/i386/i386sol2.mt (TDEPFILES): Add corelow.o.
+
+2003-12-14 Mark Kettenis <kettenis@gnu.org>
+
+ * proc-api.c (procfs_note): Add format string to fprintf call.
+
+ * i386-tdep.c (i386_analyze_frame_setup): Add missing encodings
+ for `subl' and `xorl' instructions.
+
+2003-12-13 Jim Blandy <jimb@redhat.com>
+
+ * dwarf2read.c (dwarf2_add_member_fn, read_structure_scope):
+ Replace uses of DEPRECATED_STREQ and DEPRECATED_STREQN with calls
+ to strcmp and strncmp.
+
+ * osabi.c (gdbarch_init_osabi): Reformat error message with better
+ line breaks.
+
+2003-12-13 Mark Kettenis <kettenis@gnu.org>
+
+ * blockframe.c (inside_main_func): Reformat. Introduce new local
+ variables to prevent long lines. Update comments to reflect
+ reality.
+
+2003-12-12 Kevin Buettner <kevinb@redhat.com>
+
+ From David Mosberger <davidm@hpl.hp.com>:
+ * libunwind-frame.c (unw_find_dyn_list_p): Replace most arguments
+ with a single unw_dyn_info_t pointer.
+ (libunwind_find_dyn_list): Likewise.
+ * libunwind-frame.h: Likewise.
+ * ia64-tdep.c (ia64_find_unwind_table): Switch to using
+ UNW_INFO_FORMAT_REMOTE_TABLE so we can avoid having to read in the
+ entire unwind-table at once. Support for this table format has
+ been added to libunwind v0.95.
+ (ia64_find_proc_info_x): Adjust for remote-unwind-table changes.
+ (ia64_get_dyn_info_list): Adjust for interface change for
+ libunwind_find_dyn_list().
+
+2003-12-12 Jeff Johnston <jjohnstn@redhat.com>
+
+ * breakpoint.c (breakpoint_enabled): New function to test whether
+ breakpoint is active and enabled.
+ (insert_bp_location, insert_breakpoints): Call new function to test
+ for enabled breakpoint.
+ (remove_breakpoint, breakpoint_here_p, breakpoint_thread_match)
+ (bpstat_should_step, bpstat_have_active_hw_watchpoints)
+ (disable_breakpoints_in_shlibs, hw_watchpoint_used_count)
+ (disable_watchpoints_before_interactive_call_start)
+ (breakpoint_re_set_one): Ditto.
+ (bpstat_stop_status): Use new function and simplify test.
+
+2003-12-11 Mark Kettenis <kettenis@gnu.org>
+
+ * observer.c (observer_test_first_observer)
+ (observer_test_second_observer, observer_test_third_observer):
+ Don't define as `static'.
+ (observer_test_first_notification_function)
+ (observer_test_second_notification_function)
+ (observer_test_third_notification_function): Likewise.
+
+2003-12-10 Mark Kettenis <kettenis@gnu.org>
+
+ * solib.h (SOLIB_UNLOADED_LIBRARY_PATHNAME): Define as "" instead
+ of (0).
+
+2003-12-11 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
+
+ * MAINTAINERS (write after approval): Add myself.
+
+2003-12-11 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
+
+ * config/h8300/tm-h8300.h (h8300hmode): Remove.
+ (h8300hmode): Likewise.
+ (h8300smode): Likewise.
+ (h8300sxmode): Likewise.
+ (h8300_normal_mode): Likewise.
+ (GDB_TARGET_IS_H8300): Likewise.
+ (NUM_REALREGS): Use TARGET_ARCHITECTURE->mach instead of global.
+ * h8300-tdep.c (is_h8300hmode): New function.
+ (is_h8300smode): New function.
+ (is_h8300sxmode): New function.
+ (is_h8300_normal_mode): New function.
+ (BINWORD): Use new functions.
+ (h8300_examine_prologue): Likewise.
+ (h8300_print_register): Likewise.
+ (h8300_print_registers_info): Likewise.
+ (h8300_register_type): Likewise.
+ (h8300_gdbarch_init): Remove use of globals like h8300hmode.
+ * remote-e7000.c (e7000_open): Remove use of GDB_TARGET_IS_H8300.
+ (e7000_fetch_registers): Use TARGET_ARCHITECTURE->mach instead.
+ (e7000_wait): Use TARGET_ARCHITECTURE->mach instead of global.
+
+2003-12-10 J. Brobecker <brobecker@gnat.com>
+
+ * frame.c (select_frame): Get the current frame PC using
+ get_frame_address_in_block() instead of get_frame_pc().
+ * stack.c (get_frame_language): Likewise.
+
+2003-12-08 Kevin Buettner <kevinb@redhat.com>
+
+ * remote.c (remote_open_1, remote_cisco_open): Avoid closing
+ remote_desc more than once.
+
+2003-12-07 Andrew Cagney <cagney@redhat.com>
+
+ * defs.h (DEPRECATED_STREQN, DEPRECATED_STREQ): Simplify by
+ directly calling strcmp equivalents. Add disclaimer.
+
+2003-12-06 Andrew Cagney <cagney@redhat.com>
+
+ * remote.c (remote_fetch_registers): For short packets, explicitly
+ supply a zero value. Use regcache_raw_supply. Fix suggested by
+ Jonathan Larmour.
+
+2003-12-05 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-tdep.c (ia64_gdbarch_init): Set up the gdbarch long double
+ format to be the i387 extended float format which is used for
+ long doubles stored in memory.
+
+2003-12-05 Mark Kettenis <kettenis@gnu.org>
+
+ From Ulrich Weigand <weigand@informatik.uni-erlangen.de>:
+ * dwarf2-frame.c (dwarf2_frame_cache): Use the untranslated RA
+ column instead of translating it.
+
+2003-12-04 Michael Chastain <mec.gnu@mindspring.com>
+
+ Partial fix for PR c++/1465.
+ Fix for PR c++/1377.
+ * cp-support.h (cp_lookup_rtti_type): New function.
+ * cp-support.c (cp_lookup_rtti_type): New function.
+ * gnu-v2-abi.c: Update copyright years.
+ (gnuv2_rtti_type): Call cp_lookup_rtti_type.
+ * gnu-v3-abi.c: Update copyright years.
+ (gnuv3_rtti_type): Call cp_lookup_rtti_type.
+
+2003-12-04 J. Brobecker <brobecker@gnat.com>
+
+ * stabsread.c (read_type): Save a reference to types that are defined
+ as cross references to other types.
+
+2003-12-02 Roland McGrath <roland@redhat.com>
+
+ * thread-db.c (enable_thread_event): Change return type to
+ td_err_e. Return TD_OK or error code.
+ (enable_thread_event_reporting): Update callers.
+
+2003-12-03 Ian Lance Taylor <ian@wasabisystems.com>
+
+ * NEWS: Mention new C++ demangler code.
+
+2003-12-03 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-linux-nat.c (store_register, fetch_register): Convert
+ between ptrace and regcache's wordsize.
+ (ppc_register_u_addr): Use the ptrace wordsize.
+
+2003-12-02 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (frv_gdbarch_init): Add case for fr550.
+
+2003-12-02 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2read.c (dwarf_info_offset, dwarf_abbrev_offset)
+ (dwarf_line_offset, dwarf_pubnames_offset, dwarf_aranges_offset)
+ (dwarf_loc_offset, dwarf_macinfo_offset, dwarf_str_offset)
+ (dwarf_ranges_offset, dwarf_frame_offset, dwarf_eh_frame_offset):
+ Delete.
+ (dwarf2_read_section): Remove offset and size arguments. Use
+ bfd_get_section_size_before_reloc and sectp->filepos.
+ (dwarf2_has_info): Clear section variables instead of offsets.
+ (dwarf2_locate_sections): Don't initialize the deleted variables.
+ (dwarf2_build_psymtabs): Update calls to dwarf2_read_section.
+ (dwarf2_build_psymtabs_easy): Likewise.
+ * dwarf2-frame.c (dwarf_frame_offset, dwarf_frame_size)
+ (dwarf_eh_frame_offset, dwarf_eh_frame_size): Remove extern
+ declarations.
+ (dwarf2_read_section): Update prototype.
+ (dwarf2_build_frame_info): Update calls to dwarf2_read_section.
+ Use bfd_get_section_size_before_reloc instead of global size
+ variables.
+
+2003-12-01 Michael Chastain <mec.gnu@mindspring.com>
+
+ * dwarfread.c: Update documentation on the state of dwarf-1.
+
+2003-12-01 Andrew Cagney <cagney@redhat.com>
+
+ Obsolete old MIPS SVr3 and SVr4 systems.
+ * NEWS: Mention obsoleted systems.
+ * configure.tgt: Mark mips*-*-sysv4* as obsolete.
+ * configure.host: Mark mips-dec-*, mips-little-*, mips-sony-*,
+ mips-*-sysv4*, mips-*-sysv*, mips-*-riscos* and mips-*-mach3* as
+ obsolete.
+ * config/mips/decstation.mh: Mark as obsolete.
+ * config/mips/littlemips.mh: Mark as obsolete.
+ * config/mips/nm-mips.h: Mark as obsolete.
+ * config/mips/xm-mips.h: Mark as obsolete.
+ * config/mips/news-mips.mh: Mark as obsolete.
+ * config/mips/nm-news-mips.h: Mark as obsolete.
+ * config/mips/riscos.mh: Mark as obsolete.
+ * config/mips/nm-riscos.h: Mark as obsolete.
+ * config/mips/xm-riscos.h: Mark as obsolete.
+ * config/mips/mipsv4.mt: Mark as obsolete.
+ * config/mips/tm-mipsv4.h: Mark as obsolete.
+ * config/mips/xm-mipsv4.h: Mark as obsolete.
+
+ Obsolete old m68k systems.
+ * configure.host: Mark m68*-sun-*, m68*-sun-sunos4*,
+ m68*-sun-sunos3*, m68*-motorola-*, m68*-*-sysv4*, m68*-*-lynxos*,
+ m68*-bull*-sysv*, m68*-att-*, m680[01]0-sun-sunos4*, and
+ m680[01]0-sun-sunos3* as obsolete.
+ * configure.tgt: Mark m68*-*-lynxos*, m68*-*-sunos3*,
+ m68*-*-sunos4*, m68*-*-sysv4*, m68000-*-sunos3*, m68000-*-sunos4*,
+ m68*-bull-sysv*, m68*-att-*, and m68*-motorola-*, as obsolete.
+ * config/m68k/sun3os4.mh: Mark file obsolete.
+ * config/m68k/xm-sun3os4.h: Mark file obsolete.
+ * config/m68k/sun3os3.mh: Mark file obsolete.
+ * config/m68k/nm-sun3.h: Mark file obsolete.
+ * config/m68k/xm-sun3.h: Mark file obsolete.
+ * config/m68k/sun2os4.mh: Mark file obsolete.
+ * config/m68k/sun2os3.mh: Mark file obsolete.
+ * config/m68k/nm-sun2.h: Mark file obsolete.
+ * config/m68k/xm-sun2.h: Mark file obsolete.
+ * config/m68k/m68kv4.mh: Mark file obsolete.
+ * config/m68k/nm-sysv4.h: Mark file obsolete.
+ * config/m68k/xm-m68kv4.h: Mark file obsolete.
+ * config/m68k/m68klynx.mh: Mark file obsolete.
+ * config/m68k/nm-m68klynx.h: Mark file obsolete.
+ * config/m68k/dpx2.mh: Mark file obsolete.
+ * config/m68k/xm-dpx2.h: Mark file obsolete.
+ * config/m68k/nm-dpx2.h: Mark file obsolete.
+ * config/m68k/delta68.mh: Mark file obsolete.
+ * config/m68k/xm-delta68.h: Mark file obsolete.
+ * config/m68k/nm-delta68.h: Mark file obsolete.
+ * config/m68k/3b1.mh: Mark file obsolete.
+ * config/m68k/xm-3b1.h: Mark file obsolete.
+ * config/m68k/sun3os4.mt: Mark file obsolete.
+ * config/m68k/tm-sun3os4.h: Mark file obsolete.
+ * config/m68k/sun3os3.mt: Mark file obsolete.
+ * config/m68k/tm-sun3.h: Mark file obsolete.
+ * config/m68k/sun2os4.mt: Mark file obsolete.
+ * config/m68k/tm-sun2os4.h: Mark file obsolete.
+ * config/m68k/sun2os3.mt: Mark file obsolete.
+ * config/m68k/tm-sun2.h: Mark file obsolete.
+ * config/m68k/m68kv4.mt: Mark file obsolete.
+ * config/m68k/tm-m68kv4.h: Mark file obsolete.
+ * config/m68k/m68klynx.mt: Mark file obsolete.
+ * config/m68k/tm-m68klynx.h: Mark file obsolete.
+ * config/m68k/dpx2.mt: Mark file obsolete.
+ * config/m68k/tm-dpx2.h: Mark file obsolete.
+ * config/m68k/delta68.mt: Mark file obsolete.
+ * config/m68k/tm-delta68.h: Mark file obsolete.
+ * config/m68k/3b1.mt: Mark file obsolete.
+ * config/m68k/tm-3b1.h: Mark file obsolete.
+
+2003-11-29 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (MAX_CLASSES): Remove macro.
+ (x86_64_reg_class): Remove enum.
+ (merge_classes, classify_argument, examine_argument): Remove
+ functions.
+ (INT_REGS, SSE_REGS): Remove macros.
+ (x86_64_push_arguments): Remove function.
+ (amd64_push_arguments): New function.
+ (x86_64_push_dummy_call): Call amd64_push_arguments instead of
+ x86_64_push_arguments.
+
+2003-11-28 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (x86_64_frame_cache): Don't bail out if %rbp is
+ zero. Reorganize code a bit.
+
+2003-11-27 Mark Kettenis <kettenis@gnu.org>
+
+ * dwarf2-frame.c: Fix another comment.
+
+ * x86-64-tdep.c (RET_INT_REGS, RET_SSE_REGS): Remove defines.
+ (x86_64_use_struct_convention, x86_64_extract_return_value,
+ x86_64_store_return_value): Remove.
+ (amd64_reg_class): New enum.
+ (amd64_merge_classes, amd64_classify_aggregate, amd64_classify,
+ amd64_return_value): New functions.
+ (x86_64_init_abi): Don't set extract_return_value,
+ store_return_value and use_struct_convention. Set return_value to
+ amd64_return_value.
+ * i387-tdep.h (i387_return_value): New prototype.
+ * i387-tdep.c (i387_return_value): New function.
+
+ * dwarf2-frame.c: Fix some comments and whitespace problems.
+
+ * i386nbsd-tdep.c: Don't include "gdbtypes.h". Include
+ "gdb_assert.h" and "gdb_string.h".
+ (i386nbsd_r_reg_offset): Rename from regmap.
+ (SIZEOF_STRUCT_REG): Remove.
+ (i386nbsd_supply_reg, fetch_core_registers,
+ fetch_elfcore_registers, i386nbsd_core_fns, i386nbsd_elfcore_fns):
+ Remove.
+ (i386nbsd_aout_supply_regset,
+ i386nbsd_aout_regset_from_core_section): New functions.
+ (i386nbsd_sc_reg_offset): Don't explicitly specify size of array.
+ (i386nbsd_init_abi): Initialize TDEP->gregset_reg_offset,
+ TDEP->gregset_num_regs amd sizeof_gregset. Use ARRAY_SIZE to
+ initialize TDEP->sc_num_regs.
+ (i386nbsdaout_init_abi): New function.
+ (i386nbsdelf_init_abi): Remove initialization of
+ TDEP->num_xmm_regs. Don't set num_regs here.
+ (_initialize_i386nbsd_tdep): Don't call add_core_fns. Use
+ i386nbsd_aout_init to register NetBSD a.out OS/ABI.
+
+ * osabi.c (generic_elf_osabi_sniff_abi_tag_sections): Use
+ .note.netbsdcore.procinfo section to recognize NetBSD core files.
+
+2003-11-26 Michael Chastain <mec.gnu@mindspring.com>
+
+ * cp-abi.c: Update copyright years.
+
+2003-11-25 Andrew Cagney <cagney@redhat.com>
+
+ * thread-db.c (enable_thread_event): New function. Ensure that BP
+ is a code address.
+ (enable_thread_event_reporting): Use enable_thread_event.
+
+2003-11-25 Michael Snyder <msnyder@redhat.com>
+
+ * mips-tdep.c (mips_o64_extract_return_value): Correct for
+ NUM_REGS (see changes 2003-06-21).
+ (mips_eabi_extract_return_value): Ditto.
+
+2003-11-25 Andrew Cagney <cagney@redhat.com>
+
+ * infrun.c: Don't include "exec.h".
+ (handle_inferior_event): Pass current_target, instead of exec_ops,
+ to SOLIB_ADD. Add comments.
+ * Makefile.in (infrun.o): Update dependencies.
+
+2003-11-24 Daniel Jacobowitz <drow@mvista.com>
+
+ * NEWS: Mention improved location expression support.
+
+2003-11-23 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (infrun.o): Update dependencies.
+ * infrun.c: Include "exec.h".
+ (handle_inferior_event): Pass exec_ops to SOLIB_ADD.
+
+2003-11-23 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (frame_unwind_signed_register): Delete function.
+ * frame.h (frame_unwind_register_signed): Delete declaration.
+ * mips-tdep.c (mips_frame_saved_pc): Use frame_unwind_register_signed.
+
+ * arch-utils.h (generic_cannot_extract_struct_value_address):
+ Delete declaration.
+
+ * defs.h (DEPRECATED_STREQN): Rename STREQN.
+ (DEPRECATED_STREQ): Rename STREQ.
+ * ada-exp.y, ada-lang.c, ada-lex.l, coffread.c: Update.
+ * config/mips/tm-irix5.h, config/mips/tm-irix6.h: Update.
+ * config/mips/tm-mipsv4.h, config/sparc/tm-sun4sol2.h: Update.
+ * dbxread.c, dwarf2read.c, dwarfread.c, environ.c: Update.
+ * eval.c, exec.c, f-lang.c, hppa-tdep.c, hpread.c: Update.
+ * jv-exp.y, language.c, m2-exp.y, mcore-rom.c: Update.
+ * mdebugread.c, mipsread.c, objc-exp.y, objfiles.c: Update.
+ * p-exp.y, p-typeprint.c, p-valprint.c, rs6000-nat.c: Update.
+ * source.c, sparc-tdep.c, stack.c, target.c: Update.
+
+ * symfile.c (symbol_file_command): Replace STREQ with strcmp.
+ * elfread.c (elf_symtab_read): Delete STREQ from comment.
+
+2003-11-22 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (deprecated_frame_xmalloc): Delete function.
+ (deprecated_set_frame_extra_info_hack): Delete function.
+ (deprecated_set_frame_saved_regs_hack): Delete function.
+ * frame.h (deprecated_frame_xmalloc): Delete declaration.
+ (deprecated_set_frame_extra_info_hack): Delete declaration.
+ (deprecated_set_frame_saved_regs_hack): Delete declaration.
+ * mcore-tdep.c (analyze_dummy_frame): Instead of
+ deprecated_frame_xmalloc, deprecated_set_frame_saved_regs_hack,
+ and deprecated_set_frame_extra_info_hack use
+ deprecated_frame_xmalloc_with_cleanup.
+ * mn10300-tdep.c (analyze_dummy_frame): Ditto.
+ * mips-tdep.c (mips_init_extra_frame_info): Delete call to
+ deprecated_set_frame_saved_regs_hack.
+
+ * mips-tdep.c (mips_frame_chain): Delete call to
+ deprecated_inside_entry_file.
+
+ * frame.h (deprecated_set_frame_next_hack): Delete declaration.
+ (deprecated_set_frame_prev_hack): Delete declaration.
+ * frame.c (deprecated_set_frame_next_hack): Delete function.
+ (deprecated_set_frame_prev_hack): Delete function.
+ * mcore-tdep.c (analyze_dummy_frame): Delete calls to
+ "deprecated_set_frame_next_hack" and
+ "deprecated_set_frame_prev_hack".
+ * mn10300-tdep.c (analyze_dummy_frame): Ditto.
+
+ * mips-tdep.c (mips_register_convertible): Delete function.
+ (mips_register_convert_to_virtual): Delete function.
+ (mips_register_convert_to_raw): Delete function.
+ (mips_gdbarch_init): Do not set "deprecated_register_convertible",
+ "deprecated_register_convert_to_virtual", or
+ "deprecated_register_convert_to_raw".
+ (mips_pseudo_register_write, mips_pseudo_register_read): Handle
+ 32/64 cooked to raw register conversions.
+
+ * frame.c (deprecated_get_frame_context): Delete function.
+ (deprecated_set_frame_context): Delete function.
+ (struct frame_info): Delete member "context".
+ * frame.h (deprecated_get_frame_context): Delete declaration.
+ (deprecated_set_frame_context): Delete declaration.
+
+ * procfs.c (procfs_wait): Delete FAULTED_USE_SIGINFO comment.
+ * config/sparc/tm-sun4sol2.h (FAULTED_USE_SIGINFO): Delete macro.
+ * config/i386/tm-i386sol2.h (FAULTED_USE_SIGINFO): Delete macro.
+ * config/alpha/nm-osf2.h (FAULTED_USE_SIGINFO): Delete macro.
+
+ * mips-tdep.c (SIGFRAME_REG_SIZE): Delete macro.
+ (mips_find_saved_regs): Replace SIGFRAME_REG_SIZE with
+ mips_regsize.
+ (mips_dump_tdep): Do not print SIGFRAME_REG_SIZE.
+ * config/mips/tm-irix6.h (SIGFRAME_REG_SIZE): Delete macro.
+ * config/mips/tm-irix5.h: Update copyright.
+ (SIGFRAME_REG_SIZE): Delete macro.
+
+ * hppa-tdep.c (hppa_value_returned_from_stack): Delete function.
+ * config/pa/tm-hppa.h (hppa_value_returned_from_stack): Delete
+ declaration.
+ (DEPRECATED_VALUE_RETURNED_FROM_STACK): Delete macro.
+ * infcall.c (call_function_by_hand): Delete #ifdef
+ DEPRECATED_VALUE_RETURNED_FROM_STACK code.
+ * infcmd.c (print_return_value): Ditto.
+
+ * mips-tdep.c (skip_prologue_using_sal): New function.
+ (mips32_skip_prologue, mips16_skip_prologue): Use
+ skip_prologue_using_sal to get an upper bound on the search.
+
+ * config/powerpc/tm-linux.h (PROLOGUE_FIRSTLINE_OVERLAP): Delete
+ #if 0'ed macro.
+ * infrun.c (step_into_function): Delete #ifdef
+ PROLOGUE_FIRSTLINE_OVERLAP code.
+ * symtab.c (find_function_start_sal): Ditto.
+
+ * remote-rdp.c: Update copyright.
+ (rdp_init): #if 0 references to "target_byte_order".
+
+ * mips-tdep.c (mips_o32_store_return_value): Delete function.
+ (mips_o32_return_value): Replace mips_o32_xfer_return_value.
+ (mips_o32_extract_return_value): Delete function.
+ (mips_n32n64_return_value): Replace mips_n32n64_xfer_return_value.
+ (mips_n32n64_extract_return_value): Delete function.
+ (mips_n32n64_store_return_value): Delete function.
+ (mips_gdbarch_init): For o32 and n32n64, set "return_value"
+ instead of "store_return_value", "extract_return_value", and
+ "use_struct_convention".
+ (mips_n32n64_use_struct_convention): Delete function.
+
+2003-11-21 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (frv_frame_this_id): Eliminate call to
+ inside_entry_func().
+
+2003-11-20 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_extract_return_value,
+ i386_store_return_value): Add gdbarch argument. Use it instead of
+ determining it from REGCACHE. Remove recursive call for
+ structures with a single member.
+ (i386_use_struct_convention): Remove.
+ (i386_reg_struct_return_p): New function.
+ (i386_return_value): New function.
+ (i386_gdbarch_init): Set return_value, don't set
+ extract_return_value, store_return_value and
+ use_struct_convention.
+ * x86-64-tdep.c (x86_64_init_abi): Set return_value to NULL.
+
+2003-11-20 Jim Blandy <jimb@redhat.com>
+
+ * osabi.c (_initialize_gdb_osabi): Don't return before registering
+ the 'set osabi' and 'show osabi' commands.
+
+2003-11-19 Mark Kettenis <kettenis@gnu.org>
+
+ * frame.c (get_prev_frame): Use result from
+ get_frame_address_in_block instead of get_frame_pc as argument to
+ inside_main_func. Fixes PR backtrace/1435.
+
+2003-11-19 Andrew Cagney <cagney@redhat.com>
+
+ * stack.c (return_command): Handle "void", "legacy" and "unknown
+ location" return values separatly.
+ * values.c (using_struct_return): Return 0 for a "void" return
+ type. Mention "register_value_being_returned".
+ (register_value_being_returned): Mention "using_struct_return".
+
+2003-11-19 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2read.c (offreg, basereg, isderef, frame_base_reg)
+ (frame_base_offset): Delete.
+ (read_func_scope): Delete call to decode_locdesc.
+ (decode_locdesc): Update comments. Don't set the removed variables.
+ Complain for DW_OP_reg* not at the end. Remove DW_OP_breg* and
+ DW_OP_fbreg support.
+
+2003-11-18 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2read.c (optimized_out, islocal): Remove.
+ (decode_locdesc): Update comments. Don't set optimized_out
+ or islocal.
+
+2003-11-17 Jeff Johnston <jjohnstn@redhat.com>
+ David Mosberger <davidm@hpl.hp.com>
+
+ * ia64-tdep.c: Include elf.h.
+ [HAVE_LIBUNWIND_IA64_H]: Include libunwind-frame.h and
+ libunwind-ia64.h.
+ (ia64_rse_slot_num, ia64_rse_skip_regs): New for libunwind support.
+ (ia64_gdb2uw_regnum, ia64_uw2gdb_regnum): Ditto.
+ (ia64_is_fpreg, ia64_access_reg): Ditto.
+ (ia64_access_fpreg, ia64_access_mem): Ditto.
+ (get_kernel_table): Ditto.
+ (ia64_find_unwind_table): Ditto.
+ (ia64_find_proc_info_x, ia64_put_unwind_info): Ditto.
+ (ia64_get_dyn_info_list, ia64_libunwind_frame_this_id): Ditto.
+ (ia64_libunwind_frame_prev_register): Ditto.
+ (ia64_libunwind_frame_sniffer): Ditto.
+ (ia64_gdbarch_init)[HAVE_LIBUNWIND_IA64_H]: Add libunwind frame
+ sniffer. Register libunwind functions needed by generic
+ libunwind frame code using libunwind_frame_set_descr().
+
+2003-11-16 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (re_enable_breakpoints_in_shlibs): Only re-enable a
+ bp_shlib_disabled breakpoint if there is a shared library mapped
+ at its expected address.
+
+2003-11-16 Andrew Cagney <cagney@redhat.com>
+
+ * configure.tgt: Delete mips*tx39*-elf*.
+ * config/mips/tm-tx39.h: Delete file.
+ * config/mips/tx39.mt: Delete file.
+ * config/mips/tx39.mt: Delete file.
+
+ * mips-tdep.h (deprecated_mips_set_processor_regs_hack): Declare.
+ * remote-mips.c (common_open): Instead of
+ "mips_read_register_type" and "mips_set_processor_type_command"
+ call "deprecated_mips_set_processor_regs_hack".
+ * config/mips/tm-mips.h (mips_read_processor_type): Delete
+ declaration.
+ (mips_set_processor_type_command): Delete declaration.
+ * mips-tdep.c (mips_gdbarch_init): Update comment.
+ (mips_dump_tdep): Do not print MIPS_REGISTER_NAMES.
+ (mips_set_processor_type): Delete function.
+ (NUM_MIPS_PROCESSOR_REGS): Define.
+ (mips_show_processor_type_command): Delete function.
+ (mips_set_processor_type_command): Delete function.
+ (tmp_mips_processor_type): Delete.
+ (mips_processor_type): Delete.
+ (mips_processor_type_table): Delete.
+ (mips_r3051_reg_names): Delete.
+ (mips_r3081_reg_names): Delete.
+ (mips_lsi33k_reg_names): Delete.
+ (mips_processor_reg_names): Delete.
+ (mips_read_processor_type): Delete function.
+ (deprecated_mips_set_processor_regs_hack): New function.
+ (struct gdbarch_tdep): Add member "mips_processor_reg_names".
+ (mips_register_name): Get the processor names from the tdep.
+ (mips_tx39_reg_names): New array.
+ (mips_generic_reg_names): Wire to a standard set of names.
+ (mips_gdbarch_init): Set "mips_processor_reg_names".
+ * config/mips/tm-irix5.h (MIPS_REGISTER_NAMES): Delete macro.
+ * config/mips/tm-mips.h (MIPS_REGISTER_NAMES): Delete macro.
+ * config/mips/tm-tx39.h (MIPS_REGISTER_NAMES): Delete macro.
+
+2003-11-16 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (struct gdbarch_tdep): Add field "regnum".
+ (mips_fpa0_regnum, mips_regnum): New function.
+ (mips_gdbarch_init): Fill in the "regnum" fields.
+ * mips-tdep.h (struct mips_regnum): Define.
+ (mips_regnum): Declare.
+ * config/mips/tm-mips.h (BADVADDR_REGNUM): Delete macro.
+ (LO_REGNUM, HI_REGNUM, BADVADDR_REGNUM): Ditto.
+ (CAUSE_REGNUM, PC_REGNUM, FP0_REGNUM): Ditto.
+ (FCRCS_REGNUM, FCRIR_REGNUM, FPA0_REGNUM): Ditto.
+ * config/mips/tm-irix6.h (FP0_REGNUM): Delete macro.
+ (PC_REGNUM, CAUSE_REGNUM, BADVADDR_REGNUM): Ditto.
+ (HI_REGNUM, LO_REGNUM, FCRCS_REGNUM, FCRIR_REGNUM): Ditto.
+ * config/mips/tm-irix5.h (FP0_REGNUM): Delete macro.
+ (PC_REGNUM, CAUSE_REGNUM, BADVADDR_REGNUM): Ditto.
+ (HI_REGNUM, LO_REGNUM, FCRCS_REGNUM, FCRIR_REGNUM): Ditto.
+ * remote-mips.c: Include "mips-tdep.h". Update.
+ * mipsnbsd-tdep.c: Update.
+ * mipsv4-nat.c: Update.
+ * mips-tdep.c: Update.
+ * mips-nat.c: Update.
+ * mips-linux-tdep.c: Update.
+ * mips-linux-nat.c: Update.
+ * irix5-nat.c: Update.
+ * dve3900-rom.c: Include "mips-tdep.h". Update.
+ (ignore_packet): Supress GCC warning.
+ * config/mips/nm-riscos.h: Update.
+
+2003-11-16 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c: Replace DEPRECATED_REGISTER_RAW_SIZE with
+ register_size.
+ (mips_register_raw_size): Delete function.
+ (mips_register_type): Handle "mips64_transfers_32bit_regs_p".
+ (mips_gdbarch_init): Do not set "deprecated_register_raw_size".
+ Check and set "mips64_transfers_32bit_regs_p".
+ (struct gdbarch_tdep): Add "mips64_transfers_32bit_regs_p".
+ (mips_register_convertible): Check the architecture's
+ "mips64_transfers_32bit_regs_p".
+ (set_mips64_transfers_32bit_regs): New function.
+ (_initialize_mips_tdep): Use "add_setshow_cmd" when adding the
+ "set remote-mips64-transfers-32bit-regs" command. Specify
+ set_mips64_transfers_32bit_regs as the set function.
+ * Makefile.in (dve3900-rom.o, remote-mips.o): Update dependencies.
+
+2003-11-16 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.h (i386_supply_gregset): Provide prototype.
+ * i386-tdep.c (i386_supply_gregset): Make public.
+
+2003-11-16 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (mips_register_byte): Delete function.
+ (mips_gdbarch_init): Do not set "deprecated_register_byte".
+ * config/mips/tm-mips.h (MIPS_REGISTER_BYTE): Delete macro.
+ * config/mips/tm-irix6.h (MIPS_REGISTER_BYTE): Delete macro.
+ * config/mips/tm-irix5.h (MIPS_REGISTER_BYTE): Delete macro.
+
+2003-11-16 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_extract_return_value): Don't use bfd_byte.
+
+2003-11-16 Andrew Cagney <cagney@redhat.com>
+
+ * config/mips/linux64.mt: Delete file.
+ * config/mips/tm-linux64.h: Delete file.
+ * config/mips/tm-mips64.h: Delete file.
+ * config/mips/embed64.mt: Delete file.
+ * config/djgpp/fnchange.lst: Update.
+ * configure.tgt: Delete explicit patterns for mipsisa64*-*-linux*,
+ mips64*-*-linux*, mips64*-*-*, and mipsisa64*-*-*.
+ * config/mips/tm-irix6.h: Update copyright. Include
+ "mips/tm-mips.h" instead of "mips/tm-mips64.h".
+ * mips-tdep.c (mips_dump_tdep): Do not print "OP_LDFPR" or
+ "OP_LDGPR".
+
+2003-11-15 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (mips_register_type): Simplify. Eliminate reference
+ to MIPS_REGISTER_TYPE. Make integer registers signed. Make IRIX
+ n32 registers 64 bit.
+ (mips_register_raw_size, mips_register_byte): For pseudo
+ registers, use the register's pseudo size and not the
+ corresponding raw register's size.
+ * config/mips/tm-mips64.h (MIPS_REGISTER_TYPE): Delete macro.
+ * config/mips/tm-mips.h (MIPS_REGISTER_TYPE): Delete macro.
+ * config/mips/tm-irix6.h: Don't #undef MIPS_REGISTER_TYPE.
+ * config/mips/tm-irix5.h (MIPS_REGISTER_TYPE): Delete macro.
+
+2003-11-15 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (struct gdbarch_tdep): Delete member
+ gdb_target_is_mips64.
+ (GDB_TARGET_IS_MIPS64): Delete macro.
+ (mips_gdbarch_init): Do not set tdep's gdb_target_is_mips64.
+ (mips_dump_tdep): Do not print GDB_TARGET_IS_MIPS64.
+ (mips_addr_bits_remove): Simplify.
+
+ * mips-tdep.c: Replace DEPRECATED_REGISTER_VIRTUAL_SIZE with
+ register_size.
+
+ Replace MIPS_REGSIZE with mips_regsize.
+ * mips-tdep.c (mips_regsize): New function.
+ * mips-tdep.h (mips_regsize): Declare.
+ * mipsnbsd-tdep.h (SIZEOF_STRUCT_FPREG): Update.
+ (SIZEOF_STRUCT_REG): Update.
+ * mipsnbsd-tdep.c (mipsnbsd_supply_reg): Update.
+ (mipsnbsd_fill_reg): Update.
+ (mipsnbsd_supply_fpreg): Update.
+ (mipsnbsd_fill_fpreg): Update.
+ (NBSD_MIPS_JB_ELEMENT_SIZE): Update.
+ * mips-tdep.c (mips_register_raw_size): Update.
+ (mips_register_type): Update.
+ (SIGFRAME_BASE): Update.
+ (SIGFRAME_PC_OFF): Update.
+ (SIGFRAME_REGSAVE_OFF): Update.
+ (SIGFRAME_FPREGSAVE_OFF): Update.
+ (SIGFRAME_REG_SIZE): Update.
+ (mips32_heuristic_proc_desc): Update.
+ (print_gp_register_row): Update.
+ (mips_dump_tdep): Do not print MIPS_REGSIZE.
+ * irix5-nat.c (supply_gregset): Update.
+ (fetch_core_registers): Update.
+ * config/mips/tm-mips64.h (MIPS_REGSIZE): Delete macro.
+ * config/mips/tm-irix6.h (MIPS_REGISTER_BYTE): Update.
+ * config/mips/tm-mips.h (MIPS_REGSIZE): Delete macro.
+ (MIPS_REGISTER_BYTE): Update.
+ * config/mips/tm-irix5.h (MIPS_REGISTER_BYTE): Update.
+
+2003-11-15 Andrew Cagney <cagney@redhat.com>
+
+ * config/sparc/tm-sparc.h (DEPRECATE_USE_REGISTER_NOT_ARG): Rename
+ USE_REGISTER_NOT_ARG.
+ * stabsread.c (define_symbol): Update.
+
+2003-11-15 Andrew Cagney <cagney@redhat.com>
+
+ * bcache.h (deprecated_bcache): Declare.
+ (bcache): Make returned buffer constant.
+ * bcache.c (deprecated_bcache): New function.
+ (bcache_data): New function.
+ (bcache): Call bcache data.
+ * symfile.c (add_psymbol_to_list): Use deprecated_bcache.
+ (add_psymbol_with_dem_name_to_list): Ditto.
+
+2003-11-15 Mark Kettenis <kettenis@gnu.org>
+
+ * glibc-tdep.h (struct gdbarch): Declare opaque.
+ (glibc_skip_solib_resolver): Adjust prototype.
+ * glibc-tdep.c (glibc_skip_solib_resolver): Adjust.
+ * arm-linux-tdep.c (arm_linux_skip_solib_resolver): Remove.
+ (arm_linux_init_abi): Set skip_solib_resolver.
+ * i386-linux-tdep.c (i386_linux_skip_solib_resolver): Remove.
+ (i386_linux_init_abi): Set skip_solib_resolver.
+ * config/arm/tm-linux.h (SKIP_SOLIB_RESOLVER): Remove.
+ (arm_linux_skip_solib_resolver): Remove prototype.
+ * config/i386/tm-linux.h (SKIP_SOLIB_RESOLVER): Remove.
+ (i386_linux_skip_solib_resolver): Remove prototype.
+
+2003-11-14 Mark Kettenis <kettenis@gnu.org>
+
+ * gdbarch.sh (skip_solib_resolver): Change into a multi-arch
+ function.
+ * gdbarch.c, gdbarch.h: Regenerate.
+ * infrun.c (handle_inferior_event): Call
+ gdbarch_skip_solib_resolver instead of SKIP_SOLIB_RESOLVER.
+ * arch-utils.c (generic_in_solib_call_trampoline): Adjust function
+ definition.
+ * arch-utils.h (generic_in_solib_call_trampoline): Adjust function
+ prototype.
+
+2003-11-14 Jeff Johnston <jjohnstn@redhat.com>
+
+ * libunwind-frame.c: New file.
+ * libunwind-frame.h: New file.
+ * acconfig.h (HAVE_LIBUNWIND): #undef reference added.
+ * configure.in: Add --with-libunwind option support. Define
+ HAVE_LIBUNWIND if libunwind support selected / defaulted.
+ Also check for libunwind.h and libunwind-ia64.h headers.
+ * configure: Regenerated.
+ * Makefile.in: Add support for libunwind-frame.o.
+ * config.in: Regenerated.
+
+2003-11-14 Jeff Johnston <jjohnstn@redhat.com>
+
+ * config/ia64/nm-linux.h (NATIVE_XFER_UNWIND_TABLE): New macro to
+ set up the ia64 linux native target method for getting the kernel
+ unwind table.
+ * ia64-linux-nat.c (ia64_linux_xfer_unwind_table): New function.
+ * inftarg.c (child_xfer_partial): Enable section of code to
+ handle TARGET_OBJECT_UNWIND_TABLE.
+ * target.h (target_object): Add new TARGET_OBJECT_UNWIND_TABLE macro.
+
+2003-11-14 Ian Lance Taylor <ian@wasabisystems.com>
+
+ * config/arm/nbsd.mt (TM_FILE): Define.
+ * config/arm/tm-nbsd.h: New file.
+
+2003-11-14 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (ppc-sysv-tdep.o): Update dependencies.
+ * ppc-sysv-tdep.c: Include "objfiles.h".
+ (ppc64_sysv_abi_push_dummy_call): Provide the
+ the FN's objfile when looking for the descriptor.
+
+ * ppc-linux-tdep.c (ppc_linux_init_abi): Set PPC64's
+ "name_of_malloc" to ".malloc".
+
+2003-11-13 Mark Kettenis <kettenis@gnu.org>
+
+ * config/i386/x86-64linux.mt (TDEPFILES): Add glibc-tdep.o.
+
+2003-11-13 David Carlton <carlton@kealia.com>
+
+ * cp-namespace.c (lookup_namespace_scope): Fix typo in comment.
+
+2003-11-13 Andrew Cagney <cagney@redhat.com>
+
+ * arch-utils.h (selected_architecture_name): Declare.
+ (selected_byte_order): Declare.
+ * arch-utils.c (selected_byte_order): New function.
+ (selected_architecture_name): New function.
+ (target_architecture_auto): Make static.
+ (set_architecture_string): Make static.
+ (target_byte_order): Make static.
+ (target_byte_order_auto): Make static.
+ * gdbarch.sh (TARGET_BYTE_ORDER, TARGET_ARCHITECTURE): Delete
+ non-multi-arch definition.
+ (TARGET_ARCHITECTURE_AUTO, TARGET_BYTE_ORDER_AUTO): Delete.
+ (target_byte_order, target_architecture): Delete declaration.
+ (target_byte_order_auto, target_architecture_auto): Ditto.
+ * gdbarch.h: Re-generate.
+ * remote-sim.c (gdbsim_open): Use "selected_architecture_name" and
+ "selected_byte_order".
+
+2003-11-13 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-linux-tdep.c (ppc_linux_return_value): Fix parameter order.
+
+2003-11-13 Jim Blandy <jimb@redhat.com>
+
+ * cp-namespace.c: Doc fix.
+
+2003-11-12 Michael Snyder <msnyder@redhat.com>
+
+ * sh64_tdep.c: Regularize some names.
+ (sh_sh64_register_name): Rename to sh64_register_name.
+ (sh_sh64_breakpoint_from_pc): Rename to sh64_breakpoint_from_pc.
+ (sh_sh64_register_byte): Rename to sh64_register_byte.
+ (sh_sh64_build_float_register_type):
+ Rename to sh64_build_float_register_type.
+ (sh_sh64_register_convert_to_virtual):
+ Rename to sh64_register_convert_to_virtual.
+ (sh_sh64_register_convert_to_raw):
+ Rename to sh64_register_convert_to_raw.
+
+ * sh64-tdep.c (translate_insn_rn, is_media_pseudo,
+ sh64_media_reg_base_num, sh64_compact_reg_base_num,
+ sh64_nofp_frame_init_saved_regs, sh64_push_arguments,
+ sh64_extract_return_value, sh64_show_media_regs,
+ sh64_show_compact_regs, sh_sh64_register_byte, sh64_register_type,
+ sh_sh64_register_convert_to_virtual, sh_sh64_register_convert_to_raw,
+ sh64_pseudo_register_read, sh64_pseudo_register_write,
+ sh64_do_pseudo_register, sh_compact_print_registers_info):
+ Delete unused variable 'tdep'.
+
+ * sh64-tdep.c: Coding standard and spelling comment fixes.
+ (sh64_extract_return_value): Replace deprecated_store_floating
+ with store_typed_floating.
+ (sh_sh64_register_convert_to_raw): Replace
+ deprecated_store_floating with store_typed_floating.
+ (sh_sh64_register_virtual_type): Convert to sh64_register_type.
+ (sh64_frame_chain, sh64_get_saved_pr, sh64_get_saved_register,
+ sh64_nofp_frame_init_saved_regs, sh64_push_arguments,
+ sh64_extract_struct_value_address, sh64_pop_frame,
+ sh64_extract_return_value, sh64_store_return_value,
+ sh_sh64_register_convert_to_virtual, sh64_pseudo_register_read,
+ sh_sh64_register_convert_to_raw, sh_pseudo_register_write):
+ Replace DEPRECATED_REGISTER_RAW_SIZE with register_size.
+ Replace DEPRECATED_REGISTER_VIRTUAL_TYPE with register_type.
+ (sh64_gdbarch_init): Don't set deprecated_register_bytes,
+ deprecated_register_virtual_type, deprecated_register_raw_size,
+ deprecated_max_register_raw_size, or
+ deprecated_max_register_virtual_size. Instead, just set
+ gdbarch_register_type.
+ (sh_sh64_register_raw_size): Delete.
+ (sh_sh64_register_virtual_size): Delete.
+
+2003-11-12 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2read.c (struct dwarf2_cu): New type.
+
+ (dwarf2_build_psymtabs_hard, psymtab_to_symtab_1): Create a
+ dwarf2_cu structure to pass down.
+
+ (scan_partial_symbols, add_partial_symbol, add_partial_namespace)
+ (add_partial_enumeration, locate_pdi_sibling, process_die)
+ (read_file_scope, read_func_scope)
+ (read_lexical_block_scope, dwarf2_get_pc_bounds)
+ (dwarf2_add_field, dwarf2_attach_fields_to_type)
+ (dwarf2_add_member_fn, dwarf2_attach_fn_fields_to_type)
+ (read_structure_scope, read_enumeration, read_array_type)
+ (read_common_block, read_namespace, read_tag_pointer_type)
+ (read_tag_ptr_to_member_type, read_tag_reference_type)
+ (read_tag_const_type, read_tag_volatile_type, read_tag_string_type)
+ (read_subroutine_type, read_typedef, read_base_type, read_comp_unit)
+ (read_die_and_children, read_die_and_siblings, dwarf2_read_section)
+ (dwarf2_read_abbrevs, dwarf2_lookup_abbrev, read_partial_die)
+ (read_full_die. read_attribute_value, read_attribute)
+ (read_address, dwarf_decode_line_header, dwarf_decode_lines)
+ (var_decode_location, new_symbol, dwarf2_const_value, die_type)
+ (die_containing_type, type_at_offset, tag_type_to_type)
+ (read_type_die, dwarf_base_type, decode_locdesc, dwarf_decode_macros)
+ (dwarf2_symbol_mark_computed): Accept and use a dwarf2_cu object.
+
+2003-11-12 Daniel Jacobowitz <drow@mvista.com>
+
+ PR breakpoints/1450
+ * breakpoint.c (insert_bp_location): Fix a logic error by returning
+ 0 after a catchpoint fails.
+
+2003-11-11 Michael Chastain <mec.gnu@mindspring.com>
+
+ * mips-tdep.c (msymbol_size): Delete.
+
+2003-11-07 Michael Chastain <mec@shout.net>
+
+ * symtab.h (struct minimal_symbol): Add size.
+ * dbxread.c: Use it.
+ * elfread.c: (record_minimal_symbol_and_info): Do not use info.
+ Rename to record_minimal_symbol.
+ (elf_symtab_read): Set MSYMBOL_SIZE explicitly.
+ * minsyms.c (prim_record_minimal_symbol_and_info): Initialize MSYMBOL_SIZE.
+ (install_minimal_symbols): Ditto.
+ * objfiles.c (terminate_minimal_symbol_table): Ditto.
+ * arm-tdep.c: Delete unused MSYMBOL_SIZE.
+ * m68hc11-tdep.c: Ditto.
+ * mips-tdep.c: Ditto.
+ * sh64-tdep.c: Ditto.
+
+2003-11-10 Michael Chastain <mec.gnu@mindspring.com>
+
+ * MAINTAINERS: Change my e-mail address.
+
+2003-11-10 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (return_value): Replace "inval" and "outval" with
+ "readbuf" and "writebuf".
+ * ppcnbsd-tdep.c (ppcnbsd_return_value): Ditto.
+ * d10v-tdep.c (d10v_return_value): Ditto.
+ * ppc-tdep.h (ppc_sysv_abi_return_value): Ditto.
+ (ppc_sysv_abi_broken_return_value): Ditto.
+ (ppc64_sysv_abi_return_value): Ditto.
+ * ppc-sysv-tdep.c (do_ppc_sysv_return_value): Ditto.
+ (ppc_sysv_abi_return_value): Ditto.
+ (ppc_sysv_abi_broken_return_value): Ditto.
+ (ppc64_sysv_abi_return_value): Ditto.
+ * values.c (register_value_being_returned): Update call.
+ * stack.c (return_command): Update call.
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+ * target.h (struct target_ops): Order xfer buffer parameters "read
+ write" not "write read".
+ * bfd-target.c (target_bfd_xfer_partial): Update.
+ * remote.c (remote_xfer_partial): Update.
+ * inftarg.c (child_xfer_partial): Update.
+ * target.c (default_xfer_partial): Update.
+ (target_read_partial, target_write_partial): Update.
+ (debug_to_xfer_partial): Update.
+
+ * arch-utils.h, arch-utils.c: Fix typo in comment.
+
+ * arch-utils.c (deprecated_select_gdbarch_hack): Delete function.
+ (gdbarch_from_bfd): Call gdbarch_find_by_info.
+ (set_gdbarch_from_file): Call
+ "deprecated_current_gdbarch_select_hack".
+
+2003-11-09 Andrew Cagney <cagney@redhat.com>
+
+ * arch-utils.c (gdbarch_update_p): New function.
+ * gdbarch.sh (gdbarch_update_p): Delete function.
+ (find_arch_by_info, gdbarch_find_by_info): New functions.
+ (deprecated_current_gdbarch_select_hack): New function.
+ * gdbarch.c: Re-generate.
+
+ * gdbarch.sh (clear_gdbarch_swap): Delete function.
+ (swapout_gdbarch_swap): Delete function.
+ (swapin_gdbarch_swap): Delete function.
+ (init_gdbarch_swap): Delete function.
+ (initialize_non_multiarch): Delete function.
+ (current_gdbarch_swap_in_hack): New function.
+ (current_gdbarch_swap_out_hack): New function.
+ (current_gdbarch_swap_init_hack): New function.
+ * gdbarch.c: Re-generate.
+
+ * gdbarch.sh (verify_gdbarch, gdbarch_dump): Rename "gdbarch"
+ parameter to "current_gdbarch". Add comment explaining why.
+ (TARGET_FLOAT_FORMAT: Pass "current_gdbarch" to default_double_format.
+ (TARGET_DOUBLE_FORMAT,TARGET_LONG_DOUBLE_FORMAT): Ditto.
+ * gdbarch.c: Re-generate.
+
+ * config/s390/s390.mh (XM_FILE, XM_CLIBS): Delete macros.
+ * config/s390/nm-linux.h (KERNEL_U_ADDR): Define.
+ * config/s390/xm-linux.h: Delete file.
+ * config/m88k/xm-delta88v4.h: Delete stray.
+
+ * Makefile.in (arch-utils.o): Update dependencies.
+ * arch-utils.c: Include "osabi.h".
+ (gdbarch_info_fill): New function.
+ * arch-utils.h (gdbarch_info_fill): Declare.
+ * gdbarch.sh (gdbarch_update_p): Call "gdbarch_info_fill".
+ * gdbarch.c: Re-generate.
+
+2003-11-09 Mark Kettenis <kettenis@gnu.org>
+ David S. Miller <davem@redhat.com>
+
+ * glibc-tdep.c, glibc-tdep.h: New files.
+ * config/arm/linux.mt (TDEPFILES): Add glibc-tdep.o
+ * config/i386/linux.mt (TDEPFILES): Likewise.
+ * i386-linux-tdep.c (glibc-tdep.h): Include.
+ (find_minsym_and_objfile, skip_hurd_resolver): Delete.
+ (i386_linux_skip_solib_resolver): Call glibc_skip_solib_resolver.
+ * arm-linux-tdep.c (glibc-tdep.h): Include.
+ (find_minsym_and_objfile, skip_hurd_resolver): Delete.
+ (arm_linux_skip_solib_resolver): Call glibc_skip_solib_resolver.
+ * Makefile.in (ALLDEPFILES): Add glibc-tdep.c
+ (glibc_tdep_h): Define.
+ (glibc-tdep.o): Add dependencies.
+ (arm-linux-tdep.o): Update dependencies.
+ (i386-linux-tdep.o): Likewise.
+
+2003-11-09 Andrew Cagney <cagney@redhat.com>
+
+ * config/mips/irix6.mh (NAT_FILE): Set to "nm-irix5.h".
+ * config/mips/nm-irix6.h: Delete file.
+ * config/mips/nm-linux.h: Update copyright.
+ (MIPS_GNULINUX_TARGET): Delete macro.
+ * config/mips/irix6.mh (XM_FILE): Set to "xm-irix5.h".
+ * config/mips/xm-irix6.h: Delete file.
+ * config/mips/linux.mh (XM_FILE): Delete definition.
+ * config/mips/xm-linux.h: Delete file.
+
+2003-11-09 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (d10v_return_value): New function.
+ (d10v_use_struct_convention): Delete function.
+ (d10v_store_return_value): Delete function.
+ (d10v_extract_struct_value_address): Delete function.
+ (d10v_gdbarch_init): Set "return_value" instead of
+ "extract_return_value", "store_return_value",
+ "extract_struct_value_address", and "use_struct_convention".
+ (RET1_REGNUM): Delete const.
+
+2003-11-09 Mark Kettenis <kettenis@gnu.org>
+
+ From David S. Miller <davem@redhat.com>:
+ * gdbarch.sh (SKIP_SOLIB_RESOLVER): New method.
+ * gdbarch.c, gdbarch.h: Regenerated.
+ * arch-utils.c (generic_skip_solib_resolver): New function.
+ * arch-utils.h (generic_skip_solib_resolver): New prototype.
+ * infrun.c (SKIP_SOLIB_RESOLVER): Don't define.
+
+2003-11-07 Andrew Cagney <cagney@redhat.com>
+
+ * top.c (print_gdb_version): Replace STREQ with strcmp.
+ * valops.c (value_struct_elt_for_reference): Ditto.
+ (value_struct_elt_for_reference): Ditto.
+ * symtab.c (gdb_mangle_name): Ditto.
+ (find_line_symtab): Ditto.
+ * symmisc.c (maintenance_print_symbols): Ditto.
+ * symfile.c (symbol_file_command): Ditto.
+ * stabsread.c (define_symbol, read_type): Ditto.
+ (cleanup_undefined_types, scan_file_globals): Ditto.
+ * solib.c (solib_map_sections): Ditto.
+ * solib-svr4.c (bfd_lookup_symbol): Ditto.
+ * rs6000-tdep.c (skip_prologue): Ditto.
+ * p-valprint.c (pascal_value_print): Ditto.
+ (pascal_object_is_vtbl_ptr_type): Ditto.
+ * objfiles.c (in_plt_section): Ditto.
+ * minsyms.c (lookup_minimal_symbol): Ditto.
+ (compact_minimal_symbols): Ditto.
+ (find_solib_trampoline_target): Ditto.
+ * mdebugread.c (parse_type): Ditto.
+ * language.c (set_language_command): Ditto.
+ (set_type_command, set_range_command): Ditto.
+ * f-lang.c (add_common_block): Ditto.
+ (add_common_block): Ditto.
+ (find_first_common_named): Ditto.
+ (patch_all_commons_by_name): Ditto.
+ * elfread.c (elf_locate_sections): Ditto.
+ (elf_locate_sections): Ditto.
+ (elfstab_offset_sections): Ditto.
+ * dwarf2read.c (dwarf2_locate_sections): Ditto.
+ * dbxread.c (add_old_header_file): Ditto.
+ (find_corresponding_bincl_psymtab): Ditto.
+ (read_dbx_symtab, process_one_symbol): Ditto.
+ * coffread.c (patch_opaque_types): Ditto.
+ * cli/cli-decode.c (delete_cmd): Ditto.
+ * cli/cli-cmds.c (pwd_command, list_command): Ditto.
+ * c-typeprint.c (c_type_print_base): Ditto.
+ * breakpoint.c (bpstat_stop_status): Ditto.
+ (clear_command, breakpoint_re_set_one): Ditto.
+
+2003-11-07 Andrew Cagney <cagney@redhat.com>
+
+ * bcache.h: Update copyright. Add comments on bcache VS hashtab.
+ * bcache.c (struct bstring): Make "length" an unsigned short, add
+ "half_hash".
+ (struct bcache): Add "half_hash_error_count".
+ (bcache): Compute and save the "half_hash". Compare the
+ "half_hash" before comparing the length. Update
+ half_hash_error_count.
+
+2003-11-07 Andrew Cagney <cagney@redhat.com>
+
+ * inftarg.c (child_xfer_partial): New function
+ (init_child_ops): Set "to_xfer_partial".
+
+2003-11-07 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-linux-tdep.c (ppc_linux_init_abi): When 32-bit GNU/Linux,
+ set "return_value" instead of "use_struct_convention".
+ (ppc_linux_use_struct_convention): Delete function.
+ (ppc_linux_return_value): New function.
+ * ppc-sysv-tdep.c (ppc_sysv_abi_return_value): New function.
+ (ppc_sysv_abi_broken_return_value): New function.
+ (do_ppc_sysv_return_value): Add "gdbarch" parameter.
+ (ppc64_sysv_abi_push_dummy_call): Add "gdbarch" parameter, drop
+ static.
+ (ppc_sysv_abi_extract_return_value): Delete function.
+ (ppc_sysv_abi_broken_extract_return_value): Delete function.
+ (ppc_sysv_abi_store_return_value): Delete function.
+ (ppc_sysv_abi_broken_store_return_value): Delete function.
+ (ppc_sysv_abi_use_struct_convention): Delete function.
+ (ppc64_sysv_abi_use_struct_convention): Delete function.
+ (ppc64_sysv_abi_extract_return_value): Delete function.
+ (ppc64_sysv_abi_store_return_value): Delete function.
+ * ppcnbsd-tdep.c (ppcnbsd_return_value): New function.
+ (ppcnbsd_init_abi): Set "return_value", instead of
+ "use_struct_convention", "extract_return_value", and
+ "store_return_value".
+ (ppcnbsd_use_struct_convention): Delete function.
+ * ppc-tdep.h (ppc64_sysv_abi_return_value): Declare.
+ (ppc_sysv_abi_return_value): Declare.
+ (ppc_sysv_abi_broken_return_value): Declare.
+ (ppc_sysv_abi_use_struct_convention): Delete.
+ (ppc_sysv_abi_store_return_value): Delete.
+ (ppc_sysv_abi_extract_return_value): Delete.
+ (ppc_sysv_abi_broken_store_return_value): Delete.
+ (ppc_sysv_abi_broken_extract_return_value): Delete.
+ (ppc64_sysv_abi_use_struct_convention): Delete.
+ (ppc64_sysv_abi_extract_return_value): Delete.
+ (ppc64_sysv_abi_store_return_value): Delete.
+ * rs6000-tdep.c (rs6000_gdbarch_init): For 32-bit and 64-bit SYSV,
+ set "return_value" instead of "extract_return_value",
+ "store_return_value", and "use_struct_convention".
+
+2003-11-07 Mark Kettenis <kettenis@gnu.org>
+
+ * dwarf2-frame.c (dwarf2_build_frame_info): Wrap comment.
+
+ * fbsd-proc.c (read_mapping): Use sscanf and fgets instead of
+ fscanf.
+
+2003-11-07 Mark Kettenis <kettenis@gnu.org>
+
+ * fbsd-proc.c: Fix formatting.
+
+2003-11-06 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (first_pseudo_regnum, iacc0_regnum, frv_num_pseudo_regs):
+ Define.
+ (new_variant): Set name for iacc0_regnum.
+ (frv_register_name): Accommodate pseudo-registers.
+ (frv_register_type): Add case for iacc0_regnum.
+ (frv_pseudo_register_read, frv_pseudo_register_write): New functions.
+ (frv_gdbarch_init): Set number of pseudo registers. Establish
+ pseudo-register read/write methods.
+
+2003-11-06 Andrew Cagney <cagney@redhat.com>
+
+ * valops.c (destructor_name_p): Replace STREQN with strncmp.
+ * top.c (command_line_input): Ditto.
+ * objc-exp.y (yylex): Ditto.
+ * minsyms.c (prim_record_minimal_symbol_and_info): Ditto.
+ * jv-exp.y (yylex): Ditto.
+ * f-exp.y (yylex): Ditto.
+ * event-top.c (command_line_handler): Ditto.
+ * environ.c (get_in_environ): Ditto.
+ (set_in_environ): Ditto.
+ * dwarfread.c (handle_producer): Ditto.
+ * dbxread.c (process_one_symbol): Ditto.
+ * c-typeprint.c (c_type_print_base): Ditto.
+ * c-exp.y (yylex): Ditto.
+
+2003-11-06 Andrew Cagney <cagney@redhat.com>
+ Jeff Johnston <jjohnstn@redhat.com>
+
+ * target.c (add_target): Only set "to_xfer_partial" when NULL.
+ (init_dummy_target): Set "to_xfer_partial".
+
+2003-11-06 Andrew Cagney <cagney@redhat.com>
+
+ * stack.c (return_command): Warn when STRUCT_CONVENTION, and not
+ REGISTER_CONVENTION.
+
+2003-11-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (insert_bp_location, allocate_bp_location): Make
+ static.
+
+2003-11-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (remove_breakpoint): Take an bp_location
+ instead of a breakpoint argument. Check the bp_location's type.
+ Fix a reversed condition for hardware breakpoints.
+
+ (insert_bp_location): Update call to remove_breakpoint.
+ (remove_breakpoints): Likewise. Use ALL_BP_LOCATIONS.
+ (remove_hw_watchpoints): Likewise.
+ (reattach_breakpoints): Likewise.
+ (detach_breakpoints): Likewise.
+ (delete_breakpoint): Likewise.
+
+2003-11-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (mark_breakpoints_out): Use ALL_BP_LOCATIONS.
+ (beakpoint_init_inferior): Likewise.
+ (breakpoint_here_p): Likewise. Only check addresses for software
+ or hardware breakpoints.
+ (breakpoint_inserted_here_p): Likewise.
+ (breakpoint_thread_match): Likewise. Correct comment.
+ (bpstat_have_active_hw_watchpoints): Likewise.
+ (check_duplicates): Likewise.
+
+2003-11-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoints.c (insert_bp_location): New function, broken out
+ from insert_breakpoints. Work on an bp_location instead of a
+ breakpoint.
+ (insert_breakpoints): Use it.
+
+2003-11-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.h (struct bp_location): Add section.
+ (struct breakpoint): Remove section.
+ * breakpoint.c (insert_breakpoints, remove_breakpoint)
+ (breakpoint_here_p, breakpoint_inserted_here_p)
+ (breakpoint_thread_match, bpstat_stop_status, print_one_breakpoint)
+ (describe_other_breakpoints, check_duplicates, set_raw_breakpoint)
+ (clear_command, delete_breakpoint, breakpoint_re_set_one): Access
+ section through loc.
+
+2003-11-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (read_memory_nobpt): Use ALL_BP_LOCATIONS
+ instead of ALL_BREAKPOINTS. Check for software breakpoints only.
+
+2003-11-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (allocate_bp_location): Take bpt and bp_type
+ arguments. Initialize owner and type for the new breakpoint
+ location item.
+ (set_raw_breakpoint): Update call to allocate_bp_location.
+
+2003-11-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.h (struct bp_location): Add a chain pointer.
+ * breakpoint.c (ALL_BP_LOCATIONS, ALL_BP_LOCATIONS_SAFE): New
+ macros.
+ (bp_location_chain): New variable.
+ (allocate_bp_location): New function.
+ (set_raw_breakpoint): Use it.
+ (delete_breakpoint): Remove ->loc from the bp_location_chain.
+
+2003-11-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.h (enum bp_loc_type, struct bp_location): New.
+ (struct breakpoint): Remove address, shadow_contents, inserted,
+ requested_address, and duplicate. Add a struct bp_location.
+ * breakpoint.c (condition_command, read_memory_nobpt)
+ (insert_breakpoints, remove_breakpoints, remove_hw_watchpoints)
+ (reattach_breakpoints, update_breakpoints_after_exec)
+ (detach_breakpoints, remove_breakpoint, mark_breakpoints_out)
+ (breakpoint_init_inferior, breakpoint_here_p)
+ (breakpoint_inserted_here_p, deprecated_frame_in_dummy)
+ (breakpoint_thread_match, bpstat_stop_status)
+ (bpstat_have_active_hw_watchpoints, print_one_breakpoint)
+ (describe_other_breakpoints, check_duplicates)
+ (make_breakpoint_permanent, create_thread_event_breakpoint)
+ (disable_breakpoints_in_shlibs, re_enable_berakpoints_in_shlibs)
+ (set_longjmp_resume_breakpoint, mention, create_breakpoints)
+ (watch_command_1, print_one_exception_catchpoint)
+ (clear_command, breakpoint_re_set_one): Adjust member accesses to
+ use the breakpoint's ->loc.
+ (set_raw_breakpoint): Likewise. Initialize ->loc.
+ (delete_breakpoint): Likewise. Free ->loc.
+
+2003-11-05 Andrew Cagney <cagney@redhat.com>
+
+ * config/sparc/tm-sparc.h (FRAME_STRUCT_ARGS_ADDRESS): Delete
+ macro.
+ * config/m68k/tm-sun3.h (SIG_PC_FP_OFFSET): Delete macro.
+ * config/i386/tm-cygwin.h
+ (LINKER_SYMBOLS_HAVE_WIN32_STDCALL_ARG_SIZES): Delete macro.
+ * config/powerpc/tm-linux.h
+ (AT_SUBROUTINE_CALL_INSTRUCTION_TARGET): Delete macro.
+ (at_subroutine_call_instruction_target): Delete declaration.
+ * config/sparc/tm-sp64linux.h (GDB_PTRACE_REGS64): Delete macro.
+ * config/m68k/tm-sun3.h (SIG_SP_FP_OFFSET): Delete macro.
+ * config/ns32k/tm-ns32k.h (NUM_GENERAL_REGS): Delete macro.
+
+ * xcoffread.c (find_linenos): Replace "sec_ptr" and "bfd" with
+ "struct bfd_section" and "struct bfd".
+ * target.h (struct section_table): Ditto.
+ * rs6000-nat.c (xcoff_relocate_core): Ditto.
+ * solib-svr4.c (elf_locate_base): Ditto.
+ * pa64solib.c (dld_cache_t): Ditto.
+ * objfiles.h (struct obj_section): Ditto.
+ * objfiles.c (add_to_objfile_sections): Ditto.
+ * exec.c (bfdsec_to_vmap): Ditto.
+ (add_to_section_table): Ditto.
+ (build_section_table): Ditto.
+ * corelow.c (get_core_register_section): Ditto.
+ * coffread.c (find_linenos): Ditto.
+ * elfread.c (elf_interpreter): Delete #if0'd function.
+
+ * mips-tdep.c (mips_dump_tdep): Delete code prinint VX_NUM_REGS.
+ * config/sparc/tm-vxsparc.h (VX_NUM_REGS): Delete macro.
+ * config/mips/tm-vxmips.h (VX_NUM_REGS): Delete macro.
+ * config/m68k/tm-vx68.h (VX_NUM_REGS): Delete macro.
+
+ * arch-utils.h (generic_cannot_extract_struct_value_address):
+ Delete declaration.
+ * wince.c (_initialize_wince): Fix multi-line string.
+ * ia64-tdep.c (floatformat_valid): Convert to ISO C.
+
+2003-11-05 Elena Zannoni <ezannoni@redhat.com>
+
+ * top.c (execute_command): Fix broken logic for command execution
+ while inferior is running in async mode.
+
+2003-11-06 Mark Kettenis <kettenis@gnu.org>
+
+ * dwarf2-frame.c (execute_cfa_program): Mark register as
+ REG_SAVED_REG for DW_CFA_register opcode.
+
+2003-11-05 Mark Kettenis <kettenis@gnu.org>
+
+ * amd64fbsd-tdep.c (amd64fbsd_sc_reg_offset): Adjust offset of
+ %rsp, %rip and %eflags to match ABI-change.
+
+2003-11-05 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-tdep.c (struct gdbarch_tdep): Remove os_ident field.
+ (ia64_gdbarch_init): Don't bother calculating the os.
+ Instead use the gdbarch_info struct and look at the osabi field.
+ Also use gdbarch_list_lookup_by_info() to look for a
+ candidate gdbarch.
+
+2003-11-05 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (frv_register_byte): Delete.
+ (frv_extract_return_value, frv_store_return_value)
+ (frv_extract_struct_value_address): Don't call frv_register_byte().
+ Convert to non-deprecated form.
+ (frv_gdbarch_init): Don't call set_gdbarch_deprecated_register_byte().
+ Convert calls to set_gdbarch_deprecated_extract_return_value(),
+ set_gdbarch_deprecated_store_return_value(), and
+ set_gdbarch_deprecated_extract_struct_value_address() into
+ non-deprecated forms.
+
+2003-11-05 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (mips_dump_tdep): Do not print
+ PRINT_EXTRA_FRAME_INFO.
+ * config/sparc/tm-sparc.h (DEPRECATED_PRINT_EXTRA_FRAME_INFO):
+ Rename PRINT_EXTRA_FRAME_INFO.
+ * mips-tdep.c (mips_print_extra_frame_info): Delete function.
+ * config/mips/tm-mips.h (PRINT_EXTRA_FRAME_INFO): Delete macro.
+ (mips_print_extra_frame_info): Delete declaration.
+ * stack.c (frame_info): Use DEPRECATED_PRINT_EXTRA_FRAME_INFO.
+
+2003-11-05 Elena Zannoni <ezannoni@redhat.com>
+
+ * coffread.c (coff_symtab_read): Remove passing of info parameter
+ to prim_record_minimal_symbol_and_info.
+
+2003-11-05 Elena Zannoni <ezannoni@redhat.com>
+
+ * coffread.c (process_coff_symbol): Delete CXUX_TARGET macro use.
+ (decode_base_type): Delete ifdeffed out code.
+
+2003-11-04 Andrew Cagney <cagney@redhat.com>
+
+ * symtab.c (find_active_alias): Delete function.
+ (lookup_block_symbol): Delete alias code.
+ * stabsread.c (resolve_live_range): Delete function.
+ (add_live_range): Delete function.
+ (resolve_symbol_reference): Delete function.
+ (define_symbol): Delete live range and alias code.
+ (scan_file_globals): Delete alias code.
+ * symtab.h (SYMBOL_RANGES): Delete macro.
+ (struct range_list): Delete structure.
+ (struct symbol): Delete field "ranges".
+ (SYMBOL_ALIASES): Delete macro.
+ (struct alias_list): Delete structure.
+ (struct symbol): Delete field "aliases".
+
+2003-11-04 Michael Snyder <msnyder@redhat.com>
+
+ * MAINTAINERS: Remove myself as owner of breakpoints and
+ of sparc/solaris.
+
+2003-11-03 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c (sh_sh4_nofpu_register_name): New function.
+ (sh_sh4al_dsp_register_name): Ditto.
+ (sh4_nofpu_show_regs): Ditto.
+ (sh_gdbarch_init): Add cases for bfd_mach_sh4al_dsp, bfd_mach_sh4a,
+ bfd_mach_sh4_nofpu and bfd_mach_sh4a_nofpu.
+
+2003-11-03 Andrew Cagney <cagney@redhat.com>
+
+ * bcache.c: Include "gdb_assert.h".
+ (struct bcache): Add fields "expand_count" and
+ "expand_hash_count".
+ (expand_hash_table): Update the expand counts.
+ (print_bcache_statistics): Use XCALLOC, not alloca. Print stats
+ on object sizes and hashes.
+ * Makefile.in (bcache.o): Update dependencies.
+
+2003-11-03 Andrew Cagney <cagney@redhat.com>
+
+ * exec.c (xfer_memory): Eliminate xfer_fn.
+
+2003-10-31 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (gdb_assert.h, sim-regno.h, gdb/sim-frv.h)
+ (opcodes/frv-desc.h): Include.
+ (iacc0h_regnum, iacc0l_regnum): Define.
+ (last_spr_regnum, frv_num_regs): Update.
+ (new_variant): Don't supply default names for holes in the SPRs.
+ Supply names for iacc0h_regnum and iacc0l_regnum.
+ (frv_register_type): Use symbolic constants first_fpr_regnum and
+ last_fpr_regnum instead of hardcoded constants 64 and 127. Use
+ builtin_type_int instead of builtin_type_int32.
+ (frv_register_sim_regno): New function.
+ (frv_gdbarch_init): Call set_gdbarch_register_sim_regno().
+ * Makefile.in (gdb_sim_frv_h): Define.
+ (frv-tdep.o): Update dependencies.
+
+2003-10-31 Andrew Cagney <cagney@redhat.com>
+
+ * avr-tdep.c (avr_frame_this_id): Do not call
+ deprecated_inside_entry_file.
+ * m68hc11-tdep.c (m68hc11_frame_this_id): Ditto.
+ * m32r-tdep.c (m32r_frame_this_id): Ditto.
+ * d10v-tdep.c (d10v_frame_this_id): Ditto.
+ * arm-tdep.c (arm_prologue_this_id): Ditto.
+ * alpha-tdep.c (alpha_heuristic_frame_this_id): Ditto.
+
+2003-10-31 Jim Blandy <jimb@redhat.com>
+
+ * elfread.c (elf_symtab_read): Allocate correct number of tail
+ elements to sectinfo structure. (Fix from Woody LaRue.)
+
+2003-10-31 Andrew Cagney <cagney@redhat.com>
+
+ * stack.c (return_command): Use get_frame_type, instead of
+ CALL_DUMMY_HAS_COMPLETED.
+ * inferior.h (CALL_DUMMY_HAS_COMPLETED): Delete definition.
+ * config/pa/tm-hppa.h (CALL_DUMMY_HAS_COMPLETED): Delete macro.
+
+2003-10-31 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-linux-tdep.c (x86_64_linux_sc_reg_offset): Don't
+ explicitly specify size of array.
+ (x86_64_linux_init_abi): Use ARRAY_SIZE to initialize
+ TDEP->sc_num_regs.
+
+2003-10-31 Andrew Cagney <cagney@redhat.com>
+
+ * s390-tdep.c (s390_cannot_extract_struct_value_address): New
+ function.
+ (s390_gdbarch_init): Set extract_struct_value_address.
+ * arch-utils.c (generic_cannot_extract_struct_value_address):
+ Delete function.
+ * arch-utils.h (generic_cannot_extract_struct_value_address):
+ Delete definition.
+
+2003-10-31 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-linux-nat.c (fetch_core_registers): Remove.
+ (linux_elf_core_fns): Remove.
+ (_initialize_i386_linux_nat): Remove.
+
+2003-10-31 Andrew Cagney <cagney@redhat.com>
+
+ * solib-svr4.c: Update copyright. Include "bfd-target.h" and
+ "exec.h".
+ (exec_entry_point): New function.
+ (enable_break): Create a "tmp_bfd_target", use that and
+ entry_point_address when computing the relocation offset.
+ (svr4_relocate_main_executable): Ditto with exec_bfd and exec_ops.
+ * Makefile.in (solib-svr4.o): Update dependencies.
+
+2003-10-31 Andrew Cagney <cagney@redhat.com>
+
+ * defs.h (XZALLOC): Define.
+ * target.h (struct target_ops): Add "to_data";
+ * bfd-target.h, bfd-target.c: New files.
+ * Makefile.in (SFILES): Add "bfd-target.c".
+ (COMMON_OBS): Add "bfd-target.o".
+ (bfd-target.o): Specify dependencies.
+ (bfd_target_h): Define.
+ * defs.h (XZALLOC): Define.
+
+2003-10-31 Andrew Cagney <cagney@redhat.com>
+
+ * rs6000-tdep.c (rs6000_gdbarch_init): For 64-bit ABI, set
+ adjust_breakpoint_address.
+ * Makefile.in (ppc-sysv-tdep.o): Add $(target_h).
+ * ppc-tdep.h (ppc64_sysv_abi_adjust_breakpoint_address): Declare.
+ * ppc-sysv-tdep.c: Include "target.h". Update copyright.
+ (ppc64_sysv_abi_adjust_breakpoint_address): New function.
+
+2003-10-31 Andrew Cagney <cagney@redhat.com>
+
+ * target.h (struct target_ops): Replace "to_read_partial" and
+ "to_write_partial" with "to_xfer_partial". Update comments.
+ * target.c (debug_to_write_partial): Delete function.
+ (debug_to_xfer_partial): Replace debug_to_read_partial.
+ (add_target, update_current_target, setup_target_debug): Set
+ "to_xfer_partial" instead of "to_read_partial" and
+ "to_write_partial".
+ (default_xfer_partial): Replace "default_write_partial".
+ (default_read_partial): Delete.
+ (target_read_partial, target_write_partial): Call
+ "to_xfer_partial".
+ * remote.c (init_remote_ops): Set "to_xfer_partial".
+ (init_remote_async_ops): Ditto.
+ (remote_xfer_partial): Replace "remote_read_partial".
+
+2003-10-31 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_supply_fpregset): Support floating-point
+ registers in `fxsave' format.
+ (i386_regset_from_core_section): Deal with ".reg-xfp" sections.
+
+2003-10-30 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-linux-tdep.c (i386_linux_gregset_reg_offset): New variable.
+ (i386_linux_init_abi): Initialize TDEP->gregset_reg_offset,
+ TDEP->gregset_num_regs and tdep->sizeof_gregset.
+
+ * i386-linux-tdep.c (i386_linux_sc_reg_offset): Don't explicitly
+ specify size of array.
+ (i386_linux_init_abi): Remove initialization of
+ TDEP->num_xmm_regs. Use I386_LINUX_NUM_REGS for number of
+ registers. Use ARRAY_SIZE to initialize TDEP->sc_num_regs.
+
+ * config/i386/fbsd64.mt (TDEPFILES): Add corelow.o.
+ * config/i386/fbsd64.mh (NATDEPFILES): Remove corelow.o and
+ core-regset.o.
+
+ * fbsd-proc.c (fbsd_make_corefile_notes): Put a "FreeBSD" label in
+ the ELF header.
+
+2003-10-29 Mark Kettenis <kettenis@gnu.org>
+
+ * config/i386/fbsd.mt (TDEPFILES): Add corelow.o.
+ * config/i386/fbsd.mh (NATDEPFILES): Remove corelow.o and
+ core-regset.o.
+
+ * fbsd-proc.c (fbsd_make_corefile_notes): Remove unecessary casts.
+
+ * corelow.c: Include "arch-utils.h", "regset.h" and
+ "gdb_assert.h".
+ (core_gdbarch): New variable.
+ (sniff_core_bfd): Don't sniff if we have support for register sets
+ in CORE_GDBARCH.
+ (core_close): Reset CORE_GDBARCH.
+ (core_open): Initialize CORE_GDBARCH.
+ (get_core_register_section): Use register sets if they are
+ supported by CORE_GDBARCH.
+ (get_core_registers): Don't print error message if we have support
+ for register sets in CORE_GDBARCH.
+
+2003-10-29 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-linux-tdep.c (_initialize_ppc_linux_tdep): Instead of the
+ default PPC machine, register 32-bit and 64-bit PPC, and rs6k.
+
+2003-10-29 Mark Kettenis <kettenis@gnu.org>
+
+ * objfiles.h (clear_objfile_data): New prototype.
+ * objfiles.c (clear_objfile_data): New function.
+ * symfile.c (reread_symbols): Clear per-objfile data.
+
+2003-10-28 Jeff Johnston <jjohnstn@redhat.com>
+
+ * symfile.c (symbol_file_add_with_addrs_or_offsets): Switch to use
+ printf_unfiltered instead of printf_filtered for output messages.
+ (add_symbol_file_command): Ditto.
+ (reread_symbols): Ditto.
+ (overlay_auto_command): Ditto.
+ (overlay_manual_command): Ditto.
+ (overlay_off_command): Ditto.
+
+2003-10-27 Mark Kettenis <kettenis@gnu.org>
+
+ * arch-utils.c (deprecated_select_gdbarch_hack): New function.
+ (gdbarch_from_bfd): New function.
+ (set_gdbarch_from_file): Re-implement using gdbarch_from_bfd and
+ deprecated_select_gdbarch_hack.
+ * arch-utils.h (gdbarch_from_bfd): New prototype.
+
+2003-10-27 Andrew Cagney <cagney@redhat.com>
+
+ * osabi.c (gdbarch_init_osabi): Use info.bfd_arch_info instead of
+ arch_info. Use warning instead of fprintf_filtered. Do not use
+ deprecated bfd_printable_arch_mach.
+
+2003-10-26 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (frv_register_raw_size, frv_register_virtual_size):
+ Delete.
+ (frv_register_type): Rename from frv_register_virtual_type. Add
+ ``struct gdbarch *'' parameter.
+ (frv_gdbarch_init): Delete calls to the following functions:
+ set_gdbarch_deprecated_size(),
+ set_gdbarch_deprecated_register_bytes(),
+ set_gdbarch_deprecated_register_raw_size(),
+ set_gdbarch_deprecated_max_register_raw_size(),
+ set_gdbarch_deprecated_register_virtual_size(),
+ set_gdbarch_deprecated_max_register_virtual_size(),
+ set_gdbarch_deprecated_register_virtual_size(),
+ set_gdbarch_deprecated_register_virtual_type().
+ Add call to function set_gdbarch_register_type().
+
+2003-10-26 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.h (FCS_REGNUM, FCOFF_REGNUM, FDS_REGNUM,
+ FDOFF_REGNUM): Remove defines.
+ * win32-nat.c (do_child_fetch_inferior_registers): Include
+ "i387-tdep.h".
+ (do_child_fetch_inferior_registers): Use I387_FISEG_REGNUM and
+ I387_FOP_REGNUM instead of FCS_REGNUM and FOP_REGNUM. Define and
+ undefine I387_ST0_REGNUM.
+
+ * i386-tdep.h (FPU_REG_RAW_SIZE): Remove define.
+ * x86-64-tdep.c (x86_64_store_return_value): Use
+ I386_MAX_REGISTER_SIZE instead of FPU_REG_RAW_SIZE.
+
+ Change register numbers to enumartion values.
+ * i386-tdep.h (enum i386_regnum): New.
+ (I386_EAX_REGNUM, I386_EDX_REGNUM, I386_ESP_REGNUM,
+ I386_EBP_REGNUM, I386_IP_REGNUM, I386_EFLAGS_REGNUM,
+ I386_ST0_REGNUM): Remove defines.
+ * i386-tdep.c (I386_EBX_REGNUM, I386_ECX_REGNUM, I386_ESI_REGNUM,
+ I386_EDI_REGNUM): Remove defines.
+
+2003-10-24 Andrew Cagney <cagney@redhat.com>
+
+ * target.c: Include "gdbcore.h".
+ (get_target_memory, get_target_memory_unsigned): New functions.
+ * target.h (get_target_memory, get_target_memory_unsigned): Declare.
+ * ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr):
+ Use get_target_memory_unsigned.
+ * Makefile.in (target.o): Update dependencies.
+
+2003-10-24 Andrew Cagney <cagney@redhat.com>
+
+ * osabi.c (gdbarch_init_osabi): Fix typos, and "fortunatly"[sic].
+ * PROBLEMS, arch-utils.c, cli-out.c, command.h: Ditto.
+ * complaints.c, cris-tdep.c, disasm.c, dwarf2-frame.c: Ditto.
+ * frame.c, frame.h, infcall.c, infcmd.c, infrun.c: Ditto.
+ * kod.c, mips-tdep.c, regcache.c, regcache.h, remote.c: Ditto.
+
+ * osabi.c (gdbarch_init_osabi): Add comment on 32-bit vs 64-bit.
+ (can_run_code_for): Use the OO term "singleton".
+
+2003-10-23 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (stack.o): Add $(regcache_h).
+ * stack.c: Include "regcache.h"
+ (return_command): Rewrite. Use get_frame_id and
+ get_selected_frame. Eliminate "deprecated_selected_frame". Warn
+ about unhandled return-values.
+ * value.h (set_return_value): Delete declaration.
+ * values.c (set_return_value): Delete function.
+
+2003-10-23 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-tdep.c: (ia64_frame_cache): Add new prev_cfm field.
+ (pseudo_regs): Add comment regarding register stack registers.
+ (ia64_alloc_frame_cache): Initialize new prev_cfm field to 0.
+ (floatformat_valid): New static routine.
+ (floatformat_ia64_ext): Add name field and set up is_valid routine
+ to floatformat_valid().
+ (examine_prologue): For the previous cfm, use
+ frame_unwind_register()
+ if the cfm is not stored in a register-stack register. Save the
+ previous cfm value in the prev_cfm field. Add debug output.
+ (ia64_frame_this_id): Use frame_id_build_special() to also register
+ the bsp. Add debug output.
+ (ia64_sigtramp_frame_this_id): Ditto.
+ (ia64_frame_prev_register): Look at cache saved_regs for a few more
+ registers and also add some checks for framelessness before accepting
+ current register values for fields such as return address. For cfm,
+ use the cached prev_cfm field if available. Add comment to explain
+ PSR logic. Add debug output.
+ (ia64_sigtramp_frame_init_saved_regs): Save the bsp and sp addresses
+ as part of initialization.
+ (ia64_sigtramp_frame_cache): Hard-code stack size as it can't be
+ calculated. Cache the bsp and cfm values.
+ (ia64_sigtramp_frame_prev_register): Add logic to this routine out
+ instead of using ia64_frame_prev_register() which doesn't expect most
+ registers to be saved. The saved values for bsp and sp
+ can be taken from the cache. Add debug output.
+ (ia64_push_dummy_call): Use frame_id_build_special() to also register
+ the bsp.
+
+2003-10-23 Jim Blandy <jimb@redhat.com>
+
+ * osabi.c (gdbarch_init_osabi): A handler is okay if it's for an
+ architecture the current arch can run code for --- but not if it's
+ a superset.
+ (can_run_code_for): New function.
+
+2003-10-22 James E Wilson <wilson@specifixinc.com>
+
+ * MAINTAINERS: Move myself from paper trail section back to write
+ after approval section.
+
+2003-10-22 Andrew Cagney <cagney@redhat.com>
+
+ * exec.h: New file.
+ * win32-nat.c: Include "exec.h".
+ * solib.c: Include "exec.h".
+ * target.h (build_section_table): Delete declaration.
+ * somsolib.c: Include "exec.h".
+ (exec_ops): Delete extern declaration.
+ * rs6000-nat.c: Update copyright. Include "exec.h".
+ (exec_ops): Delete extern declaration.
+ * pa64solib.c: Update copyright. Include "exec.h".
+ (exec_ops): Delete extern declaration.
+ * exec.c: Update copyright. Include "exec.h".
+ * corelow.c: Update dependencies. Include "exec.h".
+ * Makefile.in (exec_h): Define.
+ (exec.o, somsolib.o): Update dependencies.
+ (pa64solib.o, corelow.o): Update dependencies.
+
+2003-10-22 Andrew Cagney <cagney@redhat.com>
+
+ * target.c: Include "gdb_assert.h" (target_read): Call
+ "target_read_partial", not "target_write_partial".
+ (default_read_partial, default_write_partial): New function.
+ (target_read_partial, target_write_partial): Simplify, assume that
+ there is always a read/write method.
+ (update_current_target, add_target): Always set "to_read_partial"
+ and "to_write_partial".
+ (target_write, target_read): Fail on a zero byte transfer.
+ * Makefile.in (target.o): Update dependencies.
+ * target.h: Update copyright date.
+ (target_object): Fix typo.
+
+2003-10-22 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (convert_from_func_ptr_addr): Convert to a pure
+ multi-arch method, add "targ" parameter.
+ (struct target_ops): Declare.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * Makefile.in (c-valprint.o): Update dependencies.
+ * arch-utils.h: Update copyright.
+ (convert_from_func_ptr_addr_identity): Declare.
+ * arch-utils.c (convert_from_func_ptr_addr_identity): New function.
+ * ia64-tdep.c (ia64_convert_from_func_ptr_addr): Update.
+ * rs6000-tdep.c (rs6000_convert_from_func_ptr_addr): Upate.
+ * ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr): Update.
+ * infcall.c (find_function_addr, call_function_by_hand): Update.
+ * c-valprint.c: Include "target.h".
+ (print_function_pointer_address): Update.
+
+2003-10-22 Andrew Cagney <cagney@redhat.com>
+
+ * target.c (target_close): New function.
+ (debug_to_close): Use "target_close".
+ (push_target): Use "target_close".
+ (unpush_target): Use "target_close".
+ (pop_target): Use "target_close".
+ * target.h (struct target_ops): Add "to_xclose".
+ (target_open): Delete macro. Move comment to "to_open".
+ (target_close): Replace macro with function that takes a target.
+ * top.c (quit_target): Pass "current_target" to "target_close".
+
+2003-10-21 Elena Zannoni <ezannoni@redhat.com>
+
+ * minsyms.c (lookup_minimal_symbol_text): Remove unused parameter.
+ Remove SOFUN_ADDRESS_MAYBE_MISSING ifdeffed code.
+ * symtab.h (lookup_minimal_symbol_text): Update.
+ * breakpoint.c (create_overlay_event_breakpoint,
+ create_longjmp_breakpoint): Update callers.
+ * ppc-linux-tdep.c (ppc_linux_skip_trampoline_code): Update caller.
+ * symtab.c (find_pc_sect_line): Ditto.
+
+2003-10-21 Andrew Cagney <cagney@redhat.com>
+
+ * target.c (errno): Delete extern declaration.
+
+2003-10-20 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-tdep.c: Change all occurrences of
+ DEPRECATED_REGISTER_RAW_SIZE to use register_size() instead.
+ (ia64_frame_prev_register): Minor whitespace change.
+
+2003-10-20 Michael Chastain <mec@shout.net>
+
+ * config/djgpp/fnchange.lst: Add lines for:
+ sim/testsuite/sim/frv/interrupts/Ipipe-fr400.cgs,
+ sim/testsuite/sim/frv/interrupts/Ipipe-fr500.cgs,
+ sim/testsuite/sim/frv/interrupts/badalign-fr550.cgs,
+ sim/testsuite/sim/frv/interrupts/compound-fr550.cgs,
+ sim/testsuite/sim/frv/interrupts/data_store_error-fr550.cgs,
+ sim/testsuite/sim/frv/interrupts/fp_exception-fr550.cgs,
+ sim/testsuite/sim/frv/interrupts/insn_access_error-fr550.cgs.
+
+2003-10-20 Andrew Cagney <cagney@redhat.com>
+
+ * values.c (register_value_being_returned): Update comments. Use
+ "gdbarch_return_value" when available.
+ (using_struct_return): Ditto.
+ (set_return_value): Ditto. Use "gdbarch_return_value" when
+ available.. Print a warning, and not an error, when an unhandled
+ return type is encountered.
+ * infcmd.c: Include "gdb_assert.h".
+ (print_return_value): When gdbarch_return_value_p, and using
+ struct return, assume that the value is not available.
+ * defs.h (return_value_convention): Define.
+ * gdbarch.sh (gdbarch_return_value): New predicate method.
+ * gdbarch.h, gdbarch.c: Re-generate
+ * ppc-sysv-tdep.c (return_value_convention): Delete definition.
+
+2003-10-20 Andrew Cagney <cagney@redhat.com>
+
+ * symtab.c: Replace "struct sec" with "struct bfd_section".
+ * objfiles.c, linespec.c, blockframe.c, block.c: Ditto.
+
+2003-10-19 Michael Chastain <mec@shout.net>
+
+ * config/djgpp/fnchange.lst: Add lines for:
+ gdb/amd64nbsd-nat.c, gdb/amd64nbsd-tdep.c,
+ gdb/i386fbsd-nat.c, gdb/i386fbsd-tdep.c,
+ gdb/sparc64fbsd-nat.c, gdb/sparc64bsd-tdep.c.
+
+2003-10-19 Mark Kettenis <kettenis@gnu.org>
+
+ * amd64fbsd-nat.c (fetch_inferior_registers,
+ store_inferior_registers): Remove functions.
+ * config/i386/fbsd64.mh (NATDEPFILES): Add amd64bsd-nat.o.
+
+2003-10-18 Mark Kettenis <kettenis@gnu.org>
+
+ Add NetBSD/amd64 native configuration:
+ * x86-64-tdep.h (amd64nbsd_r_reg_offset): Add extern declarations.
+ * amd64nbsd-tdep.c: New file.
+ * amd64nbsd-nat.c: New file.
+ * amd64bsd-nat.c: New file.
+ * config/i386/nbsd64.mh: New file.
+ * config/i386/nbsd64.mt: New file.
+ * configure.host: Add x86_64-*-netbsd*.
+ * configure.tgt: Add x86_64-*-netbsd*.
+ * Makefile.in (amd64bsd-nat.o, amd64nbsd-nat.o, amd64nbsd-tdep.o):
+ New targets.
+ * NEWS (New native configurations): Mention NetBSD/amd64.
+
+2003-10-17 Michael Chastain <mec@shout.net>
+
+ * config/djgpp/fnchange.lst: Remove dead lines for:
+ bfd/elf32-i386qnx.c, bfd/elf32-ppcqnx.c, bfd/elf32-shqnx.c,
+ bfd/elf32-sh-lin.c, bfd/elf32-sh-nbsd.c, bfd/elf32-sh64-nbsd.c,
+ bfd/elf64-alpha-fbsd.c, bfd/elf64-sh64-nbsd.c,
+ gdb/alphanbsd-nat.c, gdb/config/i386/tm-i386mk.h,
+ gdb/config/i386/tm-i386v42mp.h, gdb/config/i386/xm-i386mach.h,
+ gdb/config/i386/xm-i386mk.h, gdb/config/i386/xm-i386v32.h,
+ gdb/config/m68k/apollo68v.mh, gdb/config/m68k/nm-apollo68v.h,
+ gdb/config/m68k/xm-apollo68v.h, gdb/config/m88k/tm-delta88v4.h,
+ gdb/config/mips/tm-bigmips64.h, gdb/config/mips/tm-embed64.h,
+ gdb/config/mips/tm-embedl.h, gdb/config/mips/tm-embedl64.h,
+ gdb/config/mips/tm-vr4300el.h, gdb/config/mips/tm-vr4xxxel.h,
+ gdb/config/mips/tm-vr5000el.h, gdb/config/sparc/tm-sparclet.h,
+ gdb/config/sparc/tm-sparclite.h,
+ gdb/gdbtk/generic/ChangeLog-2001,
+ gdb/gdbtk/library/ChangeLog-2001, gdb/remote-adapt.c,
+ gdb/remote-eb.c, gdb/remote-mm.c, gdb/remote-nrom.c,
+ gdb/remote-udi.c, gdb/remote-vx29k.c, gdb/remote-vx960.c,
+ gdb/sparclet-rom.c, gdb/sparclet-stub.c,
+ gdb/testsuite/gdb.mi/mi0-var-block.exp,
+ gdb/testsuite/gdb.mi/mi0-var-child.exp,
+ gdb/testsuite/gdb.mi/mi0-var-cmd.exp,
+ gdb/testsuite/gdb.mi/mi0-var-display.exp,
+ itcl/iwidgets3.0.0/demos/extfileselectionbox,
+ itcl/iwidgets3.0.0/demos/extfileselectiondialog,
+ itcl/iwidgets3.0.0/demos/fileselectionbox,
+ itcl/iwidgets3.0.0/demos/fileselectiondialog,
+ itcl/iwidgets3.0.0/demos/html/buttonbox.n.html,
+ itcl/iwidgets3.0.0/demos/html/canvasprintbox.n.html,
+ itcl/iwidgets3.0.0/demos/html/canvasprintdialog.n.html,
+ itcl/iwidgets3.0.0/demos/html/combobox.n.html,
+ itcl/iwidgets3.0.0/demos/html/dialog.n.html,
+ itcl/iwidgets3.0.0/demos/html/dialogshell.n.html,
+ itcl/iwidgets3.0.0/demos/html/entryfield.n.html,
+ itcl/iwidgets3.0.0/demos/html/feedback.n.html,
+ itcl/iwidgets3.0.0/demos/html/fileselectionbox.n.html,
+ itcl/iwidgets3.0.0/demos/html/fileselectiondialog.n.html,
+ itcl/iwidgets3.0.0/demos/html/hyperhelp.n.html,
+ itcl/iwidgets3.0.0/demos/html/iwidgets2.2.0UserCmds.html,
+ itcl/iwidgets3.0.0/demos/html/labeledwidget.n.html,
+ itcl/iwidgets3.0.0/demos/html/menubar.n.html,
+ itcl/iwidgets3.0.0/demos/html/messagedialog.n.html,
+ itcl/iwidgets3.0.0/demos/html/notebook.n.html,
+ itcl/iwidgets3.0.0/demos/html/optionmenu.n.html,
+ itcl/iwidgets3.0.0/demos/html/panedwindow.n.html,
+ itcl/iwidgets3.0.0/demos/html/promptdialog.n.html,
+ itcl/iwidgets3.0.0/demos/html/pushbutton.n.html,
+ itcl/iwidgets3.0.0/demos/html/radiobox.n.html,
+ itcl/iwidgets3.0.0/demos/html/scrolledcanvas.n.html,
+ itcl/iwidgets3.0.0/demos/html/scrolledframe.n.html,
+ itcl/iwidgets3.0.0/demos/html/scrolledhtml.n.html,
+ itcl/iwidgets3.0.0/demos/html/scrolledlistbox.n.html,
+ itcl/iwidgets3.0.0/demos/html/scrolledtext.n.html,
+ itcl/iwidgets3.0.0/demos/html/selectionbox.n.html,
+ itcl/iwidgets3.0.0/demos/html/selectiondialog.n.html,
+ itcl/iwidgets3.0.0/demos/html/shell.n.html,
+ itcl/iwidgets3.0.0/demos/html/spindate.n.html,
+ itcl/iwidgets3.0.0/demos/html/spinint.n.html,
+ itcl/iwidgets3.0.0/demos/html/spinner.n.html,
+ itcl/iwidgets3.0.0/demos/html/spintime.n.html,
+ itcl/iwidgets3.0.0/demos/html/tabnotebook.n.html,
+ itcl/iwidgets3.0.0/demos/html/tabset.n.html,
+ itcl/iwidgets3.0.0/demos/html/toolbar.n.html,
+ itcl/iwidgets3.0.0/demos/scrolledcanvas,
+ itcl/iwidgets3.0.0/demos/scrolledframe,
+ itcl/iwidgets3.0.0/demos/scrolledhtml,
+ itcl/iwidgets3.0.0/demos/scrolledlistbox,
+ itcl/iwidgets3.0.0/demos/scrolledtext,
+ itcl/iwidgets3.0.0/demos/selectionbox,
+ itcl/iwidgets3.0.0/demos/selectiondialog,
+ itcl/iwidgets3.0.0/doc/canvasprintbox.n,
+ itcl/iwidgets3.0.0/doc/canvasprintdialog.n,
+ itcl/iwidgets3.0.0/doc/extfileselectionbox.n,
+ itcl/iwidgets3.0.0/doc/extfileselectiondialog.n,
+ itcl/iwidgets3.0.0/doc/fileselectionbox.n,
+ itcl/iwidgets3.0.0/doc/fileselectiondialog.n,
+ itcl/iwidgets3.0.0/doc/scopedobject.n.backup,
+ itcl/iwidgets3.0.0/doc/scrolledcanvas.n,
+ itcl/iwidgets3.0.0/doc/scrolledframe.n,
+ itcl/iwidgets3.0.0/doc/scrolledhtml.n,
+ itcl/iwidgets3.0.0/doc/scrolledlistbox.n,
+ itcl/iwidgets3.0.0/doc/scrolledtext.n,
+ itcl/iwidgets3.0.0/doc/selectionbox.n,
+ itcl/iwidgets3.0.0/doc/selectiondialog.n,
+ itcl/iwidgets3.0.0/generic/canvasprintbox.itk,
+ itcl/iwidgets3.0.0/generic/canvasprintdialog.itk,
+ itcl/iwidgets3.0.0/generic/extfileselectionbox.itk,
+ itcl/iwidgets3.0.0/generic/extfileselectiondialog.itk,
+ itcl/iwidgets3.0.0/generic/fileselectionbox.itk,
+ itcl/iwidgets3.0.0/generic/fileselectiondialog.itk,
+ itcl/iwidgets3.0.0/generic/scrolledcanvas.itk,
+ itcl/iwidgets3.0.0/generic/scrolledframe.itk,
+ itcl/iwidgets3.0.0/generic/scrolledhtml.itk,
+ itcl/iwidgets3.0.0/generic/scrolledlistbox.itk,
+ itcl/iwidgets3.0.0/generic/scrolledtext.itk,
+ itcl/iwidgets3.0.0/generic/scrolledwidget.itk,
+ itcl/iwidgets3.0.0/generic/selectionbox.itk,
+ itcl/iwidgets3.0.0/generic/selectiondialog.itk,
+ itcl/iwidgets3.0.0/tests/canvasprintbox.test,
+ itcl/iwidgets3.0.0/tests/canvasprintdialog.test,
+ itcl/iwidgets3.0.0/tests/extfileselectionbox.test,
+ itcl/iwidgets3.0.0/tests/extfileselectiondialog.test,
+ itcl/iwidgets3.0.0/tests/fileselectionbox.test,
+ itcl/iwidgets3.0.0/tests/fileselectiondialog.test,
+ itcl/iwidgets3.0.0/tests/scrolledcanvas.test,
+ itcl/iwidgets3.0.0/tests/scrolledframe.test,
+ itcl/iwidgets3.0.0/tests/scrolledhtml.test,
+ itcl/iwidgets3.0.0/tests/scrolledlistbox.test,
+ itcl/iwidgets3.0.0/tests/scrolledtext.test,
+ itcl/iwidgets3.0.0/tests/selectionbox.test,
+ itcl/iwidgets3.0.0/tests/selectiondialog.test,
+ itcl/iwidgets3.0.0/unix/iwidgets.tcl.in,
+ itcl/iwidgets3.0.0/unix/pkgIndex.tcl.in,
+ tix/docs/Release-4.1.0.html, tix/docs/Release-4.1.0.txt,
+ tix/docs/Release-4.1a2.html, tix/docs/Release-4.1a2.txt,
+ tix/docs/Release-4.1a3.html, tix/docs/Release-4.1a3.txt,
+ tix/docs/Release-4.1b1.html, tix/docs/Release-4.1b1.txt,
+ tix/docs/Release-4.1b2.html, tix/docs/Release-4.1b2.txt,
+ tix/tixConfig.sh.in, tix/unix/tk4.2/pkgIndex.tcl.in,
+ tix/unix/tk8.0/pkgIndex.tcl.in, tix/unix/tk8.0/pkgIndex.tcl.in,
+ tix/unix/tk8.1/pkgIndex.tcl.in, tix/win/tkConsole41.c,
+ tix/win/tkConsole42.c, tix/win/tkConsole80a1.c,
+ tix/win/tkConsole80b1.c, tix/win/tkConsole81.c, tk/doc/tk4.0.ps,
+ tk/mac/tkMacProjects.sit.hqx.
+
+2003-10-17 Andrew Cagney <cagney@redhat.com>
+
+ * target.c (target_section_by_addr): New function.
+ (do_xfer_memory): Use "target_section_by_addr".
+ * target.h (target_section_by_addr): Declare.
+
+ * target.h (struct target_ops): Add "to_read_partial" and
+ "to_write_partial", delete "to_query".
+ (target_read_partial, target_write_partial): Declare.
+ (target_read, target_write): Declare.
+ (target_query): Delete macro.
+ * target.c (target_read_partial): New function.
+ (target_write_partial, target_read, target_write): New function.
+ (update_current_target): Delete inheritance of "to_query". Add
+ comments about "to_read_partial" and "to_write_partial".
+ (debug_to_partial_read, debug_to_partial_write): New functions.
+ (debug_to_query): Delete function.
+ (setup_target_debug): Set "to_read_partial" and "to_write_partial"
+ instead of "to_query".
+ * remote.c (remote_read_partial): Replace "remote_query".
+ (init_remote_ops): Set "to_read_partial" instead of "to_query".
+ (init_remote_async_ops): Ditto.
+ * kod.c (gdb_kod_query): Make "bufsize" a LONGEST. Use
+ "target_read_partial" instead of "target_query".
+ * avr-tdep.c (avr_io_reg_read_command): Make "bufsize" a LONGEST.
+ Use "target_read_partial" instead of "target_query".
+
+2003-10-17 Jeff Johnston <jjohnstn@redhat.com>
+
+ * frame.h (struct frame_id): Add new field: special_addr.
+ (frame_id_build_special): New prototype.
+ * frame.c (frame_id_build_special): New function.
+ (frame_id_build): Change to call frame_id_build_special().
+ (frame_id_eq): Change to also test special_addr field.
+ (frame_id_inner): Update comment.
+
+2003-10-17 Andrew Cagney <cagney@redhat.com>
+
+ * target.c (update_current_target): Perform the target cleanup.
+ Put the target stack beneath the squashed "current_target".
+ (add_target): Delete disabled call to "cleanup_target".
+ (cleanup_target): Delete function.
+ (push_target, unpush_target): Do not call "cleanup_target".
+
+2003-10-17 Andrew Cagney <cagney@redhat.com>
+
+ * target.c (target_stack): Change to a static target_ops.
+ (update_current_target): Walk the "struct target_ops" stack.
+ (pop_target, do_xfer_memory, target_info): Ditto.
+ (find_target_beneath): Ditto.
+ (push_target): Rewrite to use the "struct target_ops" stack.
+ (unpush_target): Ditto.
+ * target.h (struct target_stack_item): Delete definition.
+ (target_stack): Delete declaration.
+ (struct target_ops): Add field "beneath".
+
+2003-10-17 Shrinivas Atre <shrinivasa@KPITCummins.com>
+
+ * gdb/config/h8300/tm-h8300.h (h8300_normal_mode): Add external
+ declaration.
+ * gdb/h8300-tdep.c (BINWORD): Update BINWORD for h8300_normal_mode
+ (h8300_examine_prologue): Use h8300_normal_mode flag
+ (h8300_gdbarch_init): Set architecture info for normal mode
+
+2003-10-16 Daniel Jacobowitz <drow@mvista.com>
+
+ * remote.c (remote_protocol_vcont): New variable.
+ (set_remote_protocol_vcont_packet_cmd): New function.
+ (show_remote_protocol_vcont_packet_cmd): New function.
+ (init_all_packet_configs): Handle remote_protocol_vcont.
+ (remote_vcont_probe): New function.
+ (remote_vcont_resume): New function.
+ (remote_resume): Use it.
+ (remote_async_resume): Call remote_resume.
+ (_initialize_remote): Add verbose-resume packet commands.
+
+2003-10-16 Andrew Cagney <cagney@redhat.com>
+
+ * infrun.c (handle_inferior_event): Add comment about
+ "frame_id_inner" being too weak.
+
+2003-10-16 Elena Zannoni <ezannoni@redhat.com>
+
+ * minsyms.c (lookup_minimal_symbol_solib_trampoline): Remove
+ second parameter, which is always null. Remove
+ SOFUN_ADDRESS_MAYBE_MISSING ifdeffed code.
+ * symtab.h (lookup_minimal_symbol_solib_trampoline): Update
+ accordingly.
+ * somsolib.c (som_solib_create_inferior_hook,
+ som_solib_desire_dynamic_linker_symbols): Update callers.
+ * hppa-tdep.c (hppa_fix_call_dummy): Ditto.
+
+2003-10-16 Kei Sakamoto <sakamoto.kei@renesas.com>
+
+ * remote-m32r-sdi.c : New file, interface to m32r on-chip
+ debug interface, SDI (Scalable Debug Interface).
+ * NEWS: Mention m32r SDI protocol was supported.
+ * Makefile.in (remote-m32r-sdi.o): Add build rule.
+ * config/m32r/m32r.mt (TDEPFILES) : Add remote-m32r-sdi.o.
+
+2003-10-15 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-linux-tdep.c: Include gdbcore.h.
+ (IA64_LINUX_SIGCONTEXT_OFFSET): Magic constant removed.
+ (ia64_linux_sigcontext_register_addr): Find the address of the
+ sigcontext area stored in the sigframe instead of using
+ a magic offset constant.
+
+2003-10-15 Andrew Cagney <cagney@redhat.com>
+
+ * remote.c (remote_search): Delete function.
+ * target.h (target_search): Delete disabled macro.
+ (struct target_ops): Delete disabled field "to_search".
+
+2003-10-14 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (frv_frame_this_id): Call inside_entry_func()
+ instead of deprecated_inside_entry_file().
+
+2003-10-14 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c: Fix copy/paste hangover in comment.
+ (sh_push_dummy_call_fpu): Accomodate double passing in little endian
+ mode.
+ (sh3e_sh4_extract_return_value): Ditto.
+
+2003-10-13 Richard Henderson <rth@redhat.com>
+
+ * f-typeprint.c (f_type_print_base): Handle TYPE_CODE_REF.
+ * f-valprint.c (f_val_print): Likewise. Tweak TYPE_CODE_PTR to
+ match c_val_print a bit closer.
+
+2003-10-13 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (max_instrs_per_bundle, frv_instr_size): New constants.
+ (frv_gdbarch_adjust_breakpoint_address): New function.
+ (frv_gdbarch_init): Initialize ``gdbarch_adjust_breakpoint_address''
+ method.
+
+2003-10-13 Kevin Buettner <kevinb@redhat.com>
+
+ * breakpoint.h (struct breakpoint): Add new member
+ ``requested_address''.
+ * breakpoint.c (breakpoint_adjustment_warning)
+ (adjust_breakpoint_address): New static functions.
+ (print_it_typical): Issue warning if breakpoint's address is different
+ from its requested address.
+ (set_raw_breakpoint, set_longjmp_resume_breakpoint, watch_command_1)
+ (breakpoint_re_set_one): Set breakpoint's
+ ``requested_address'' field. Set ``address'' field to the
+ result of calling adjust_breakpoint_address() on the requested
+ address.
+
+2003-10-13 Kevin Buettner <kevinb@redhat.com>
+
+ * gdbarch.sh (ADJUST_BREAKPOINT_ADDRESS): New method.
+ * gdbarch.h, gdbarch.c: Regenerate.
+
+2003-10-11 Mark Kettenis <kettenis@gnu.org>
+
+ * i386bsd-tdep.c (i386bsd_init_abi): Use ARRAY_SIZE to initialize
+ TDEP->sc_num_regs.
+
+ * i386fbsd-tdep.c: New file.
+ (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
+ i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
+ i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Move here from
+ i386bsd-tdep.c.
+ (_initialize_i386fbsd_tdep): New function.
+ (i386fbsd_r_reg_offset, i386fbsd4_r_reg_offset): New varibles.
+ (i386fbsdaout_init_abi): Initialize TDEP->gregset_reg_offset,
+ TDEP->gregset_num_regs, TDEP->sizeof_gregset and
+ TDEP->sizeof_fpregset. Use ARRAY_SIZE to initialize
+ TDEP->sc_num_regs.
+ (i386fbsd4_init_abi): Initialize TDEP->gregset_reg_offset,
+ TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
+ to initialize TDEP->sc_num_regs.
+ * i386bsd-tdep.c (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
+ i386fbsd_sc_reg_offset, i386fbsdaout_init_abi, i386fbsd_init_abi,
+ i386fbsd4_sc_reg_offset, i386fbsd4_init_abi): Remove.
+ (_initialize_i386bsd_tdep): Don't register FreeBSD a.out and
+ FreeBSD ELF OS/ABI's here.
+ * Makefile.in (ALLDEPFILES): Add i386fbsd-tdep.c.
+ (i386fbsd-tdep.o): New target.
+ * config/i386/fbsd.mt (TDEPFILES): Add i386fbsd-tdep.o.
+ * config/i386/fbsd64.mt (TDEPFILES): Add i386fbsd-tdep.o.
+
+ * amd64fbsd-tdep.c (amd64fbsd_r_reg_offset): New variable.
+ (amd64fbsd_init_abi): Set TDEP->gregset_reg_offset,
+ TDEP->gregset_num_regs and TDEP->sizeof_gregset. Use ARRAY_SIZE
+ in initialization of TDEP->sc_num_regs.
+
+ * x86-64-tdep.c (x86_64_regset_from_core_section): New function.
+ (x86_64_init_abi): Initialize regset_from_core_section if
+ appropriate.
+
+ * i386-tdep.c (i386_regset_from_core_section): New function.
+ (i386_gdbarch_init): Initialize regset_from_core_section if
+ appropriate.
+ * i386-tdep.h (i386_regset_from_core_section): New declaration.
+
+ * i386-tdep.h (struct regset): Declare opaque.
+
+ * gdbarch.sh (regset_from_core_section): New method.
+ (struct regset): Declare opaque.
+ * gdbarch.c, gdbarch.h: Regenerated.
+
+2003-10-11 Alan Modra <amodra@bigpond.net.au>
+
+ * hppa-tdep.c (hppa_in_solib_call_trampoline): Don't refer directly to
+ _cooked_size and vma; Use bfd_section_size and bfd_get_section_vma.
+ Correct test for pc within section.
+
+2003-10-11 Mark Kettenis <kettenis@gnu.org>
+
+ * gdbarch.sh: Remove trailing whitepsace from comments.
+
+2003-10-08 Roland McGrath <roland@redhat.com>
+
+ * gcore.c (make_mem_sec): Function removed, folded into ...
+ (gcore_create_callback): ... here. To omit a section, clear its
+ SEC_LOAD bit rather than zeroing its size.
+ Omit read-only sections only if they correspond to a known disk file.
+ (gcore_copy_callback): Ignore sections without SEC_LOAD flag set.
+
+2003-10-10 Michael Snyder <msnyder@redhat.com>
+
+ * d10v-tdep.c: Fix typo in comment.
+
+2003-10-10 Andrew Cagney <cagney@redhat.com>
+
+ * rs6000-tdep.c (e500_store_return_value): Delete function.
+ (e500_extract_return_value): Delete function.
+ (rs6000_gdbarch_init): When SYSV, set "extract_return_value" and
+ "restore_return_value" to "ppc_sysv_abi_extract_return_value" and
+ "ppc_sysv_abi_restore_return_value" where applicable.
+ * ppc-tdep.h: (ppc_sysv_abi_store_return_value): Declare.
+ (ppc_sysv_abi_extract_return_value): Declare.
+ (ppc_sysv_abi_broken_store_return_value): Declare.
+ (ppc_sysv_abi_broken_extract_return_value): Declare.
+ (ppc_sysv_abi_broken_use_struct_convention:) Delete declaration.
+ * ppc-sysv-tdep.c (return_value_convention): Move definition to
+ start of file.
+ (do_ppc_sysv_return_value): New function.
+ (ppc_sysv_abi_extract_return_value): New function.
+ (ppc_sysv_abi_store_return_value): New function.
+ (ppc_sysv_abi_broken_extract_return_value): New function.
+ (ppc_sysv_abi_broken_store_return_value): New function.
+ (ppc_sysv_abi_use_struct_convention): Call
+ do_ppc_sysv_return_value.
+
+2003-10-10 J. Brobecker <brobecker@gnat.com>
+
+ * blockframe.c (inside_main_func): No longer use symbol_lookup()
+ to lookup the main function symbol.
+
+2003-10-10 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c (sh_treat_as_flt_p): New function to recognize float
+ types correctly.
+ (sh_push_dummy_call_fpu): Fix argument passing rules.
+ (sh3e_sh4_extract_return_value): Call sh_treat_as_flt_p to recognize
+ float types.
+ (sh3e_sh4_store_return_value): Ditto.
+
+2003-10-10 Elena Zannoni <ezannoni@redhat.com>
+
+ * sh-tdep.c (sh_use_struct_convention): Clarify one case in
+ comment.
+
+2003-10-10 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c (sh_use_struct_convention): Clean up to have a
+ more readable code. Accomodate passing of bitfields.
+
+2003-10-10 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (ppc-sysv-tdep.o): Add $(gdb_assert_h).
+ * rs6000-tdep.c (rs6000_gdbarch_init): When 64 bit SysV ABI, set
+ push_dummy_call to ppc64_sysv_abi_push_dummy_call.
+ * ppc-sysv-tdep.c: Include "gdb_assert.h".
+ (ppc64_sysv_abi_push_dummy_call): New function.
+ (ppc64_sysv_abi_broken_push_dummy_call): New function.
+ * ppc-tdep.h (ppc64_sysv_abi_push_dummy_call): Declare.
+ (ppc64_sysv_abi_broken_push_dummy_call): Declare.
+
+2003-10-10 Kei Sakamoto <sakamoto.kei@renesas.com>
+
+ * NEWS: Replace "Hitachi" and "Mitsubishi" with "Renesas".
+ * README: Ditto.
+ * d10v-tdep.c: Ditto.
+ * h8300-tdep.c: Ditto.
+ * remote-e7000.c: Ditto.
+ * remote-hms.c: Ditto.
+ * ser-e7kpc.c: Ditto.
+ * sh-stub.c: Ditto.
+ * sh-tdep.c: Ditto.
+ * sh-tdep.h: Ditto.
+ * sh3-rom.c: Ditto.
+ * sh64-tdep.c: Ditto.
+ * top.c: Ditto.
+ * wince.c: Ditto.
+ * config/d10v/d10v.mt: Ditto.
+ * config/sh/embed.mt: Ditto.
+ * config/sh/linux.mt: Ditto.
+ * config/sh/tm-linux.h: Ditto.
+ * config/sh/tm-sh.h: Ditto.
+ * config/sh/wince.mt: Ditto.
+
+2003-10-09 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-tdep.h (struct type): Declare opaque.
+ * x86-64-tdep.h (struct regcache): Declare opaque.
+ * sh-tdep.c (sh_do_fp_register): Delete "register" attribute, fix
+ coding style.
+
+2003-10-09 Andrew Cagney <cagney@redhat.com>
+
+ Changes from 2003-09-09 Jimi Xenidis <jimix@watson.ibm.com>:
+ * config/rs6000/tm-rs6000.h (SOFTWARE_SINGLE_STEP): Delete macro.
+ (SOFTWARE_SINGLE_STEP_P): Ditto.
+ * config/powerpc/tm-ppc-eabi.h (SOFTWARE_SINGLE_STEP_P): Ditto.
+ * config/powerpc/tm-linux.h (SOFTWARE_SINGLE_STEP): Ditto.
+ (SOFTWARE_SINGLE_STEP_P): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): When AIX, set
+ software_single_step to rs6000_software_single_step.
+
+2003-10-09 Andrew Cagney <cagney@redhat.com>
+
+ * MAINTAINERS: Mark m32r-elf as buildable with -Werror.
+
+2003-10-09 Michael Snyder <msnyder@redhat.com>
+
+ * frame.h: Fix typo in comment.
+ * dummy-frame.c: Fix typo in comment.
+ * d10v-tdep.c: Random whitespace/comment tweaks.
+
+2003-10-09 Elena Zannoni <ezannoni@redhat.com>
+
+ * sh-tdep.c (sh_gdbarch_init): Delete setting of push_dummy_code.
+ (sh_push_dummy_code): Delete function, it's only used for dummy calls
+ on stack.
+
+ Based on input by Stephen Clarke (stephen.clarke@superh.com):
+ * sh-tdep.c (sh_use_struct_convention): Add comment explaining ABI
+ in detail.
+
+2003-10-09 Daniel Jacobowitz <drow@mvista.com>
+
+ * remote-mips.c (mips_initialize): Remove unneeded call to
+ get_selected_frame. Suggested by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
+
+2003-10-09 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2expr.c (execute_stack_op): Don't treat the frame base as
+ a memory pointer.
+
+2003-10-08 Jeff Johnston <jjohnstn@redhat.com>
+
+ * lin-lwp.c (stop_and_resume_callback): Set the resumed flag
+ for any lwp we resume.
+ (running_callback): Add lwps that have pending status events
+ against them to be considered running.
+
+2003-10-08 Kei Sakamoto <sakamoto.kei@renesas.com>
+
+ * m32r-tdep.c : Include "dis-asm.h".
+ * Makefile.in (m32r-tdep.o): Update dependencies.
+
+2003-10-06 J. Brobecker <brobecker@gnat.com>
+
+ * completer.h (get_gdb_completer_word_break_characters): Delete.
+ * completer.c: include language.h.
+ (gdb_completer_word_break_characters): Delete.
+ (get_gdb_completer_word_break_characters): Delete.
+ (location_completer): Use the word break characters of the current
+ language.
+ (complete_line): Likewise.
+ (line_completion_function): Likewise.
+ (skip_quoted_chars): Likewise.
+ * Makefile.in (completer.o): Add dependency on language.h.
+ * top.c (init_main): Set the readline word break characters
+ to GDB's default word break characters.
+
+2003-10-06 J. Brobecker <brobecker@gnat.com>
+
+ * language.h (language_defn): new field, la_word_break_characters.
+ * language.c (unknown_language_defn): Set new field to
+ default_word_break_characters.
+ (auto_language_defn): Likewise.
+ (local_language_defn): Likewise.
+ * ada-lang.c (ada_language_defn): Likewise.
+ * c-lang.c (c_language_defn): Likewise.
+ (cplus_language_defn): Likewise.
+ (asm_language_defn): Likewise.
+ (minimal_language_defn): Likewise.
+ * f-lang.c (f_language_defn): Likewise.
+ * jv-lang.c (java_language_defn): Likewise.
+ * m2-lang.c (m2_language_defn): Likewise.
+ * objc-lang.c (objc_language_defn): Likewise.
+ * p-lang.c (pascal_language_defn): Likewise.
+ * scm-lang.c (scm_language_defn): Likewise.
+
+2003-10-06 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-sysv-tdep.c: Re-indent.
+
+2003-10-06 J. Brobecker <brobecker@gnat.com>
+
+ * language.h (default_word_break_characters): Add prototype.
+ * language.c (default_word_break_characters): New function.
+
+2003-10-06 Andreas Schwab <schwab@suse.de>
+
+ * i386-tdep.c (i386_analyze_frame_setup): Also handle xorl/subl
+ with %eax.
+
+2003-10-06 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (ALLDEPFILES): Remove "z8k-tdep.c" and
+ "h8500-tdep.c".
+ (z8k-tdep.o): Delete custom build rule.
+
+2003-10-06 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in: Update all dependencies.
+
+ * MAINTAINERS: Mention that h8500, mn10200, and z8k were deleted.
+ No longer list PA as as obsolete candidate. List m32r as
+ broken instead of obsolete.
+
+ * config/nm-m3.h, config/h8500/h8500.mt: Delete obsolete files.
+ * config/h8500/tm-h8500.h, config/i386/nm-ptx4.h: Ditto.
+ * config/i386/nm-symmetry.h, config/i386/ptx.mh: Ditto.
+ * config/i386/ptx.mt, config/i386/ptx4.mh: Ditto.
+ * config/i386/ptx4.mt, config/i386/symmetry.mh: Ditto.
+ * config/i386/symmetry.mt, config/i386/tm-ptx.h: Ditto.
+ * config/i386/tm-ptx4.h, config/i386/tm-symmetry.h: Ditto.
+ * config/i386/xm-ptx.h, config/i386/xm-ptx4.h: Ditto.
+ * config/i386/xm-symmetry.h, config/mips/mipsm3.mh: Ditto.
+ * config/mips/mipsm3.mt, config/mips/tm-mipsm3.h: Ditto.
+ * config/mips/xm-mipsm3.h, config/mn10200/mn10200.mt: Ditto.
+ * config/mn10200/tm-mn10200.h, config/pa/hppabsd.mh: Ditto.
+ * config/pa/hppabsd.mt, config/pa/hppaosf.mh: Ditto.
+ * config/pa/hppaosf.mt, config/pa/hppapro.mt: Ditto.
+ * config/pa/nm-hppab.h, config/pa/nm-hppao.h: Ditto.
+ * config/pa/tm-hppab.h, config/pa/tm-hppao.h: Ditto.
+ * config/pa/tm-pro.h, config/pa/xm-hppab.h: Ditto.
+ * config/pa/xm-pa.h, config/sparc/sparclet.mt: Ditto.
+ * config/sparc/sparclite.mt, config/sparc/tm-sparclet.h: Ditto.
+ * config/sparc/tm-sparclite.h, config/z8k/tm-z8k.h: Ditto.
+ * config/z8k/z8k.mt: Ditto.
+
+ * NEWS: Mention that z8k-zilog-none, z8ksim, mn10200-*-*,
+ h8500hms, hppa*-*-bsd*, hppa*-*-osf*, hppa*-*-pro*,
+ mips*-*-mach3*, i[3456]86-sequent-sysv4*, i[3456]86-sequent-sysv*,
+ i[3456]86-sequent-bsd*, sparclet-*-*, sparclite-fujitsu-none, and
+ sparclite were removed.
+ * configure.host, configure.tgt: Remove corresponding tuples.
+
+ * breakpoint.c, breakpoint.h: Remove obsolete code.
+ * buildsym.c, dbxread.c, gdbtypes.c, mdebugread.c: Ditto.
+ * monitor.c, sparc-tdep.c, stabsread.c: Ditto.
+ * stabsread.h, xcoffread.c: Ditto.
+
+ * z8k-tdep.c, symm-tdep.c, symm-nat.c: Delete obsolete file.
+ * sparclet-stub.c, sparclet-rom.c: Delete obsolete file.
+ * sparcl-tdep.c, sparcl-stub.c, h8500-tdep.c: Delete obsolete file.
+ * m3-nat.c, mipsm3-nat.c, mn10200-tdep.c: Delete obsolete file.
+
+2003-10-06 David Lecomber <dsl@sources.redhat.com>
+
+ * f-valprint.c: Reformatting
+
+2003-10-06 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c: Remove duplicate comment.
+
+ * x86-64-tdep.c (x86_64_store_return_value): Don't use
+ DEPRECATED_REGISTER_RAW_SIZE. Use symbolic names for register
+ names for return values. This fixes a bug since we looked at %rbx
+ instead of %rdx.
+
+2003-10-05 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c: Include "regset.h".
+
+ * i386-tdep.h (struct gdbarch_tdep): Add members gregset,
+ gregset_reg_offset, gregset_num_regs, sizeof_gregset, fpregset,
+ sizeof_fpregset.
+ * i386-tdep.c: Include "regset.h".
+ (i386_supply_gregset): New function.
+ (i386_supply_fpregset): New function.
+ (i386_gdbarch_init): Initialze register set-related members of
+ TDEP.
+ * x86-64-tdep.c (x86_64_supply_fpregset): New function.
+ (x86_64_init_abi): Initialize TDEP->sizeof_fpregset.
+
+2003-10-03 Andrew Cagney <cagney@redhat.com>
+
+ * rs6000-tdep.c (rs6000_gdbarch_init): When the 64 bit SysV ABI,
+ set extract_return_value, store_return_value and
+ use_struct_convention to ppc64_sysv_abi_extract_return_value,
+ ppc64_sysv_abi_store_return_value and
+ ppc64_sysv_abi_use_struct_convention.
+ * ppc-tdep.h (ppc64_sysv_abi_extract_return_value): Declare.
+ (ppc64_sysv_abi_store_return_value): Declare.
+ (ppc64_sysv_abi_use_struct_convention): Declare.
+ * ppc-sysv-tdep.c (enum return_value_convention): Define.
+ (ppc64_sysv_abi_extract_return_value): New function.
+ (ppc64_sysv_abi_store_return_value): New function.
+ (ppc64_sysv_abi_use_struct_convention): New function.
+ (ppc64_sysv_abi_return_value): New function.
+
+2003-10-03 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr): Only
+ convert a descriptor to a function when it's in the ".opd"
+ section.
+
+2003-10-03 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c (sh_push_dummy_call_fpu): Initialize flt_argreg and
+ reg_size to keep GCC silent.
+
+2003-10-03 Corinna Vinschen <vinschen@redhat.com>
+
+ * dwarf2-frame.c (struct comp_unit): Add tbase member to store
+ base for DW_EH_PE_textrel encodings.
+ (read_encoded_value): Add a DW_EH_PE_textrel case.
+ (dwarf2_build_frame_info): Set unit.tbase to beginning of text
+ section.
+
+2003-10-03 Mark Kettenis <kettenis@gnu.org>
+
+ * dwarf2-frame.c (dwarf2_build_frame_info): Fix comment.
+
+2003-10-02 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_REGISTER_RAW_SIZE): Rename
+ REGISTER_RAW_SIZE.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * aix-thread.c, alpha-tdep.h, arm-tdep.c, core-sol2.c: Update.
+ * cris-tdep.c, dve3900-rom.c, findvar.c, frame.c: Update.
+ * hppa-tdep.c, hppab-nat.c, hppah-nat.c, hppam3-nat.c: Update.
+ * hpux-thread.c, i386gnu-nat.c, ia64-aix-nat.c: Update.
+ * ia64-linux-nat.c, ia64-tdep.c, infcmd.c, infptrace.c: Update.
+ * infrun.c, irix5-nat.c, lynx-nat.c, mips-linux-tdep.c: Update.
+ * mips-nat.c, mips-tdep.c, mipsv4-nat.c, mn10300-tdep.c: Update.
+ * monitor.c, ns32k-tdep.c, ppc-linux-nat.c, regcache.c: Update.
+ * remote-e7000.c, remote-mips.c, remote-sim.c: Update.
+ * remote-vxmips.c, remote-vxsparc.c, remote.c: Update.
+ * rom68k-rom.c, rs6000-nat.c, rs6000-tdep.c, s390-tdep.c: Update.
+ * sh64-tdep.c, sparc-nat.c, sparc-tdep.c, stack.c: Update.
+ * target.c, tracepoint.c, v850-tdep.c, v850ice.c, valops.c: Update.
+ * vax-tdep.c, vax-tdep.h, x86-64-tdep.c, xstormy16-tdep.c: Update.
+ * config/m68k/tm-delta68.h, config/m68k/tm-vx68.h: Update.
+ * config/sparc/tm-sparc.h, config/sparc/tm-sparclynx.h: Update.
+
+2003-10-02 Jim Blandy <jimb@redhat.com>
+
+ * dwarf2read.c (struct die_info): Doc fix.
+
+2003-10-02 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c: Running thru gdb_indent.sh.
+
+2003-10-02 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c (sh_justify_value_in_reg): New function.
+ (sh_stack_allocsize): Ditto.
+ (flt_argreg_array): New array used for floating point argument
+ passing.
+ (sh_init_flt_argreg): New function.
+ (sh_next_flt_argreg): Ditto.
+ (sh_push_dummy_call_fpu): Simplify. Rename "odd_sized_struct" to
+ "pass_on_stack". Use new helper functions. Accomodate Renesas ABI.
+ Fix argument passing strategy.
+ (sh_push_dummy_call_nofpu): Ditto.
+
+2003-10-01 Andrew Cagney <cagney@redhat.com>
+
+ * value.h (register_value_being_returned): Declare. Replace
+ "value_being_returned".
+ * infcall.c (call_function_by_hand): Use
+ register_value_being_returned.
+ * infcmd.c (print_return_value): Call
+ "register_value_being_returned", handle struct return locally.
+ * values.c (register_value_being_returned): New function. Replace
+ "value_being_returned".
+
+2003-09-30 Elena Zannoni <ezannoni@redhat.com>
+
+ * linux-proc.c (linux_do_registers): New function.
+ (linux_make_note_section): Use linux_do_registers in case of
+ single threaded inferior programs.
+
+2003-10-01 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): When STRUCT_RETURN, always
+ use STRUCT_ADDR. When not using "struct return convention", pass
+ "0" to "value_being_returned". Add FIXMEs.
+ * infcmd.c (print_return_value): Pass an explicit 0/1 to
+ value_being_returned. Add comments.
+ * values.c (value_being_returned): Add fixme.
+ * hppa-tdep.c (hppa_extract_struct_value_address): Add FIXME.
+ (hppa_value_returned_from_stack): Add FIXME.
+
+2003-09-30 David Carlton <carlton@kealia.com>
+
+ * dwarf2read.c (struct die_info): Add 'parent' field; replace
+ 'has_children' and 'next' by 'child' and 'sibling'.
+ (read_comp_unit): Rework algorithm, breaking body into
+ read_die_and_children and read_die_and_siblings.
+ (read_die_and_children, read_die_and_siblings): New.
+ (read_full_die): Add 'has_children' argument; set it instead of
+ the die's 'has_children' field. Minor formatting cleanup.
+ (free_die_list): Use die->child and die->sibling instead of
+ die->next.
+ (dump_die_list): Ditto.
+ (sibling_die): Use die->sibling.
+ (psymtab_to_symtab_1): Use die's 'child' field in place of its
+ 'has_children' and 'next' fields.
+ (process_die, read_file_scope, read_func_scope)
+ (read_lexical_block_scope, read_structure_scope)
+ (read_enumeration, read_array_type, read_common_block)
+ (read_namespace, read_subroutine_type, dump_die): Ditto.
+
+2003-09-30 Andrew Cagney <cagney@redhat.com>
+
+ * rs6000-tdep.c (rs6000_gdbarch_init): Set the PowerOpen red zone
+ to 224, not 220.
+
+2003-09-30 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_REGISTER_VIRTUAL_SIZE): Rename
+ REGISTER_VIRTUAL_SIZE.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * vax-tdep.h, sparc-tdep.c, regcache.h: Update.
+ * regcache.c, mn10300-tdep.c, mips-tdep.c: Update.
+ * infcmd.c, frame.c, findvar.c, cris-tdep.c: Update.
+
+2003-09-29 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_REGISTER_VIRTUAL_TYPE): Rename
+ REGISTER_VIRTUAL_TYPE.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * arch-utils.c, hppa-tdep.c, regcache.c, regcache.h: Update.
+ * sh64-tdep.c, sparc-tdep.c: Update.
+
+ * remote-vxsparc.c (vx_read_register): Replace bzero with memset.
+ * remote-vxmips.c (vx_read_register): Ditto.
+ * remote-vx68.c (vx_read_register): Ditto.
+ * gnu-nat.c (inf_validate_procs): Ditto.
+
+2003-09-29 J. Brobecker <brobecker@gnat.com>
+
+ * infcall.c (call_function_by_hand): Fix build failure
+ introduced in the previous change to this file.
+
+2003-09-29 Andrew Cagney <cagney@redhat.com>
+
+ * NEWS: Mention Objective-C.
+
+2003-09-29 Jerome Guitton <guitton@act-europe.fr>
+
+ * arm-tdep.c (arm_make_prologue_cache): Use trad_frame_addr_p to
+ test if the register has been saved on the stack.
+ (arm_scan_prologue_cache): When analysing the instruction
+ "str lr, [sp, #-4]", save the address where lr has been stored.
+
+2003-09-28 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (frame_read_unsigned_register): Delete function.
+ * frame.h (frame_read_unsigned_register): Delete declaration.
+ * sparc-tdep.c (sparc_init_extra_frame_info): Use
+ get_frame_register_unsigned.
+ (sparc_frame_saved_pc, sparc_pop_frame): Ditto.
+ * m68hc11-tdep.c (m68hc11_print_register): Ditto.
+ * d10v-tdep.c (d10v_print_registers_info): Ditto.
+
+ * frame.h (frame_read_register): Delete declaration.
+ * frame.c (frame_read_register): Delete function.
+ * arch-utils.c (legacy_register_to_value): Use get_frame_register.
+ * sparc-tdep.c (sparc_fetch_pointer_argument): Ditto.
+ * rs6000-tdep.c (rs6000_fetch_pointer_argument): Ditto.
+ * mips-tdep.c (mips_register_to_value): Ditto.
+ * hppa-tdep.c (hppa_fetch_pointer_argument): Ditto.
+ * d10v-tdep.c (d10v_print_registers_info): Ditto.
+
+ * frame.c (frame_read_signed_register): Delete function.
+ (frame_read_unsigned_register): Update comments.
+ * frame.h (frame_read_signed_register): Delete declaration.
+ * h8300-tdep.c (h8300_print_register): Use
+ get_frame_register_signed.
+ * m68hc11-tdep.c (m68hc11_print_register): Ditto.
+
+ * config/pa/tm-hppa.h (DEPRECATED_VALUE_RETURNED_FROM_STACK):
+ Rename VALUE_RETURNED_FROM_STACK.
+ * infcmd.c (print_return_value): Update.
+ * infcall.c (call_function_by_hand): Update.
+
+2003-09-28 Mark Kettenis <kettenis@gnu.org>
+
+ * i387-tdep.c (i387_supply_fsave, i387_supply_fxsave): Add
+ regcache argument and reverse the order of the other two
+ arguments. Remove local regcache variable. Determine
+ architecture from REGCACHE. Update comments.
+ * x86-64-tdep.c (x86_64_supply_fxsave): Add regcache argument and
+ reverse the order of the other two arguments. Remove local
+ regcache variable. Determine architecture from REGCACHE. Update
+ comments.
+ * i387-tdep.h (i387_supply_fsave, i387_supply_fxsave): Adjust
+ prototypes. Update comments.
+ * x86-64-tdep.c (x86_64_supply_fxsave): Adjust prototype. Adjust
+ comment.
+ * amd64fbsd-nat.c (supply_fpregset, fetch_inferior_registers):
+ Update.
+ * go32-nat.c (fetch_register, go32_fetch_registers): Update.
+ * i386-interix-nat.c (supply_fpregset): Update.
+ * i386-linux-nat.c (supply_fpregset, supply_fpxregset): Update.
+ * i386-nto-tdep.c (i386nto_supply_fpregset): Update.
+ * i386gnu-nat.c (fetch_fpregs, supply_fpregset): Update.
+ * i386bsd-nat.c (supply_fpregset, fetch_inferior_registers): Update.
+ * i386nbsd-tdep.c (fetch_core_registers, fetch_elfcore_registers):
+ Update.
+ * i386obsd-tdep.c (fetch_core_registers): Update.
+ * i386v4-nat.c (supply_fpregset): Update.
+ * x86-64-linux-nat.c (supply_fpregset): Update.
+ * x86-64-linux-tdep.c (fetch_core_registers): Update.
+
+2003-09-27 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.h: Put opaque declarations in alphabetical
+ order. Remove spurious whitespace.
+ (struct gdbarch_tdep): add st0_regnum and mm0_regnum members.
+ (i386_sse_regnum_p, i386_mxcsr_regnum_p): Remove prototypes.
+ * i386-tdep.c (MM0_REGNUM): Remove define.
+ (i386_mmx_regnum_p): Add gdbarch argument.
+ (i386_sse_regnum_p, i386_mxcsr_regnum_p): Add gdbarch argument.
+ Rewrite using new macro definitions for FPU/SSE registers.
+ (i386_fp_regnum_p, i386_fpc_regnum_p): Rewrite using new macro
+ definitions from i387-tdep.h.
+ (i386_register_name): Update.
+ (i386_stab_reg_to_regnum, i386_dwarf_reg_to_regnum): Update to use
+ new macro definitions for FPU/SSE registers.
+ (i386_extract_return_value): Determine whether floating-point
+ registers are present by examining REGCACHE's architecture.
+ (i386_store_return_value): Likewise. Use I386_MAX_REGISTER_SIZE
+ instead of FPU_REG_RAW_SIZE. Use new macro definitions for
+ FPU/SSE registers.
+ (i386_register_type): Update.
+ (i386_mmx_regnum_to_fp_regnum): Rewrite using new macro
+ definitions for FPU registers. Use REGCACHE's architecture to
+ determine the appropriate register numbers.
+ (i386_pseudo_register_read, i386_pseudo_register_write,
+ i386_register_reggroup_p): Update.
+ (i386_gdbarch_init): Initialize TDEP->st0_regnum and
+ TDEP->mm0_regnum.
+ * i387-tdep.h (I387_FCTRL_REGNUM, I387_FSTAT_REGNUM,
+ I387_FTAG_REGNUM, I387_FISEG_REGNUM, I387_FIOFF_REGNUM,
+ I387_FOSEG_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM,
+ I387_XMM0_REGNUM, I387_MXCSR_REGNUM): New defines.
+ (i387_supply_fsave, i387_fill_fsave, i387_supply_fxsave,
+ i387_fill_fxsave): Change type of fsave/fxsave argument from `char
+ *' to `void *'.
+ * i387-tdep.c (i387_print_float_info, fsave_offset, FSAVE_ADDR,
+ i387_supply_fsave, i387_fill_fsave, fxsave_offset, FXSAVE_ADDR,
+ i387_supply_fxsave, i387_fill_fxsave): Update to use new macro
+ definitions for FPU/SSE registers.
+ (FXSAVE_MXCSR_ADDR): New define.
+ * x86-64-tdep.c (x86_64_init_abi): Override TDEP->st0_regnum and
+ TDEP->mm0_regnum.
+ (I387_FISEG_REGNUM, I387_FOSEG_REGNUM): Remove defines.
+ (I387_ST0_REGNUM): Define.
+
+ * regcache.h (get_regcache_arch): New prototype.
+ * regcache.c (get_regcache_arch): New function.
+
+ * x86-64-tdep.c (x86_64_store_return_value): Remove spurious
+ whitespace.
+
+ * i386-tdep.c (i386_num_register_names, i386_num_mmx_regs):
+ Initialize using ARRAY_SIZE.
+
+2003-09-27 Andrew Cagney <cagney@redhat.com>
+
+ * arch-utils.c (deprecated_init_frame_pc_default): Rename
+ "init_frame_pc_default".
+ * arch-utils.h (deprecated_init_frame_pc_default): Update.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sh64-tdep.c (sh64_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * config/pa/tm-hppa.h (DEPRECATED_INIT_FRAME_PC): Update.
+
+2003-09-26 Mark Kettenis <kettenis@gnu.org>
+
+ * regset.h: New file.
+ * Makefile.in (regset_h): Add.
+
+2003-09-25 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h (deprecated_frame_saved_regs): Rename
+ get_frame_saved_regs.
+ * cris-tdep.c, frame.c, h8300-tdep.c, hppa-tdep.c: Update.
+ * mcore-tdep.c, mips-tdep.c, mn10300-tdep.c: Update.
+ * ns32k-tdep.c, ppc-linux-tdep.c, rs6000-tdep.c: Update.
+ * s390-tdep.c, sh64-tdep.c, stack.c: Update.
+ * v850-tdep.c, vax-tdep.c, xstormy16-tdep.c: Update.
+
+2003-09-25 Andrew Cagney <cagney@redhat.com>
+
+ * NEWS: Mention the new backtrace mechanism, DWARF 2 CFI, hosted
+ file I/O, multi-arch, TLS and NPTL, DWARF 2 Location Expressions,
+ and Java.
+ * PROBLEMS: Mention that mips*-*-*, powerpc*-*-*, sparc*-*-* and
+ arm*-*-* do not use the new frame code.
+
+2003-09-25 David Carlton <carlton@kealia.com>
+
+ * c-exp.y: Remove 'register' declarations.
+ * f-exp.y, jv-exp.y, m2-exp.y, objc-exp.y, p-exp.y: Ditto.
+
+2003-09-25 David Carlton <carlton@kealia.com>
+
+ * c-exp.y: Include cp-support.h. Add qualified_type.
+ (yylex): Delete nested type hack; add comments.
+ * cp-namespace.c (cp_lookup_nested_type): New function.
+ * cp-support.h: Declare cp_lookup_nested_type.
+ * eval.c (evaluate_subexp_standard): Call value_aggregate_elt
+ instead of value_struct_elt_for_reference.
+ * valops.c: Include cp-support.h.
+ (value_aggregate_elt): New function.
+ (value_namespace_elt): Ditto.
+ (value_struct_elt_for_reference): Make static.
+ * value.h: Delete declaration of value_struct_elt_for_reference;
+ add declaration for value_aggregate_elt.
+ * Makefile.in (c-exp.tab.o): Depend on $(cp_support_h).
+ (valops.o): Ditto.
+
+2003-09-25 Daniel Jacobowitz <drow@mvista.com>
+
+ * stack.c: Include "reggroups.h".
+ (frame_info): Only display registers in all_reggroup.
+ * Makefile.in (stack.o): Update dependencies.
+
+2003-09-25 Jerome Guitton <guitton@act-europe.fr>
+
+ * arm-tdep.c (arm_skip_prologue): Handle "sub ip, sp #n" and
+ "add ip, sp #n" in the prologue.
+ (arm_scan_prologue): Ditto.
+
+2003-09-25 Jerome Guitton <guitton@act-europe.fr>
+
+ * MAINTAINERS (write after approval): Add myself.
+
+2003-09-25 Andreas Schwab <schwab@suse.de>
+
+ * m68k-tdep.c: Include "dwarf2-frame.h".
+ (m68k_gdbarch_init): Add the DWARF CFI frame unwinder.
+ * Makefile.in (m68k-tdep.o): Update dependencies.
+
+2003-09-25 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c (struct frame_extra_info): Remove.
+ (struct sh_frame_cache): New structure.
+ (GET_SOURCE_REG): New macro extracting source register of an opcode.
+ (GET_TARGET_REG): Ditto but target register.
+ (GET_PUSHED_REG): Remove.
+ (IS_MOV_ARG_TO_REG): New macro.
+ (IS_MOV_ARG_TO_IND_R14): New macro.
+ (IS_MOV_ARG_TO_IND_R14_WITH_DISP): New macro.
+ (IS_MOVW_PCREL_TO_REG): New macro.
+ (IS_MOVL_PCREL_TO_REG): New macro.
+ (IS_SUB_REG_FROM_SP): New macro.
+ (IS_ARG_MOV): Remove.
+ (IS_MOV_TO_R14): Remove.
+ (IS_RESTORE_FP): New macro.
+ (IS_RTS): New macro.
+ (IS_LDS): New macro.
+ (IS_MOV_FP_SP): New macro.
+ (IS_ADD_REG_TO_FP): New macro.
+ (IS_ADD_IMM_FP): New macro.
+ (sh_skip_prologue_hard_way): Remove.
+ (sh_saved_pc_after_call): Remove.
+ (sh_frame_chain): Remove.
+ (sh_find_callers_reg): Remove.
+ (sh_nofp_frame_init_saved_regs): Remove.
+ (sh_fp_frame_init_saved_regs): Remove.
+ (sh_init_extra_frame_info): Remove.
+ (sh_analyze_prologue): New function.
+ (sh_skip_prologue): Remove deprecated code. Rely on new function
+ sh_analyze_prologue when after_prologue fails.
+ (sh_frame_saved_pc): Remove.
+ (sh_alloc_frame_cache): New function.
+ (sh_frame_cache): Ditto.
+ (sh_frame_prev_register): Ditto.
+ (sh_frame_this_id): Ditto.
+ (sh_frame_unwind): New structure defining the heuristic frame
+ sniffer interface.
+ (sh_frame_sniffer): New function.
+ (sh_unwind_sp): Ditto.
+ (sh_unwind_pc): Ditto.
+ (sh_unwind_dummy_id): Ditto.
+ (sh_frame_base_address): Ditto.
+ (sh_frame_base): New structure defining new frame base code.
+ (sh_in_function_epilogue_p): New function.
+ (sh_gdbarch_init): Restructure and simplify to eliminate deprecated
+ code and to call all new code instead. Initialize dwarf2 and
+ heuristic frame sniffer.
+
+2003-09-24 Paul N. Hilfinger <hilfingr@nile.gnat.com>
+
+ * parser-defs.h (struct exp_descriptor): New definition, containing
+ language-specific info for printing, prefixifying, dumping, and
+ evaluating expressions.
+ (exp_descriptor_standard): Declare new variable.
+ (print_subexp): Make global and declare here (from expprint.c).
+ (dump_subexp): Ditto.
+ (dump_subexp_body_standard): Declare.
+ (operator_length_standard): Declare.
+ (op_name_standard): Declare.
+ (print_subexp): Declare.
+ (print_subexp_standard): Declare.
+
+ * language.h (struct language_defn): Add la_exp_desc field to hold
+ pointer to table for language-specific operators.
+ Remove evaluate_exp field, which is now in struct exp_descriptor.
+
+ * parse.c (operator_length): Move most code to new
+ operator_length_standard function. Use language-specific information.
+ (operator_length_standard): New function taking most code from
+ operator_length.
+ (exp_descriptor_standard): New constant.
+
+ * expression.h (enum exp_opcode): Add definitions of OP_EXTENDED0
+ and OP_EXTENDED_LAST.
+
+ * expprint.c (print_subexp): Use language-specific print_subexp.
+ Make global; remove static declaration.
+ Move most code to print_subexp_standard.
+ (print_subexp_standard): New function, containing code formerly in
+ print_subexp.
+ (op_name): Add expression to argument signature.
+ Use langauge-specific op_name.
+ Move most code to op_name_standard.
+ (op_name_standard): New function, containing code formerly in op_name.
+ (dump_subexp): Use new version of op_name function.
+ Use language-specific dump_subexp_body, and move most existing code to
+ dump_subexp_body_standard.
+ (dump_raw_expression): Use new op_name interface.
+ (dump_subexp_body): Move most code to dump_subexp_body_standard.
+ (dump_subexp_body_standard): New function, containing code formerly
+ in dump_subexp_body.
+
+ * language.c (unknown_language): Add default la_exp_desc field and
+ remove evaluate_exp field.
+ (auto_language): Ditto.
+ (local_language): Ditto.
+ * f-lang.c (f_language_defn): Ditto.
+ * c-lang.c (c_language_defn): Ditto.
+ (cplus_language_defn): Ditto.
+ (asm_language_defn): Ditto.
+ (minimal_language_defn): Ditto.
+ * p-lang.c (pascal_language_defn): Ditto.
+ * m2-lang.c (m2_language_defn): Ditto.
+ * objc-lang.c (objc_language_defn): Ditto.
+
+ * jv-lang.c (exp_descriptor_java): New variable, containing
+ Java-specific expression evaluator.
+ (java_language_defn): Add la_exp_desc field and remove evaluate_exp
+ field.
+ * scm-lang.c (exp_descriptor_scm): New variable, containing
+ Scheme-specific expression evaluator.
+ (scm_language_defn): Add la_exp_desc field and remove evaluate_exp
+ field.
+ * objc-lang.c (print_object_command): Take evaluate_exp from the
+ la_exp_desc field.
+
+ * Makefile.in (eval.o): Add dependency on parser-defs.h.
+
+ * eval.c: Include parser-defs.h for the full declaration of
+ la_exp_desc's type.
+ (evaluate_subexp): Get evaluate_exp out of la_exp_desc field.
+
+2003-09-23 Paul N. Hilfinger <hilfingr@nile.gnat.com>
+
+ * parser-defs.h (operator_length): Declare.
+
+ * parse.c (length_of_subexp): Use operator_length to get operator
+ lengths and arities for operators.
+ Move most code to new operator_length function.
+ (operator_length): New function absorbing most code from
+ length_of_subexp.
+ (prefixify_subexp): Remove large case and use operator_length instead.
+ (parse_exp_1): Use renamings:
+ dump_prefix_expression => dump_raw_expression and
+ dump_postfix_expression => dump_prefix_expression.
+
+ * expression.h (dump_prefix_expression): Rename to ...
+ (dump_raw_expression): New name.
+ (dump_postfix_expression): Rename to ...
+ (dump_prefix_expression): New name.
+
+ * expprint.c (dump_subexp): Make global. Add comment.
+ Move most existing code to dump_subexp_body.
+ (dump_subexp_body): New function.
+ (dump_prefix_expression): Rename to dump_raw_expression.
+ Remove attempt to print the expression via print_expression: it can't
+ work before the expression is prefixified.
+ (dump_raw_expression): Renamed from dump_prefix_expression.
+ (dump_postfix_expression): Rename to dump_prefix_expression, since
+ that's what it does.
+ Remove 'note' parameter, since this routine must be used on
+ prefixified expression.
+ (dump_prefix_expression): Renamed from dump_postfix_expression.
+
+2003-09-22 Jim Blandy <jimb@redhat.com>
+
+ * dwarf2read.c (read_array_type): When building the type for an
+ array of unspecified length, make sure to choose the upper bound
+ so that the array's total length comes out to be zero --- that's
+ how we represent such arrays.
+
+2003-09-22 Michael Chastain <mec@shout.net>
+
+ * MAINTAINERS: Rename gdb.c++ to gdb.cp.
+
+2003-09-22 Jeff Johnston <jjohnstn@redhat.com>
+
+ * top.c (quit_force): Fix indirect call to quit_target so
+ a struct qt_args pointer is passed.
+
+2003-09-22 Andrew Cagney <cagney@redhat.com>
+
+ * arch-utils.h (init_frame_pc_noop): Delete declaration.
+ * arch-utils.c (init_frame_pc_noop): Delete function.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Do not set
+ "init_frame_pc".
+ * mips-tdep.c (mips_gdbarch_init): Ditto.
+ * i386-interix-tdep.c (i386_interix_init_abi): Ditto.
+ * config/sparc/tm-sparc.h (init_frame_pc_noop): Delete
+ declaration.
+ (DEPRECATED_INIT_FRAME_PC): Delete macro.
+ * config/rs6000/tm-rs6000.h (init_frame_pc_noop): Delete
+ declaration.
+ (DEPRECATED_INIT_FRAME_PC): Delete macro.
+
+2003-09-22 Anthony Green <green@redhat.com>
+
+ * monitor.c (monitor_expect): Delete unused conflicting targ_ops
+ declaration.
+
+2003-09-20 Andrew Cagney <cagney@redhat.com>
+
+ * breakpoint.c: Eliminate ARGSUSED.
+ * buildsym.c, cli/cli-cmds.c, cli/cli-script.c: Ditto.
+ * coffread.c, corelow.c, dwarf2read.c, event-top.c: Ditto.
+ * exec.c, gcore.c, hpux-thread.c, infcmd.c, inflow.c: Ditto.
+ * infrun.c, inftarg.c, maint.c, ocd.c, printcmd.c: Ditto.
+ * procfs.c, regcache.c, remote-rdi.c, remote-sds.c: Ditto.
+ * remote.c, sol-thread.c, source.c, stabsread.c: Ditto.
+ * stack.c, symfile.c, target.c, top.c, typeprint.c: Ditto.
+ * utils.c, v850ice.c, valprint.c, values.c, win32-nat.c: Ditto.
+ * wince.c, remote-vx.c: Ditto.
+
+ * cli/cli-script.c: Remove "register" attributes.
+ * config/pa/tm-hppa.h: Ditto.
+ * cli/cli-decode.c: Ditto.
+ * cli/cli-cmds.c: Ditto.
+
+2003-09-19 Andrew Cagney <cagney@redhat.com>
+
+ * sparcnbsd-nat.c (getregs_supplies): Rename NPC_REGNUM to
+ DEPRECATED_NPC_REGNUM.
+ * sparc64nbsd-nat.c (getregs_supplies): Ditto.
+
+2003-09-19 Christopher Faylor <cgf@redhat.com>
+
+ * win32-nat.c (mappings): Remove HAVE_SSE conditional.
+
+2003-09-19 Jim Blandy <jimb@redhat.com>
+
+ * macrotab.c (macro_include): Use the correct comparison to find
+ the appropriate place for this inclusion in the list.
+
+2003-09-19 Andrew Cagney <cagney@redhat.com>
+
+ * config/pa/nm-hppah.h (NEED_TEXT_START_END): Delete.
+ (DEPRECATED_HPUX_TEXT_END): Define.
+ (deprecated_hpux_text_end): Declare.
+ (struct target_ops): Declare opaque.
+ * hppah-nat.c (text_end): Make static.
+ (deprecated_hpux_text_end): New function.
+ * exec.c (text_end): Delete global variable.
+ (NEED_TEXT_START_END): Do not define.
+ (exec_file_attach): Replace code computing "text_end" code with
+ call to DEPRECATED_HPUX_TEXT_END.
+
+2003-09-19 Andrew Cagney <cagney@redhat.com>
+
+ * utils.c (align_up, align_down): New functions.
+ * defs.h (align_up, align_down): Declare.
+ * ppc-sysv-tdep.c (align_up, align_down): Delete functions.
+ * s390-tdep.c: Replace "round_up" and "round_down" with "align_up"
+ and "align_down".
+ (round_up, round_down): Delete functions.
+ * mips-tdep.c: Replace ROUND_UP and ROUND_DOWN with "align_up" and
+ "align_down".
+ (ROUND_DOWN, ROUND_UP): Delete macros.
+ (mips_dump_tdep): Do not print "ROUND_UP" or "ROUND_DOWN".
+ * h8300-tdep.c: Replace "round_up" and "round_down" with
+ "align_up" and "align_down".
+ (round_up, round_down): Delete macros.
+ * frv-tdep.c: Replace ROUND_UP and ROUND_DOWN with "align_up" and
+ "align_down".
+ (ROUND_UP, ROUND_DOWN): Delete macros.
+
+2003-09-18 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-hpux-tdep.c (_initialize_hppa_hpux_tdep): Remove a
+ hard-coded constant. Use the proper machine name instead.
+
+2003-09-17 Andrew Cagney <cagney@redhat.com>
+
+ * sparc-tdep.c (legacy_register_name): Delete function.
+ * mips-tdep.c (mips_dump_tdep): Do not print REGISTER_NAME.
+ (mips_gdbarch_init): Refer to MIPS_REGISTER_NAME in comments.
+ * infcmd.c (gdb_register_name): Delete variable.
+ * gdbarch.sh (SDB_REG_TO_REGNUM): Delete reference to
+ REGISTER_NAME and "tm.h".
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * dpx2-nat.c (regmap): Refer to REGISTER_NAME and not
+ REGISTER_NAMES in comments.
+ * remote-st.c (get_reg_name), i386b-nat.c (tregmap): Ditto.
+ * m68klinux-nat.c (regmap): Ditto.
+
+2003-09-17 Jim Blandy <jimb@redhat.com>
+
+ * Makefile.in (dis_asm_h): Note that this #includes "bfd.h".
+
+2003-09-17 Andrew Cagney <cagney@redhat.com>
+
+ * ppcnbsd-tdep.c (ppcnbsd_use_struct_convention): New function.
+ (ppcnbsd_init_abi): Set "use_struct_convention" to
+ "ppcnbsd_use_struct_convention".
+
+2003-09-17 Mark Kettenis <kettenis@gnu.org>
+
+ * gdbarch.sh (DEPRECATED_REG_STRUCT_HAS_ADDR): Add comment.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ (stabs_argument_has_addr): New architecture method.
+ * arch-utils.h (default_stabs_argument_has_addr): New prototype.
+ * arch-utils.c: Include "buildsym.h".
+ (default_stabs_argument_has_addr): New function.
+ * stabsread.c (define_symbol): Use stabs_argument_has_addr
+ instead of DEPRECATED_REG_STRUCT_HAS_ADDR.
+
+2003-09-17 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_NPC_REGNUM): Deprecate NPC_REGNUM.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * core-sol2.c, hppa-tdep.c, lynx-nat.c, procfs.c: Update.
+ * regcache.c, remote-vxsparc.c, sparc-linux-nat.c: Update.
+ * sparc-nat.c, sparc-tdep.c, sparc64-tdep.c: Update.
+ * sparcnbsd-tdep.c: Update.
+
+2003-09-17 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_REGISTER_BYTE): Rename REGISTER_BYTE.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * arm-linux-tdep.c, core-sol2.c, cris-tdep.c: Update.
+ * d10v-tdep.c, frame.c: Update.
+ * hppa-tdep.c, hppab-nat.c, hppah-nat.c, hppam3-nat.c: Update.
+ * hpux-thread.c, i386gnu-nat.c, ia64-aix-nat.c: Update.
+ * ia64-linux-nat.c, irix5-nat.c, lynx-nat.c, m68knbsd-nat.c: Update.
+ * mcore-tdep.c, mips-linux-tdep.c, mips-tdep.c: Update.
+ * mipsv4-nat.c, mn10300-tdep.c, ns32k-tdep.c: Update.
+ * ns32knbsd-nat.c, ppc-bdm.c, regcache.c, remote-sds.c: Update.
+ * remote-vx68.c, remote-vxmips.c, remote-vxsparc.c: Update.
+ * remote.c, rs6000-tdep.c, s390-tdep.c, sh64-tdep.c: Update.
+ * sparc-nat.c, sparc-tdep.c, sun3-nat.c, v850-tdep.c: Update.
+ * v850ice.c, vax-tdep.c, xstormy16-tdep.c: Update.
+ * config/m68k/tm-cisco.h, config/m68k/tm-delta68.h: Update.
+ * config/pa/nm-hppah.h: Update.
+
+2003-09-16 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-linux-tdep.c (ppc_linux_init_abi): Set the 32 bit
+ "use_struct_convention" to "ppc_linux_use_struct_convention".
+ (ppc_linux_use_struct_convention): New function.
+ * rs6000-tdep.c (rs6000_use_struct_convention): New function.
+ (rs6000_gdbarch_init): For AIX, set "use_struct_convention" to
+ "rs6000_use_struct_convention".
+ * ppc-tdep.h (ppc_sysv_abi_broken_use_struct_convention): Delete
+ declaration.
+ * ppc-sysv-tdep.c (ppc_sysv_abi_broken_use_struct_convention):
+ Delete function.
+
+2003-09-16 Andrew Cagney <cagney@redhat.com>
+
+ * buildsym.c: Remove more occurances of "register".
+ * coffread.c, dbxread.c, dcache.c, dwarf2read.c: Ditto.
+ * environ.c, eval.c, f-valprint.c, findvar.c: Ditto.
+ * gdbtypes.c, gnu-v2-abi.c, h8300-tdep.c, hppa-tdep.c: Ditto.
+ * infcmd.c, mdebugread.c, minsyms.c, mips-tdep.c: Ditto.
+ * printcmd.c, remote-vx.c, sh-stub.c, sh-tdep.c: Ditto.
+ * sh64-tdep.c, source.c, stabsread.c, stack.c: Ditto.
+ * standalone.c, symfile.c, symmisc.c, symtab.c: Ditto.
+ * utils.c, valops.c, values.c, xcoffread.c: Ditto.
+
+2003-09-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.h (struct gdbarch_tdep): Remove. Change all register
+ numbers to enumeration values.
+ * sh-tdep.c: Accomodate above change.
+ (SH_NUM_REGS): Rename from SH_DEFAULT_NUM_REGS.
+ (NUM_PSEUDO_REGS_SH_MEDIA): Remove (sh5 only).
+ (NUM_PSEUDO_REGS_SH_COMPACT): Remove (sh5 only).
+ (IS_ADD_IMM_SP): Rename from IS_ADD_SP.
+ (IS_FPUSH): Rename from IS_FMOV.
+ (sh_extract_struct_value_address): Remove useless comment.
+ (sh_dsp_register_sim_regno): Use register values from sh-tdep.h
+ instead of own local values.
+ (sh_dump_tdep): Remove.
+ (_initialize_sh_tdep): Accomodate removing sh_dump_tdep.
+ * sh3-rom.c (sh3_supply_register): Accomodate sh-tdep.h changes.
+
+2003-09-15 Andrew Cagney <cagney@redhat.com>
+
+ * doublest.c (convert_floatformat_to_doublest): No longer need to
+ cast "exp_bias" to an int. Reverts 2002-12-04 change.
+
+2003-09-15 Daniel Jacobowitz <drow@mvista.com>
+
+ * values.c (unpack_double): Call floatformat_is_valid.
+
+2003-09-15 Mark Kettenis <kettenis@gnu.org>
+
+ * amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Change type of
+ ps_strings into a long.
+
+ * amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Rename from
+ _initialize_am64fbsd_nat.
+
+2003-09-15 Kevin Buettner <kevinb@redhat.com>
+
+ * dwarf2read.c (dwarf2_get_pc_bounds): Complain if offset
+ associated with DW_AT_ranges attribute is out of bounds.
+
+2003-09-15 David Lecomber <dsl@sources.redhat.com>
+
+ * f-valprint.c: Apply array element printing limits to multi-dimensional arrays
+
+2003-09-14 Michael Chastain <mec@shout.net>
+
+ * config/m68k/nm-apollo68v.h: Delete.
+ * config/m68k/xm-apollo68v.h: Delete.
+
+2003-09-14 Andrew Cagney <cagney@redhat.com>
+
+ * rs6000-tdep.c (rs6000_push_dummy_call): Fix typos.
+ * dcache.c: Update copyrights and descriptions.
+ * scm-exp.c, ia64-aix-nat.c, hppam3-nat.c: environ.c: Ditto.
+
+2003-09-14 Andrew Cagney <cagney@redhat.com>
+
+ * config/djgpp/fnchange.lst: Rename "amd64fbsd-tdep.c" and
+ "amd64fbsd-nat.c" to "a64fb-tdep.c" and "a64fb-nat.c".
+
+2003-09-14 Andrew Cagney <cagney@redhat.com>
+
+ * alpha-nat.c: Remove some occurances of "register".
+ * alpha-tdep.c, arm-tdep.c, blockframe.c, breakpoint.c: Ditto.
+ * buildsym.c, c-typeprint.c, c-valprint.c, coffread.c: Ditto.
+ * corefile.c, cp-support.c, cp-valprint.c, cris-tdep.c: Ditto.
+ * dbxread.c, dcache.c, dwarf2read.c, elfread.c: Ditto.
+ * environ.c, eval.c, event-top.c, f-typeprint.c: Ditto.
+ * f-valprint.c, findvar.c, frame.c, gdbtypes.c: Ditto.
+ * h8300-tdep.c, hppa-tdep.c, hppab-nat.c, hppah-nat.c: Ditto.
+ * hppam3-nat.c, hpread.c, ia64-aix-nat.c, ia64-linux-nat.c: Ditto.
+ * infcall.c, infcmd.c, inflow.c, infptrace.c, infrun.c: Ditto.
+ * infttrace.c, irix5-nat.c, jv-typeprint.c: Ditto.
+ * jv-valprint.c, m68k-tdep.c, m68klinux-nat.c, main.c: Ditto.
+ * mdebugread.c, minsyms.c, mips-linux-tdep.c: Ditto.
+ * mips-nat.c, mips-tdep.c, mipsread.c, mipsv4-nat.c: Ditto.
+ * ns32k-tdep.c, objfiles.c, p-typeprint.c: Ditto.
+ * p-valprint.c, ppc-linux-nat.c, printcmd.c: Ditto.
+ * remote-mips.c, remote-vx.c, rs6000-nat.c: Ditto.
+ * rs6000-tdep.c, scm-exp.c, sh-tdep.c, sh64-tdep.c: Ditto.
+ * solib.c, somread.c, source.c, sparc-tdep.c: Ditto.
+ * stabsread.c, stack.c, standalone.c, symfile.c: Ditto.
+ * symmisc.c, symtab.c, top.c, tracepoint.c: Ditto.
+ * typeprint.c, utils.c, valarith.c, valops.c: Ditto.
+ * values.c, vax-tdep.c, xcoffread.c: Ditto.
+
+2003-09-13 Andrew Cagney <cagney@redhat.com>
+
+ * config/pa/tm-hppa64.h (struct frame_info): Declare opaque.
+ * ppc-tdep.h (struct regcache): Declare opaque.
+ * objfiles.h (struct objfile_data): Declare opaque.
+ * cp-support.h (struct objfile): Declare opaque.
+ * linux-nat.h (target_waitstatus): Declare opaque.
+
+2003-09-14 Mark Kettenis <kettenis@gnu.org>
+
+ * gdbarch.sh (DEPRECATED_REG_STRUCT_HAS_ADDR): Add comment.
+ (stabs_argument_has_addr): New architecture method.
+ * arch-utils.h (default_stabs_argument_has_addr): New prototype.
+ * arch-utils.c: Include "buildsym.h".
+ (default_stabs_argument_has_addr): New function.
+ * stabsread.c (define_symbol): Use stabs_argument_has_addr
+ instead of DEPRECATED_REG_STRUCT_HAS_ADDR.
+
+ * cris-tdep.c (cris_gdbarch_init): Set
+ deprecated_reg_struct_has_addr instead of reg_struct_has_addr.
+ * hppa-tdep.c (hppa_gdbarch_init): Likewise.
+ * mcore-tdep.c (mcore_gdbarch_init): Likewise.
+ * mips-tdep.c (mips_gdbarch_init): Likewise.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
+ * sparc-tdep.c (sparc_gdbarch_init): Likewise.
+
+2003-09-13 Andrew Cagney <cagney@redhat.com>
+
+ * values.c (using_struct_return): Delete "function" and "funcaddr"
+ parameters.
+ * value.h (using_struct_return): Update declaration.
+ * infcmd.c (finish_command_continuation): Update.
+ (finish_command): Update.
+ * infcall.c (call_function_by_hand): Update.
+ * eval.c (evaluate_subexp_standard): Update.
+
+2003-09-13 Christopher Faylor <cgf@redhat.com>
+
+ * win32-nat.c: Just rely on CONTEXT_EXTENDED_REGISTER being defined for
+ SSE registers since gdb will not operate correctly without this.
+ Restore include file ordering munged in previous change.
+ * config/i386/tm-cygwin.h: Remove HAVE_SSE_REGS define.
+
+2003-09-13 Mark Kettenis <kettenis@gnu.org>
+
+ * gdbarch.sh (DEPRECATED_REG_STRUCT_HAS_ADDR): Renamed from
+ REG_STRUCT_HAS_ADDR.
+ * gdbarch.c, gdbarch.h: Updated.
+ * infcall.c (call_function_by_hand): Update.
+ * stabsread.c (define_symbol): Updated.
+
+ * Makefile.in (xm-i386-sv32.h, tm-i386gas.h): Remove.
+
+2003-09-12 Christopher Faylor <cgf@redhat.com>
+
+ * win32-nat.c: Reorganize so that defines used by target headers are
+ actually defined by the system headers.
+ * config/i386/tm-cygwin.h: Check for CONTEXT_EXTENDED_REGISTERS rather
+ than HAVE_CONTEXT_EXTENDED_REGISTERS, since the latter actually exists.
+
+2003-09-12 Jim Blandy <jimb@redhat.com>
+
+ * dbxread.c (read_dbx_symtab): Don't report an internal error if
+ the file has no .data, .bss, or .rodata sections. Instead wait
+ until we see a variable alleged to live in one of those sections.
+
+ * dbxread.c (read_dbx_symtab): If we have no .data section and no
+ .bss section, presume that any variables we find live in the
+ .rodata section.
+
+ * dbxread.c (read_dbx_symtab): Add FIXME about finding section
+ offsets for global and static variables.
+
+ * dbxread.c (read_dbx_symtab): The N_DATA and N_DATA | N_EXT
+ 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.
+
+2003-09-12 Mark Kettenis <kettenis@gnu.org>
+
+ * amd64fbsd-tdep.c: Fix sigtramp recognition.
+ (amd64fbsd_sigcontext_addr): Rewrite.
+ (amd64fbsd_sigtramp_start, amd64fbsd_sigtramp_end): Initialize
+ with correct values.
+ (amd64fbsd_sc_reg_offset): Initialize with correct values.
+ (amd64fbsd_init_abi): Fix typo.
+
+2003-09-12 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-sysv-tdep.c (align_up, align_down): Replace "round2" macro.
+ (ppc_sysv_abi_push_dummy_call): Rewrite, use a two pass loop.
+
+2003-09-12 Andrew Cagney <cagney@redhat.com>
+
+ * objfiles.h (struct entry_info): Deprecate "entry_file_lowpc" and
+ "entry_file_highpc". Update comments.
+ * defs.h (deprecated_inside_entry_file): Rename
+ "inside_entry_file".
+ * blockframe.c (deprecated_inside_entry_file): Rename
+ "inside_entry_file".
+ * frame.c (get_prev_frame): Update. Use if 0 instead of #if 0.
+ * vax-tdep.c (vax_frame_chain): Update.
+ * sh64-tdep.c (sh64_frame_chain): Update.
+ * sh-tdep.c (sh_frame_chain): Update.
+ * rs6000-tdep.c (rs6000_frame_chain): Update.
+ * ns32k-tdep.c (ns32k_frame_chain): Update.
+ * mips-tdep.c (mips_frame_chain): Update.
+ * m68hc11-tdep.c (m68hc11_frame_this_id): Update.
+ * m32r-tdep.c (m32r_frame_this_id): Update.
+ * i386-interix-tdep.c (i386_interix_frame_chain_valid): Update.
+ * frv-tdep.c (frv_frame_this_id): Update.
+ * d10v-tdep.c (d10v_frame_this_id): Update.
+ * cris-tdep.c (cris_frame_chain): Update.
+ * blockframe.c (legacy_frame_chain_valid): Update.
+ * avr-tdep.c (avr_frame_this_id): Update.
+ * arm-tdep.c (arm_prologue_this_id): Update.
+ * alpha-tdep.c (alpha_heuristic_frame_this_id): Update.
+ * objfiles.c (objfile_relocate): Update.
+ * mipsread.c (mipscoff_symfile_read): Update.
+ (mipscoff_symfile_read): Update.
+ * mdebugread.c (parse_partial_symbols): Update.
+ * dwarfread.c (read_file_scope): Update.
+ * dwarf2read.c (read_file_scope): Update.
+ * dbxread.c (read_dbx_symtab): Update.
+ (read_dbx_symtab): Update.
+ * coffread.c (complete_symtab): Update.
+
+2003-09-12 Jeff Johnston <jjohnstn@redhat.com>
+
+ * top.c (quit_target): New static helper function.
+ (quit_force): Moved code to quit_target(). Call quit_target()
+ via catch_errors() to catch errors during quit.
+
+2003-09-11 David Carlton <carlton@kealia.com>
+
+ * buildsym.c (finish_block): Use allocate_block to allocate the
+ block.
+ * mdebugread.c (new_block): Add FIXME.
+
+2003-09-11 David Carlton <carlton@kealia.com>
+
+ * gdbtypes.h: Add TYPE_CODE_NAMESPACE.
+ * gdbtypes.c (init_type): Handle TYPE_CODE_NAMESPACE.
+ (recursive_dump_type): Ditto.
+ * printcmd.c (print_formatted): Ditto.
+ * typeprint.c (print_type_scalar): Ditto.
+ * c-typeprint.c (c_type_print_varspec_prefix): Ditto.
+ (c_type_print_varspec_suffix, c_type_print_base): Ditto.
+ * cp-support.h: Declare cp_check_possible_namespace_symbols,
+ maint_cplus_cmd_list.
+ * cp-support.c: Make maint_cplus_cmd_list extern.
+ * cp-namespace.c: Include objfiles.h, gdbtypes.h, dictionary.h,
+ command.h.
+ (lookup_symbol_file): Look in possible namespace blocks when
+ appropriate.
+ (initialize_namespace_symtab): New.
+ (get_possible_namespace_block, free_namespace_block)
+ (check_possible_namespace_symbols)
+ (check_possible_namespace_symbols_loop)
+ (check_one_possible_namespace_symbol)
+ (lookup_possible_namespace_symbol, maintenance_cplus_namespace)
+ (_initialize_cp_namespace): Ditto.
+ * block.h: Declare allocate_block.
+ * block.c (allocate_block): New.
+ * jv-lang.c (get_java_class_symtab): Allocate blocks via
+ allocate_block.
+ * symfile.h: Update declaration of add_psymbol_to_list.
+ * symfile.c (add_psymbol_to_list): Return the partial symbol in
+ question.
+ * dwarf2read.c (dwarf2_build_psymtabs_hard): Add argument to
+ scan_partial_symbols_call.
+ (scan_partial_symbols): Add NAMESPACE argument; update calls to
+ helper functions.
+ (add_partial_symbol): If necessary, scan mangled names for names
+ of namespaces.
+ (add_partial_namespace): Add NAMESPACE argument; generate partial
+ symbols associated to namespaces.
+ (add_partial_enumeration): Add NAMESPACE argument.
+ (new_symbol): Allow namespace syms.
+ (read_namespace): Generate namespace syms.
+ * objfiles.h: Add opaque declaration of struct symtab.
+ (struct objfile): Add cp_namespace_symtab member.
+ * objfiles.c (allocate_objfile): Set
+ objfile->cp_namespace_symtab.
+ * Makefile.in (cp-namespace.o): Depend on objfiles_h, gdbtypes_h,
+ dictionary_h, command_h.
+
+2003-09-11 Andrew Cagney <cagney@redhat.com>
+
+ * rs6000-tdep.c (rs6000_push_dummy_call): Use
+ regcache_raw_write_signed to set SP_REGNUM, move the operation to
+ near the function's end.
+ (rs6000_gdbarch_init): Do not set "deprecated_dummy_write_sp".
+ * ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Use
+ regcache_raw_write_signed to set SP_REGNUM.
+
+2003-09-11 Elena Zannoni <ezannoni@redhat.com>
+
+ * symfile.c (symbol_file_add_with_addrs_or_offsets): Make sure
+ orig_addrs is set up properly.
+
+2003-09-11 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_STACK_ALIGN): Rename STACK_ALIGN.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * infcall.c (call_function_by_hand): Update.
+ * hppa-tdep.c (hppa_push_arguments): Update.
+ * ada-lang.c (place_on_stack): Update.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Delete comment refering to
+ stack_align.
+
+2003-09-11 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2loc.c (dwarf2_loc_desc_needs_frame): Variables in a
+ register do need a frame.
+
+2003-09-11 Andrew Cagney <cagney@redhat.com>
+
+ Since the IRIX 4 configuration was forcing K&R mode it hasn't been
+ buildable since GDB 5.0.
+ * NEWS: Mention that IRIX 3 and IRIX 4 support were removed.
+ * configure.host: Delete "mips-sgi-irix3*" and "mips-sgi-irix4*".
+ * configure.tgt: Delete "mips*-sgi-*" a.k.a. irix3.
+ * irix4-nat.c: Delete file.
+ * config/mips/irix4.mh: Delete file.
+ * config/mips/irix3.mh: Delete file.
+ * config/mips/irix3.mt: Delete file.
+ * config/mips/tm-irix3.h: Delete file.
+ * config/mips/nm-irix3.h: Delete file.
+ * config/mips/xm-irix3.h: Delete file.
+ * config/mips/nm-irix4.h: Delete file.
+ * config/mips/xm-irix4.h: Delete file.
+ * config/mips/tm-irix5.h: Inline contents of "tm-irix3.h".
+
+2003-09-10 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-tdep.c: Include "dis-asm.h". Fixes a build failure.
+ * Makefile.in (hppa-tdep.o): Update dependencies.
+
+2003-09-10 James E Wilson <wilson@specifixinc.com>
+
+ * MAINTAINERS: Change my e-mail address. Move to paper trail
+ section.
+
+2003-09-10 Kevin Buettner <kevinb@redhat.com>
+
+ * MAINTAINERS (frv): New ISA entry.
+
+2003-09-10 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (dis-asm.h): Include.
+ * Makefile.in (frv-tdep.o): Update dependencies.
+
+2003-09-09 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-tdep.c (ia64_sigtramp_frame_init_saved_regs):
+ Fix typo for high range of floating registers.
+
+2003-09-09 David Carlton <carlton@kealia.com>
+
+ * dwarf2read.c (dwarf2_build_psymtabs_hard): Move lowpc and
+ highpc initialization here out of scan_partial_symbols.
+ (scan_partial_symbols): Restructure into a recursive version,
+ calling add_partial_namespace and add_partial_enumeration when
+ appropriate.
+ (add_partial_namespace): New.
+ (add_partial_enumeration, locate_pdi_sibling): Ditto.
+
+2003-09-09 Andrew Cagney <cagney@redhat.com>
+
+ * rs6000-tdep.c (ppc_push_return_address): Delete function.
+ (rs6000_push_dummy_call): Set LR to BP_ADDR.
+ (rs6000_gdbarch_init): Do not set deprecated_push_return_address.
+ * ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Ditto.
+
+ * rs6000-tdep.c (rs6000_fix_call_dummy): Delete function.
+ (rs6000_push_dummy_call): Set the "TOC" register.
+
+ * rs6000-tdep.c (rs6000_gdbarch_init): Do not set the deprecated
+ methods "max_register_raw_size", "max_register_virtual_size" or
+ "register_virtual_size".
+
+2003-09-09 Ian Lance Taylor <ian@wasabisystems.com>
+
+ * MAINTAINERS: Update my e-mail address.
+
+2003-09-09 Andrew Cagney <cagney@redhat.com>
+
+ * rs6000-tdep.c (rs6000_store_struct_return): Delete function.
+ (rs6000_push_dummy_call): Store the struct return address.
+ * ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Ditto.
+
+2003-09-09 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-tdep.h (ppc_sysv_abi_push_dummy_call): Replace
+ "ppc_sysv_abi_push_arguments".
+ * ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Replace
+ "ppc_sysv_abi_push_arguments".
+ * rs6000-tdep.c (rs6000_gdbarch_init): Set "push_dummy_call"
+ instead of "push_arguments".
+ (rs6000_push_dummy_call): Replace "rs6000_push_arguments".
+
+2003-09-09 Andrew Cagney <cagney@redhat.com>
+
+ * sh64-tdep.c (sh64_push_return_address): Use ENTRY_POINT_ADDRESS
+ instead of CALL_DUMMY_ADDRESS.
+
+2003-09-09 Paul N. Hilfinger <hilfingr@gnat.com>
+
+ * p-lang.c: Eliminate "register".
+ * c-lang.c: Ditto.
+ * expprint.c: Ditto.
+ * f-lang.c: Ditto.
+ * jv-lang.c: Ditto.
+ * language.c: Ditto.
+ * m2-lang.c: Ditto.
+ * parse.c: Ditto.
+ * scm-lang.c: Ditto.
+ * objc-lang.c: Ditto.
+
+2003-09-09 Nick Clifton <nickc@redhat.com>
+
+ * v850-tdep.c (v850_processor_type_table): Add bfd_mach_v850e1.
+
+2003-09-04 Andrew Cagney <cagney@redhat.com>
+
+ * avr-tdep.c: Include "dis-asm.h".
+ * cris-tdep.c: Include "dis-asm.h".
+ (cris_delayed_get_disassembler): Use "struct disassemble_info"
+ instead of corresponding typedef.
+ * h8300-tdep.c: Include "dis-asm.h".
+ * ia64-tdep.c: Include "dis-asm.h".
+ * i386-tdep.c: Include "dis-asm.h".
+ (i386_print_insn): Use "struct disassemble_info" instead of
+ corresponding typedef.
+ * m68k-tdep.c: Include "dis-asm.h".
+ * mcore-tdep.c: Include "dis-asm.h".
+ * mips-tdep.c: Include "dis-asm.h".
+ (gdb_print_insn_mips): Make static, use "struct disassemble_info"
+ instead of corresponding typedef.
+ * ns32k-tdep.c: Include "dis-asm.h".
+ * s390-tdep.c: Include "dis-asm.h".
+ * sparc-tdep.c: Include "dis-asm.h".
+ * vax-tdep.c: Include "dis-asm.h".
+ * v850-tdep.c: Include "dis-asm.h".
+ * mn10300-tdep.c: Include "dis-asm.h".
+ * rs6000-tdep.c: Include "dis-asm.h".
+ * xstormy16-tdep.c: Include "dis-asm.h".
+ (_initialize_xstormy16_tdep): Delete "extern" declaration of
+ print_insn_xstormy16.
+ * Makefile.in (v850-tdep.o): Update dependencies.
+ (vax-tdep.o, sparc-tdep.o, s390-tdep.o): Ditto.
+ (ns32k-tdep.o, mips-tdep.o, mcore-tdep.o): Ditto.
+ (m68k-tdep.o, ia64-tdep.o, i386-tdep.o): Ditto.
+ (h8300-tdep.o, cris-tdep.o, avr-tdep.o): Ditto.
+ (mn10300-tdep.o, xstormy16-tdep.o, disasm.o): Ditto.
+ (gdbarch_h): Remove $(dis_asm_h).
+ * disasm.c: Include "dis-asm.h".
+ (dis_asm_read_memory): Use "struct disassemble_info" instead of
+ corresponding typedef.
+ (dis_asm_memory_error, dump_insns, do_assembly_only): Ditto.
+ (gdb_disassemble_info, gdb_disassembly, gdb_print_insn): Ditto.
+ * gdbarch.sh: Do not include "dis-asm.h".
+ (struct disassemble_info): Declare opaque.
+ (TARGET_PRINT_INSN): Update declaration.
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+2003-09-08 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_CALL_DUMMY_ADDRESS): Rename
+ CALL_DUMMY_ADDRESS, change to a predicate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * blockframe.c (deprecated_pc_in_call_dummy_at_entry_point):
+ Use either DEPRECATED_CALL_DUMMY_ADDRESS or entry_point_address.
+ * infcall.c (call_function_by_hand): Ditto.
+ * sparc-tdep.c (sparc_push_return_address): Ditto.
+ (sparc_gdbarch_init): Set deprecated_call_dummy_address.
+ * xstormy16-tdep.c (xstormy16_push_return_address): Replace
+ CALL_DUMMY_ADDRESS with entry_point_address.
+ * v850-tdep.c (v850_push_return_address): Ditto.
+ * s390-tdep.c (s390_push_return_address): Ditto.
+ * rs6000-tdep.c (ppc_push_return_address): Ditto.
+ * mn10300-tdep.c (mn10300_push_return_address): Ditto.
+ * mcore-tdep.c (mcore_push_return_address): Ditto.
+ * cris-tdep.c (cris_push_return_address): Ditto.
+ * arm-tdep.c (arm_push_return_address): Ditto.
+
+2003-09-08 Andrew Cagney <cagney@redhat.com>
+
+ * dwarf2-frame.c (enum dwarf2_reg_rule): New, replace anonymous
+ enum. Add REG_UNSPECIFIED, rename REG_UNSAVED to REG_UNDEFINED
+ and REG_UNMODIFIED to REG_SAME_VALUE.
+ (execute_cfa_program): Update.
+ (dwarf2_frame_cache): Update. Initialize table to
+ REG_UNSPECIFIED, complain if CFI fails to specify a register's
+ location.
+ (dwarf2_frame_prev_register): Update. Handle REG_UNSPECIFIED.
+
+2003-09-08 Andrew Cagney <cagney@redhat.com>
+
+ * gnu-nat.c: Remove "inline" function attribute.
+ * alpha-tdep.c, ppc-linux-tdep.c, macroexp.c: Ditto.
+
+2003-09-08 Kevin Buettner <kevinb@redhat.com>
+
+ * config/frv/frv.mt (SIM_OBS, SIM): Enable simulator for FR-V
+ target.
+
+2003-09-08 Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (frame-unwind.h, frame-base.h): Include.
+ (frame_extra_info): Rename this struct to frv_unwind_cache.
+ Delete fields ``fp_to_callers_sp_offset'' and ``lr_saved_on_stack''.
+ Add fields ``prev_sp'' and ``base''.
+ (frv_frame_chain, frv_frame_saved_pc, frv_frame_init_saved_regs)
+ (frv_saved_pc_after_call, frv_init_extra_frame_info)
+ (frv_push_return_address, frv_pop_frame, frv_pop_frame_regular):
+ Delete.
+ (frv_analyze_prologue): Add ``struct frv_unwind_cache *'' argument.
+ Revise all callers. Fill in the unwind cache argument and make
+ other adjustments to account for new frame mechanisms.
+ (frv_frame_unwind_cache, frv_frame_align, frv_unwind_pc)
+ (frv_frame_this_id, frv_frame_prev_register, frv_frame_sniffer)
+ (frv_frame_base_address, frv_unwind_dummy_id): New functions.
+ (frv_frame_unwind, frv_frame_base): New structs.
+ (frv_push_arguments): Change name to frv_push_dummy_call(). Add
+ additional arguments expected by this method and adjust function
+ body accordingly.
+ (frv_gdbarch_init): Remove calls to the following functions:
+ set_gdbarch_deprecated_init_frame_pc(),
+ set_gdbarch_deprecated_saved_pc_after_call(),
+ set_gdbarch_deprecated_frame_chain(),
+ set_gdbarch_deprecated_frame_saved_pc(),
+ set_gdbarch_deprecated_frame_init_saved_regs(),
+ set_gdbarch_deprecated_push_arguments(),
+ set_gdbarch_deprecated_push_return_address(),
+ set_gdbarch_deprecated_pop_frame(),
+ set_gdbarch_deprecated_call_dummy_words(),
+ set_gdbarch_deprecated_sizeof_call_dummy_words(),
+ set_gdbarch_deprecated_init_extra_frame_info(),
+ set_gdbarch_deprecated_dummy_write_sp(), and
+ set_gdbarch_deprecated_pc_in_call_dummy().
+ Add calls to the following functions:
+ set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(),
+ set_gdbarch_frame_align(), frame_unwind_append_sniffer(), and
+ frame_base_set_default().
+ * Makefile.in (frv-tdep.o): Update dependencies.
+
+2003-09-09 Mark Kettenis <kettenis@gnu.org>
+
+ * dwarf2-frame.c (read_encoded_value): Add support for
+ DW_EH_PE_aligned encoding.
+
+2003-09-08 Daniel Jacobowitz <drow@mvista.com>
+
+ * infrun.c (normal_stop): Don't print a message if the inferior
+ has exited.
+
+2003-09-08 Jim Blandy <jimb@redhat.com>
+
+ * Makefile.in (dbxread.o): Note new dependency on $(gdb_assert_h).
+ * dbxread.c: #include "gdb_assert.h".
+ (read_dbx_symtab): If the objfile has no .data section, use the
+ section index for the .bss section instead.
+
+2003-09-08 Daniel Jacobowitz <drow@mvista.com>
+
+ * frame.c (deprecated_safe_get_selected_frame): New function.
+ * frame.h (deprecated_safe_get_selected_frame): Add prototype.
+ * findvar.c (read_var_value): Call it.
+
+2003-09-08 Corinna Vinschen <vinschen@redhat.com>
+
+ * Makefile.in (ALLDEPFILES): Add sh64-tdep.c.
+ (sh64-tdep.o): Add dependencies.
+ * configure.tgt: Add FIXME to sh-*-linux*.
+ * sh-tdep.c: Move sh64 support to sh64-tdep.c.
+ (sh_gdbarch_init): Always set correct sh_show_regs function
+ pointer. Call sh64_gdbarch_init() if machine type is sh5.
+ * sh-tdep.h: Move sh64 support to sh64-tdep.c.
+ * sh64-tdep.c: New file, containing all sh64 related code from
+ sh-tdep.c.
+ * config/sh/embed.mt (TDEPFILES): Add sh64-tdep.o.
+ * config/sh/linux.mt (TDEPFILES): Ditto.
+ * config/sh/nbsd.mt (TDEPFILES): Ditto.
+ * config/sh/tm-sh.h: Drop REGISTER_TYPE definition.
+ * config/sh/wince.mt (TDEPFILES): Ditto.
+
+2003-09-07 Daniel Jacobowitz <drow@mvista.com>
+
+ * lin-lwp.c (detach_callback): Don't call stop_wait_callback.
+ (stop_wait_callback): Handle !lp->signalled also.
+ (lin_lwp_has_pending, flush_callback): New functions.
+ (lin_lwp_wait): Call flush_callback.
+ * linux-proc.c (linux_proc_add_line_to_sigset): New function.
+ (linux_proc_pending_signals): New function.
+ * linux-nat.h (linux_proc_pending_signals): Add prototype.
+
+2003-09-07 Daniel Jacobowitz <drow@mvista.com>
+
+ From Nick Kelsey <nickk@ubicom.com>:
+ * infrun.c (handle_inferior_event): Check IN_SOLIB_RETURN_TRAMPOLINE
+ when the stop PC is at the beginning of a function also.
+
+2003-09-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * arm-linux-tdep.c (arm_linux_arm_be_breakpoint): New.
+ (arm_linux_init_abi): Use arm_linux_arm_be_breakpoint.
+
+2003-09-06 Mark Kettenis <kettenis@gnu.org>
+
+ * sol-thread.c: Include "gdb_string.h".
+
+2003-09-03 Mark Kettenis <m.kettenis@osp.nl>
+
+ * gcore.c: Reorder include files in alphabetical order. Include
+ "gdb_assert.h". Various coding style fixes.
+ (derive_stack_segment, derive_heap_segment): Replace check for
+ non-null BOTTOM and TOP with gdb_assert.
+ (derive_heap_segment): Replace check for successful creation of
+ ZERO with gdb_assert.
+ (make_mem_sec): Use bfd_section_lma to set OSEC->lma.
+
+2003-09-04 Andrew Cagney <cagney@redhat.com>
+
+ * thread-db.c (verbose_dlsym): New function.
+ (thread_db_load): Use verbose_dlsym
+ (thread_db_new_objfile): Print that libthread_db was loaded, and
+ that thread debugging was enabled.
+
+2003-09-04 Andrew Cagney <cagney@redhat.com>
+
+ * configure.tgt: Add "mips64*-*-*" target. Delete
+ mips64*el-*-ecoff*, mips64*el-*-elf*, mips*el-*-ecoff*,
+ mips*el-*-elf*, mips*-*-lnews*, mips*-*-sysv*, mips*-*-riscos*,
+ mips*-*-ecoff*, mips*-*-elf*, mips*-little-*, mips*-big-*,
+ mips*-dec-*, mips64*-big-*, mips64*vr*-*-elf*, mips64*-*-ecoff*,
+ mips*-sony-*, and mips64*-*-elf* targets.
+ * config/mips/embedl.mt: Delete file.
+ * config/mips/embedl64.mt: Delete file.
+ * config/mips/mips.mt: Delete file.
+ * config/mips/mips64.mt: Delete file.
+ * config/mips/tm-embed.h: Delete file.
+ * config/mips/embed.mt (TM_FILE): Set to "tm-mips.h".
+ * config/mips/embed64.mt: Delete out-of-date comment.
+
+2003-09-04 Andrew Cagney <cagney@redhat.com>
+
+ * hppa-tdep.c (hppa_gdbarch_init): Set
+ "have_nonsteppable_watchpoint".
+ * config/pa/nm-hppah.h (HAVE_NONSTEPPABLE_WATCHPOINT): Delete.
+ * mips-tdep.c (mips_dump_tdep): Do not print
+ HAVE_NONSTEPPABLE_WATCHPOINT.
+ (mips_gdbarch_init): Set "have_nonsteppable_watchpoint".
+ * config/mips/tm-embed.h (HAVE_NONSTEPPABLE_WATCHPOINT): Delete.
+ * config/mips/nm-irix5.h (HAVE_NONSTEPPABLE_WATCHPOINT): Delete.
+ * config/mips/nm-irix4.h (HAVE_NONSTEPPABLE_WATCHPOINT): Delete.
+
+2003-09-04 Corinna Vinschen <vinschen@redhat.com>
+
+ * breakpoint.c (watchpoint_check): Remove accidentally checked in
+ unused code. Add comment.
+
+2003-09-04 Corinna Vinschen <vinschen@redhat.com>
+
+ * breakpoint.c (watchpoint_check): Check for pc being in an
+ epilogue if watchpoint frame couldn't be found.
+
+2003-09-04 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in: Re-generate all dependencies.
+
+2003-09-03 Andrew Cagney <cagney@redhat.com>
+
+ * arch-utils.h (legacy_print_insn): Delete declaration.
+ * arch-utils.c (legacy_print_insn): Delete function.
+ * disasm.c (deprecated_tm_print_insn_info): Delete.
+ (_initialize_disasm): Delete function, contained code initializing
+ deprecated_tm_print_insn_info.
+ * gdbarch.sh (deprecated_tm_print_insn): Delete.
+ (deprecated_tm_print_insn_info): Delete.
+ (TARGET_PRINT_INSN): Do not provide a default.
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+2003-09-03 Andrew Cagney <cagney@redhat.com>
+
+ * disasm.c (fprintf_disasm): New function.
+ (gdb_disassemble_info): Call "init_disassemble_info", instead of
+ INIT_DISASSEMBLE_INFO_NO_ARCH. Do not initialize "insn_sets",
+ reverts 2003-08-14 change.
+ (_initialize_disasm): Call "init_disassemble_info", instead of
+ INIT_DISASSEMBLE_INFO_NO_ARCH.
+
+2003-09-03 Michael Snyder <msnyder@redhat.com>
+
+ * config/djgpp/fnchange.lst: Fix up sim/frv/profile-fr*.[ch].
+
+2003-09-03 Andrew Cagney <cagney@redhat.com>
+
+ * config/rs6000/tm-rs6000.h (IBM6000_TARGET): Delete definition.
+ * config/rs6000/nm-rs6000.h (DEPRECATED_IBM6000_TARGET): Define.
+ * symfile.c (syms_from_objfile): Update.
+ (reread_symbols): `Update
+ * exec.c (exec_file_attach): Update.
+ (exec_file_attach): Update.
+ * config/powerpc/tm-nbsd.h: Delete #undef IBM6000_TARGET, revert
+ 2003-08-29 change.
+ * config/powerpc/tm-linux.h: Delete #undef IBM6000_TARGET.
+
+2003-09-03 Daniel Jacobowitz <drow@mvista.com>
+
+ * arm-tdep.c: Include frame-unwind.h, frame-base.h, and
+ trad-frame.h.
+ (arm_get_cache): Delete macro.
+ (struct arm_prologue_cache): Update comments. Make saved_regs into
+ a trad_frame_saved_reg pointer. Remove unwound_pc; rename unwound_sp
+ to prev_sp.
+ (thumb_scan_prologue): Update for cache changes. Don't call
+ DEPRECATED_PC_IN_CALL_DUMMY.
+ (arm_scan_prologue): Update for cache changes. Take NEXT_FRAME
+ argument and use it in desperation search for our prologue. Do not
+ search past the specified PC.
+ (arm_make_prologue_cache): Simplify.
+
+ (arm_prologue_this_id, arm_prologue_prev_register)
+ (arm_prologue_unwind, arm_prologue_unwind_sniffer)
+ (arm_normal_frame_base, arm_normal_base, arm_make_sigtramp_cache)
+ (arm_sigtramp_this_id, arm_sigtramp_prev_register)
+ (arm_sigtramp_unwind, arm_sigtramp_unwind_sniffer)
+ (arm_unwind_dummy_id, arm_unwind_pc, arm_unwind_sp): New.
+
+ (arm_frame_chain_valid, arm_find_callers_reg)
+ (arm_frame_saved_pc, arm_read_fp, arm_frame_init_saved_regs)
+ (arm_pop_frame): Delete obsolete methods.
+ (arm_minimal_frame_chain, arm_minimal_frame_info): Delete.
+
+ (arm_gdbarch_init): Update for new frame methods. Register prologue
+ and sigtramp unwinders. Set the default frame base method.
+
+ * Makefile.in (arm-tdep.o): Update dependencies.
+ * varobj.c (find_frame_addr_in_frame_chain): Call
+ get_frame_base_address.
+ * std-regs.c (value_of_builtin_frame_fp_reg): Likewise.
+
+2003-09-03 Daniel Jacobowitz <drow@mvista.com>
+
+ * arm-tdep.c (arm_minimal_frame_chain): Renamed from
+ arm_frame_chain. Take NEXT_FRAME and CACHE arguments.
+ Use the cache instead of DEPRECATED_FRAME_SAVED_PC.
+ (arm_minimal_frame_info): Renamed from arm_init_extra_frame_info.
+ Take NEXT_FRAME and CACHE arguments. Call
+ FRAMELESS_FUNCTION_INVOCATION instead of checking FROMLEAF argument.
+ Set unwound_pc in CACHE instead of modifying the frame argument.
+ Don't bother checking the frame type when looking for sigtramp
+ frames.
+ (arm_make_prologue_cache, arm_frame_chain)
+ (arm_init_extra_frame_info): New functions.
+
+2003-09-03 Daniel Jacobowitz <drow@mvista.com>
+
+ * arm-tdep.c (arm_get_cache): Define.
+ (struct arm_prologue_cache): Renamed from frame_extra_info. Add
+ unwound_sp, unwound_pc, and saved_regs.
+ (thumb_scan_prologue): Take a cache instead of the frame.
+ (arm_scan_prologue): Likewise.
+ (arm_frame_chain): Create a temporary cache for arm_scan_prologue
+ instead of a temporary frame.
+ (arm_init_extra_frame_info): Allocate and use a cache.
+ (arm_frame_saved_pc, arm_pop_frame): Use the cache.
+
+2003-09-03 Andrew Cagney <cagney@redhat.com>
+
+ * config/arm/wince.mt (TM_CLIBS): Replace WIN32LIBS.
+ * config/mips/wince.mt (TM_CLIBS): Ditto.
+ * config/sh/wince.mt (TM_CLIBS): Ditto.
+ * config/pa/hppa64.mt (TM_CLIBS): Delete.
+ * config/sparc/sp64.mt (CC): Delete.
+
+2003-09-03 Andrew Cagney <cagney@redhat.com>
+
+ * defs.h: Do not include "arch-utils.h".
+ (GDB_MULTI_ARCH): If not defined, set to GDB_MULTI_ARCH_PARTIAL or
+ GDB_MULTI_ARCH_PURE.
+ * configure.in (GDB_MULTI_ARCH): Do not define.
+ * configure, config.in: Regenerate.
+ * configure.tgt: Do not set variable "gdb_multi_arch".
+ * config/s390/s390x.mt (GDB_MULTI_ARCH): Delete.
+ * config/s390/s390.mt (GDB_MULTI_ARCH): Delete.
+ * config/i386/x86-64linux.mt (GDB_MULTI_ARCH): Delete.
+ * config/v850/v850.mt (TM_FILE): Delete disabled definition.
+ * config/m68hc11/m68hc11.mt (TM_FILE): Delete definition.
+ * config/vax/tm-vax.h (GDB_MULTI_ARCH): Delete definition.
+ * config/sparc/tm-sparc.h (GDB_MULTI_ARCH): Delete definition.
+ * config/sparc/tm-sun4sol2.h (GDB_MULTI_ARCH): Delete definition.
+ * config/sparc/tm-nbsd.h (GDB_MULTI_ARCH): Delete definition.
+ * config/sparc/tm-linux.h (GDB_MULTI_ARCH): Delete definition.
+ * config/sparc/tm-sp64.h (GDB_MULTI_ARCH): Delete definition.
+ * config/pa/tm-hppa64.h (GDB_MULTI_ARCH): Delete definition.
+ * config/ns32k/tm-ns32k.h (GDB_MULTI_ARCH): Delete definition.
+ * config/m68k/tm-m68k.h (GDB_MULTI_ARCH): Delete definition.
+ * config/i386/tm-i386.h (GDB_MULTI_ARCH): Delete definition.
+ * config/h8300/tm-h8300.h (GDB_MULTI_ARCH): Delete definition.
+ * config/frv/tm-frv.h (GDB_MULTI_ARCH): Delete definition.
+ * config/alpha/tm-alpha.h (GDB_MULTI_ARCH): Delete definition.
+
+2003-08-30 Michael Chastain <mec@shout.net>
+
+ * Makefile.in: Remove tm-hp300bsd.h, tm-hp300hpux.h.
+ * config/m68k/nm-hp300hpux.h: Delete.
+ * config/m68k/tm-hp300hpux.h: Delete.
+ * config/m68k/xm-hp300hpux.h: Delete.
+ * config/m68k/xm-hp300bsd.h: Delete.
+ * config/djgpp/fnchange.lst: Remove nm-hp300hpux.h,
+ tm-hp300hpux.h, xm-hp300hpux.h.
+ * somsolib.c: Remove comment about hp300 shared libraries.
+
+2003-08-31 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-linux-nat.c (ps_get_thread_area): Don't define as extern.
+ Only define PTRACE_GET_THREAD_AREA is not already defined.
+ Various style fixes in code and comments and some additional
+ spelling fixes in comments. Move after functions dealing with
+ debug registers.
+ * x86-64-linux-nat.c (ps_get_thread_area): Don't define as extern.
+ Fix coding-style.
+
+ * alphafbsd-tdep.c (alphafbsd_sigcontext_addr): Use
+ frame_unwind_register_unsigned instead of
+ frame_unwind_unsigned_register.
+
+2003-08-30 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Search for gethostbyname in libnsl.
+ * configure: Regenerated.
+
+2003-08-29 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Remove redundant AC_MSG_RESULT in check for
+ uintptr_t in stdint.h.
+ * configure: Regenerated.
+
+ * amd64-nat.h (struct regcache): Add opaque declaration.
+
+ * i386-linux-tdep.h (I386_LINUX_NUM_REGS): New define.
+ * x86-64-linux-nat.c: Include "i386-linux-tdep.h" and "amd64.h".
+ Change "register array" to "register cache" in comments.
+ (x86_64_linux_gregset64_reg_offset): New variable.
+ (GETREGS_SUPPLIES): Remove macro.
+ (supply_gregset): Call amd64_supply_native_gregset instead of
+ x86_64_linux_supply_gregset.
+ (fill_gregset): Rename `regno' to `regnum'. Call
+ amd64_collect_native_gregset instead of x86_64_linux_fill_gregset.
+ (store_regs): Rename `regno' to `regnum'.
+ (store_fpregs): Rename `regno' to `regnum'.
+ (fetch_inferior_registers): Rename `regno' to `regnum'. Use
+ amd64_native_gregset_supplies_p instead of GREGSET_SUPPLIES.
+ Reorganize function a bit.
+ (store_inferior_registers): Rename `regno' to `regnum'. Use
+ amd64_native_gregset_supplies_p instead of GREGSET_SUPPLIES.
+ Reorganize function a bit.
+ (_initialize_x86_64_linux_nat): New function.
+ * config/i386/x86-64linux.mh.
+
+2003-08-29 Andrew Cagney <cagney@redhat.com>
+
+ * config/mips/tm-embed.h (STOPPED_BY_WATCHPOINT): Delete macro.
+ (TARGET_CAN_USE_HARDWARE_WATCHPOINT): Delete macro.
+ (target_remove_watchpoint): Delete macro.
+ (target_insert_watchpoint): Delete macro.
+ (remote_mips_can_use_hardware_watchpoint): Delete declaration.
+ (remote_mips_stopped_by_watchpoint): Delete declaration.
+ (remote_mips_remove_watchpoint): Delete declaration.
+ (remote_mips_set_watchpoint): Delete declaration.
+ (TARGET_HAS_HARDWARE_WATCHPOINTS): Delete macro.
+ * remote-mips.c (_initialize_remote_mips): Set
+ "to_insert_watchpoint", "to_stopped_by_watchpoint",
+ "to_can_use_hardware_watchpoint", and "to_remove_watchpoint".
+ (mips_insert_watchpoint): Rename remote_mips_set_watchpoint.
+ (mips_remove_watchpoint): Rename remote_mips_remove_watchpoint.
+ (mips_stopped_by_watchpoint): Rename
+ remote_mips_stopped_by_watchpoint.
+ (mips_can_hardware_watchpoint): Rename
+ remote_mips_can_use_hardware_watchpoint, update function
+ signature.
+
+2003-08-29 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-linux-tdep.c (user_to_gdb_regmap): Remove USER_CS and
+ USER_DS. We haven't given them a register number yet.
+
+ * amd64-nat.h: New file.
+ * amd64-nat.c: New file.
+ * amd64fbsd-nat.c: Include "amd64-nat.h".
+ (REG_ADDR, GETREGS_SUPPLIES): Remove macros.
+ (amd64fbsd32_r_reg_offset): New variable.
+ (supply_gregset): Simply call amd64_supply_native_gregset.
+ (fill_gregset): Rename `regno' to `regnum'. Simply call
+ amd64_collect_native_gregset.
+ (fill_fpregset): Rename `regno' to `regnum'.
+ (fetch_inferior_registers): Rename `regno' to `regnum'. Replace
+ usage of GETREGS_SUPPLIES with amd64_native_gregset_supplies_p.
+ Use `struct reg' and `struct fpreg' instead of `gregset_t' and
+ `fpregset_t'. Call amd64_supply_native_gregset instead of
+ supply_gregset. Call x86_64_supply_fxsave instead of
+ supply_fpregset.
+ (store_inferior_registers): Rename `regno' to `regnum'. Replace
+ usage of GETREGS_SUPPLIES with amd64_native_gregset_supplies_p.
+ Use `struct reg' and `struct fpreg' instead of `gregset_t' and
+ `fpregset_t'. Call amd64_collect_native_gregset instead of
+ fill_gregset. Call x86_64_collect_fxsave instead of
+ fill_fpregset.
+ (_initialize_am64fbsd_nat): Initialize
+ amd64_native_gregset32_reg_offset and
+ amd64_native_gregset64_reg_offset.
+ * config/i386/fbsd64.mh (NATDEPFILES): Add amd64-nat.o.
+
+ * regcache.c (regcache_raw_supply): Don't assert that BUF isn't a
+ null pointer. Fix typo in comment.
+
+ * regcache.c (supply_register): Reimplement to call
+ regcache_raw_supply.
+ (regcache_collect): Reimplement by calling regcache_raw_collect.
+
+2003-08-28 Mark Kettenis <kettenis@gnu.org>
+
+ * regcache.c (register_buffer): Consitify first argument.
+ (regcache_raw_supply, regcache_raw_collect): New
+ functions.
+
+2003-08-28 Daniel Jacobowitz <drow@mvista.com>
+
+ * config/powerpc/tm-nbsd.h: Undefine IBM6000_TARGET. Suggested
+ by Nathan J. Williams.
+
+2003-08-28 Daniel Jacobowitz <drow@mvista.com>
+
+ * lin-lwp.c (wait_lwp): New function, copied from
+ stop_wait_callback. Clean up.
+ (stop_wait_callback): Use wait_lwp.
+
+2003-08-28 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (gdb_print_insn_mips): Set the disassembler's
+ flavour and disassembler options.
+ (_initialize_mips_tdep): Do not set deprecated_tm_print_insn.
+ (mips_gdbarch_init): Set "print_insn". Delete initialization of
+ deprecated_tm_print_insn_info.
+
+2003-08-27 Andrew Cagney <cagney@redhat.com>
+
+ * s390-tdep.c (s390_readinstruction): Delete "info" parameter.
+ Use target_read_memory.
+ (s390_get_frame_info): Update. Do not reference
+ deprecated_tm_print_insn_info.
+ (s390_check_function_end, s390_is_sigreturn): Ditto.
+
+2003-08-27 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (cris-tdep.o): Update dependencies.
+ * cris-tdep.c: Include "gdb_assert.h".
+ (cris_gdbarch_init): Set print_insn.
+ (_initialize_cris_tdep): Do not set deprecated_tm_print_insn.
+ (cris_delayed_get_disassembler): Simplify, directly call the
+ disassembler returned by cris_get_disassembler.
+ * hppa-tdep.c (hppa_gdbarch_init): Set print_insn.
+ (_initialize_hppa_tdep): Do not set deprecated_tm_print_insn.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Set print_insn.
+ (_initialize_ns32k_tdep): Do not set deprecated_tm_print_insn.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Set print_insn.
+ (_initialize_mn10300_tdep): Do not set deprecated_tm_print_insn.
+ * mcore-tdep.c (mcore_gdbarch_init): Set print_insn.
+ (_initialize_mcore_tdep): Do not set deprecated_tm_print_insn.
+ * frv-tdep.c (frv_gdbarch_init): Set print_insn.
+ (_initialize_frv_tdep): Do not set deprecated_tm_print_insn.
+ * sparc-tdep.c (sparc_gdbarch_init): Set print_insn.
+ (gdb_print_insn_sparc): Delete function.
+ (_initialize_sparc_tdep): Do not set deprecated_tm_print_insn or
+ deprecated_tm_print_insn_info.
+ * v850-tdep.c (v850_gdbarch_init): Set print_insn.
+ (_initialize_v850_tdep): Do not set deprecated_tm_print_insn.
+ (v850_gdbarch_init): Do not set deprecated_tm_print_insn_info.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Set print_insn.
+ (_initialize_xstormy16_tdep): Do not set deprecated_tm_print_insn.
+ * s390-tdep.c (gdb_print_insn_s390): Delete function.
+ (_initialize_s390_tdep): Do not set deprecated_tm_print_insn.
+ (s390_gdbarch_init): Set print_insn.
+
+2003-08-27 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-linux-tdep.c (ppc64_call_dummy_address): Delete function.
+ (ppc_linux_init_abi): For PPC64, do not set call_dummy_address.
+ * infcall.c (call_function_by_hand): Convert the entry point
+ address into a code address.
+
+2003-08-27 Andrew Cagney <cagney@redhat.com>
+
+ * dsrec.c: Include "gdb_string.h".
+ * Makefile.in (dsrec.o): Update dependencies.
+
+2003-08-27 Michael Chastain <mec@shout.net>
+
+ * config/djgpp/fnchange.lst: Add gdb/testsuite/gdb.mi/mi2-var-*.
+
+2003-08-27 Andrew Cagney <cagney@redhat.com>
+
+ * alpha-osf1-tdep.c (alpha_call_dummy_address): Delete function.
+ (alpha_osf1_init_abi): Do not set call_dummy_address.
+
+2003-08-27 David Carlton <carlton@kealia.com>
+
+ From Randolph Chung <tausq@debian.org>:
+ * linux-proc.c (linux_info_proc_cmd): rework the code so that it
+ compiles with -Wformat-nonliteral -Werror.
+
+2003-08-26 Jim Blandy <jimb@redhat.com>
+
+ * solib-svr4.c (bfd_lookup_symbol): New SECT_FLAGS argument.
+ (enable_break): Pass SEC_CODE as the SECT_FLAGS argument to
+ bfd_lookup_symbol, since we only want symbols in code sections.
+ (look_for_base): Pass zero as the SECT_FLAGS argument to
+ bfd_lookup_symbol, since we're not concerned about which section
+ the symbol is in.
+
+2003-08-26 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-tdep.c (examine_prologue): Only stop at predicated insns if
+ we are frameless or the return address register is already known.
+
+2003-08-26 Andrew Cagney <cagney@redhat.com>
+
+ * i386-linux-nat.c (ps_get_thread_area): Make "desc" four "int"s
+ in size. Add comments.
+
+2003-08-26 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-tdep.c (ia64_convert_from_func_addr): New function.
+ (ia64_gdbarch_init): Call set_gdbarch_convert_from_func_addr().
+
+2003-08-26 Jason Merrill <jason@redhat.com>
+
+ * dwarf2read.c (dwarf_attr_name): Move DW_AT_MIPS_linkage_name
+ case out of #ifdef MIPS block.
+
+2003-08-25 Daniel Jacobowitz <drow@mvista.com>
+
+ PR java/1322
+ * dwarf2-frame.c (dwarf2_frame_find_fde): Check whether any FDEs are
+ available before calling SECT_OFF_TEXT.
+ * PROBLEMS: Remove description of java/1322.
+
+2003-08-25 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-tdep.c (pseudo_regs): New enum that lists gr32-gr127, p0-p63,
+ bof, and nat0-nat127 as pseudo-registers.
+ (ia64_frame_cache): New struct used to cache frame info.
+ (ia64_register_reggroup_p): New routine used to override default
+ register grouping so registers without names are still saved and
+ restored.
+ (ia64_dwarf_reg_to_regnum): New routine to map gr32-gr127 to their
+ pseudo values.
+ (ia64_pseudo_register_read): New routine to read pseudo-registers.
+ (ia64_pseudo_register_write): New routine to write pseudo-registers.
+ (ia64_alloc_frame_cache): New routine to create a new
+ ia64_frame_cache.
+ (examine_prologue): Change prototype to add next_frame pointer.
+ Assume frameless until otherwise proven. Verify that the cfm for
+ current frame matches the cfm that should occur for the prologues
+ alloc insn and if equal, mark as not frameless. At end of routine,
+ if not frameless, calculate registers for the previous frame and store
+ in the cache, if a cache is provided.
+ (ia64_skip_prologue): Use new prototype when calling examine_prologue
+ and pass 0 for next_frame.
+ (ia64_store_return_value): Change to use convert_typed_floating()
+ instead of calling ia64_convert_to_raw().
+ (ia64_extract_return_value): Change to use convert_typed_floating()
+ instead of calling ia64_convert_to_virtual().
+ (ia64_frame_cache): New routine to support new frame model.
+ (ia64_frame_this_id, ia64_frame_prev_register): Ditto.
+ (ia64_frame_sniffer): Ditto.
+ (ia64_sigtramp_frame_init_saved_regs): Ditto.
+ (ia64_sigtramp_frame_cache, ia64_sigtramp_frame_this_id): Ditto.
+ (ia64_sigtramp_frame_prev_register): Ditto.
+ (ia64_sigtramp_frame_sniffer): Ditto.
+ (ia64_frame_base_address): Ditto.
+ (ia64_extract_struct_value_address): Change to issue error message.
+ (ia64_frame_align): New routine to align sp.
+ (ia64_push_dummy_call): New routine based on ia64_push_arguments().
+ (ia64_push_arguments): Removed. Logic moved to
+ ia64_push_dummy_call().
+ (ia64_push_return_address): Ditto.
+ (ia64_unwind_dummy_id): New function.
+ (ia64_unwind_pc): Ditto.
+ (ia64_convert_register_p): Ditto.
+ (ia64_register_to_value): Ditto.
+ (ia64_value_to_register): Ditto.
+ (ia64_pop_frame, ia64_pop_frame_regular): Removed.
+ (ia64_register_byte, ia64_register_raw_size): Ditto.
+ (ia64_register_virtual_size, ia64_register_virtual_byte): Ditto.
+ (ia64_saved_pc_after_call): Ditto.
+ (ia64_frame_chain, ia64_frame_saved_pc): Ditto.
+ (ia64_frame_init_saved_regs, ia64_get_saved_register): Ditto.
+ (ia64_register_convertible, ia64_register_convert_to_virtual): Ditto.
+ (ia64_register_convert_to_raw): Ditto.
+ (ia64_store_struct_return, ia64_call_dummy_words): Ditto.
+ (ia64_init_extra_frame_info): Ditto.
+ (ia64_frame_args_address, ia64_frame_locals_address): Ditto.
+ (ia64_gdbarch_init): Remove registering of deprecated functions that
+ are no longer used. Add registration of new gdbarch functions.
+ Remove registering deprecated_write_sp. Replace
+ set_gdbarch_register_virtual_type() with set_gdbarch_register_type().
+ Delete set_gdbarch_deprecated_register_convertible(),
+ set_gdbarch_deprecated_register_convert_to_virtual(), and
+ set_gdbarch_deprecated_register_convert_to_raw() calls. Remove
+ set_gdbarch_deprecated_register_size(),
+ set_gdbarch_deprecated_register_bytes(),
+ set_gdbarch_pcregnum(),
+ set_gdbarch_deprecated_register_byte(),
+ set_gdbarch_deprecated_register_raw_size(),
+ set_gdbarch_deprecated_max_register_raw_size(),
+ set_gdbarch_deprecated_register_virtual_size(),
+ and set_gdbarch_deprecated_max_register_virtual_size() calls.
+ Replace set_gdbarch_deprecated_extract_return_value() with
+ set_gdbarch_extract_return_value(). Remove calls to:
+ set_gdbarch_deprecated_saved_pc_after_call();
+ set_gdbarch_deprecated_frame_chain(),
+ set_gdbarch_deprecated_frame_saved_pc(),
+ set_gdbarch_deprecated_frame_init_saved_regs(),
+ set_gdbarch_deprecated_get_saved_register(),
+ set_gdbarch_deprecated_call_dummy_words(),
+ set_gdbarch_deprecated_sizeof_call_dummy_words(),
+ set_gdbarch_deprecated_init_extra_frame_info(),
+ set_gdbarch_deprecated_frame_args_address(),
+ set_gdbarch_deprecated_frame_locals_address(),
+ and set_gdbarch_deprecated_dummy_write_sp().
+ Add set_gdbarch_convert_register_p(),
+ set_gdbarch_register_to_value(),
+ set_gdbarch_value_to_register(),
+ set_gdbarch_push_dummy_call(),
+ set_gdbarch_frame_align(),
+ set_gdbarch_unwind_dummy_id(),
+ set_gdbarch_unwind_pc(),
+ frame_unwind_append_sniffer(),
+ frame_unwind_append_sniffer(),
+ and frame_base_set_default().
+
+2003-08-25 Chris Demetriou <cgd@broadcom.com>
+
+ * configure.tgt: Document need for special "mipsisa64" handling.
+ (mipsisa64*-*-linux64): Handle as target linux64.
+ (mipsisa64*-*-*): Handle as target embed64.
+
+2003-08-18 Michael Chastain <mec@shout.net>
+
+ * PROBLEMS: Document pr gdb/1322, the Java anonymous
+ objfile bug.
+
+2003-08-24 Mark Kettenis <kettenis@gnu.org>
+
+ * i387-tdep.h: Update copyright date.
+ (I387_SIZEOF_FSAVE, I387_SIZEOF_FXSAVE): New defines.
+
+ * linux-proc.c (linux_proc_xfer_memory): Remove comment about
+ CFLAGS games to reflect reality.
+
+2003-08-24 Andrew Cagney <cagney@redhat.com>
+
+ * arm-tdep.c (_initialize_arm_tdep): Simplify by assuming
+ GDB_MULTI_ARCH is always non-zero.
+ * osabi.c (_initialize_gdb_osabi): Ditto.
+ (gdbarch_init_osabi): Ditto.
+ * sparc-tdep.c: Ditto for #if code.
+
+2003-08-23 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (x86_64_supply_fxsave): Add `regnum' argument.
+ Update comments.
+ * x86-64-tdep.h (x86_64_supply_fxsave): Adjust prototype. Update
+ comments.
+ * x86-64-linux-tdep.c (fetch_core_registers): Adjust call to
+ x86_64_supply_fxsave.
+ * x86-64-linux-nat.c (supply_fpregset): Adjust call to
+ x86_64_supply_fxsave.
+ * amd64fbsd-nat.c (supply_fpregset): Adjust call to
+ x86_64_supply_fxsave.
+
+2003-08-23 Andreas Jaeger <aj@suse.de>
+
+ * x86-64-tdep.c (x86_64_supply_fxsave): Adjust call to
+ i387_supply_fxsave.
+
+2003-08-23 Mark Kettenis <kettenis@gnu.org>
+
+ * go32-nat.c (fetch_register): Call i387_supply_fsave instead of
+ i387_supply_register.
+ (go32_fetch_registers): Adjust call to i387_supply_fsave.
+ * i386nbsd-tdep.c (fetch_core_registers): Adjust call to
+ i387_supply_fsave.
+ (fetch_elfcore_registers): Adjust call to i387_supply_fsave and
+ i387_supply_fxsave.
+ * i386obsd-tdep.c (fetch_core_registers): Adjust call to
+ i387_supply_fsave.
+ * i386bsd-nat.c (supply_fpregset): Adjust call to
+ i387_supply_fsave.
+ (fetch_inferior_registers): Remove extraneous whitespace. Adjust
+ call to i387_supply_fxsave. Call i387_supply_fsave instead of
+ supply_fpregset.
+ (store_inferior_registers): Remove extraneous whitespace. Call
+ i387_fill_fsave instead of fill_fpregset.
+ * i386gnu-nat.c (fetch_fpregs): Adjust call to i387_supply_fsave.
+ (supply_fpregset): Likewise.
+ * i386v4-nat.c (supply_fpregset): Adjust call to
+ i387_supply_fsave.
+ * i386-interix-nat.c (supply_fpregset): Adjust call to
+ i387_supply_fsave.
+ * i386-linux-nat.c (supply_fpregset): Adjust call to
+ i387_supply_fsave.
+ (supply_fpxregset): Adjust call to i387_adjust_fxsave.
+ * i386-nto-tdep.c (i386nto_supply_fpregset): Adjust calls to
+ i387supply_fsave and i387_supply_fxsave.
+ * i387-tdep.c (i387_supply_fsave): Add `regnum' argument.
+ Incorporate code from `i387_supply_register.
+ (i387_supply_register): Remove.
+ (i387_supply_fxsave): Add `regnum' argument.
+ Update comments.
+ * i387-tdep.h (i387_supply_fsave, i387_supply_fsxave): Adjust
+ prototype.
+ (i387_supply_register): remove prototype.
+ Update comments.
+
+2003-08-22 Michael Chastain <mec@shout.net>
+
+ * config/djgpp/fnchange.lst: Remove gdb/testsuite/gdb.c++/*.
+ Add lines for files in gdb/testsuite/gdb.cp/* that are
+ still not 8.3 unique.
+
+2003-08-22 Daniel Jacobowitz <drow@mvista.com>
+
+ * gnu-v3-abi.c (gnuv3_baseclass_offset): Check whether
+ TYPE_VPTR_FIELDNO is valid.
+
+2003-08-19 Mark Kettenis <kettenis@gnu.org>
+
+ * utils.c (set_width_command): Remove prototypes.
+ (set_screen_size): New prototype.
+ (init_page_info): Simplify by fetching the screen size from
+ Readline. Call set_screen_size.
+ (set_screen_size): New function.
+ (set_width): Add missing whitespace in comment.
+ (set_width_command): Call set_screen_size.
+ (set_height_command): New function.
+ (initialize_utils): Fix formatting. Make "set height" command
+ call set_height_command. Remove redundant code that turns off
+ pagination if output isn't a terminal. Remove redundant call to
+ set_width_command.
+
+2003-08-22 Mark Kettenis <kettenis@gnu.org>
+
+ * sparc64-tdep.h (sparc64_regnum): Fix comment.
+ (sparc64_supply_rwindow, sparc64_fill_rwindow): Remove prototypes.
+ (sparc_supply_rwindow, sparc_fill_rwindow): New prototypes.
+ * sparc64-tdep.c (sparc64_pseudo_register_read): Add missing
+ `case' keyword.
+ (sparc64_register_info): Give the reister with number
+ SPARC64_STATE_REGNUM a name.
+ (sparc64_pseudo_register_write): Add support for %cwp, %pstate,
+ %asi and %ccr.
+ (sparc64_push_dummy_call): Take BIAS into account when checking
+ stcak alignment.
+ (sparc_software_single_step): Remove assertions that check whether
+ NPC and NNPC were zero.
+ (sparc_supply_rwindow): Make public. Merge functionality with
+ sparc64_supply_rwindow.
+ (sparc_fill_rwindow): Make public. Merge functionality with
+ sparc64_fill_rwindow.
+ (sparc64_supply_rwindow, sparc64_fill_rwindow): Remove.
+ * sparc64fbsd-nat.c (_initialize_sparc64fbsd_nat): Set
+ SPARCBSD_FPREG_SUPPLIES_P to sparc64fbsd_fpreg_supplies_p.
+ * sparc64fbsd-tdep.c (sparc64fbsd_supply_reg): Call
+ sparc_supply_rwindow instead of sparc64_supply_rwindow.
+
+ * reggroups.c: Add whitespace after declarations of local
+ variables in functions.
+
+2003-08-21 Michael Chastain <mec@shout.net>
+
+ * gdbtypes.h: Change array bound type from an int to enum.
+
+2003-08-21 Andrew Cagney <cagney@redhat.com>
+
+ * config/sparc/tm-sp64.h: Delete #if !GDB_MULTI_ARCH and #if 0 code.
+ * config/sparc/tm-sparc.h: Ditto.
+ * config/arm/tm-arm.h (GDB_MULTI_ARCH): Define GDB_MULTI_ARCH
+ unconditionally.
+ * config/pa/tm-hppa.h (GDB_MULTI_ARCH): Ditto.
+
+2003-07-13 Mark Kettenis <kettenis@gnu.org>
+
+ * objfiles.h (struct objfile): Add memebers `data' and `num_data'.
+ (register_objfile_data, set_objfile_data, objfile_data): New
+ prototypes.
+ * objfiles.c (objfile_alloc_data, objfile_free_data): New
+ prototypes.
+ (allocate_objfile): Call objfile_alloc_data.
+ (free_objfile): Call objfile_free_data.
+ (struct objfile_data): New.
+ (struct objfile_data_registration): New.
+ (struct objfile_data_registry): New.
+ (objfile_data_registry): New variable.
+ (register_objfile_data): New function.
+ (objfile_alloc_data, objfile_free_data): New functions.
+ (set_objfile_data, objfile_data): New functions.
+ * dwarf2-frame.c (dwarf2_frame_data): New variable.
+ (dwarf2_frame_find_fde, add_fde): Use new per-objfile data mechanism.
+ (_initialize_dwarf2_frame): New function and prototype.
+
+2003-08-21 Andrew Cagney <cagney@redhat.com>
+
+ * sh3-rom.c (sh3_open, sh3e_open): Use gdbarch_update_p to select
+ a specific architecture.
+ * arch-utils.h (set_architecture_from_arch_mach): Delete
+ declaration.
+ (target_architecture_hook): Delete declaration.
+ * arch-utils.c: Delete non GDB_MULTI_ARCH includes.
+ (default_float_format): Assume GDB_MULTI_ARCH.
+ (default_double_format): Assume GDB_MULTI_ARCH.
+ (set_endian_from_file): Delete function.
+ (arch_ok): Delete function.
+ (set_arch): Delete function.
+ (set_architecture_from_arch_mach): Delete function.
+ (set_architecture_from_file): Delete function.
+ (set_architecture): Assume GDB_MULTI_ARCH.
+ (set_gdbarch_from_file): Assume GDB_MULTI_ARCH.
+
+2003-08-21 Mark Kettenis <kettenis@gnu.org>
+
+ Rewrite FreeBSD/sparc64 native configuration.
+ * sparcbsd-nat.c, sparcbsd-nat.h: New files.
+ * sparc64fbsd-nat.c: New file.
+ * sparc64fbsd-tdep.c: New file.
+ * sparc64-tdep.c sparc64-tdep.h: New files.
+ * Makefile.in (sparcbsd-nat.o, sparc64fbsd-nat.o, sparc64-tdep.o,
+ sparc64fbsd-tdep.o): New dependencies.
+ (SFILES): Add sparcbsd-nat.c, sparc64fbsd-nat.c, sparc64-tdep.c
+ and sparc64fbsd-tdep.c.
+ (sparc64_tdep_h, sparcbsd_nat_h): New variables.
+ * config/sparc/fbsd.mh: Remove copyright notice.
+ (NATDEPFILES): Remove sparc-nat.o, add sparc64fbsd-nat.o and
+ sparcbsd-nat.o.
+ * config/sparc/fbsd.mt: Remove copyright notice.
+ (TDEPFILES): Remove sparc-tdep.o, solib.o solib-svr4.o,
+ solib-legacy.o. Add sparc64-tdep.o and sparc64fbsd-tdep.o.
+ * config/sparc/nm-fbsd.h: Don't include "elf/common.h".
+ (SVR4_SHARED_LIBS, PTRACE_GETREGS, PTRACE_SETREGS,
+ PTRACE_GETFPREGS, PTRACE_SETFPREGS, GDB_GREGSET_T, GDB_FPREGSET_T,
+ regs, r_g1, r_ps, r_pc, r_npc, r_y, FPU_FSR_TYPE, fp_status, fpu,
+ fpu_regs, fp_fr, fpu_fsr, Fpu_fsr): Remove defines.
+ * config/sparc/tm-fbsd.h: Don't include "solib.h" and
+ "sparc/tm-sp64.h".
+ (SVR4_SHARED_LIBS, START_INFERIOR_TRAPS_EXPECTED): Remove defines.
+ (GDB_MULTI_ARCH): Define to GDB_MULTI_ARCH_TM.
+
+2003-08-21 Michael Chastain <mec@shout.net>
+
+ * symtab.h: Add doco on the space critical structures and
+ some measurements of space usage.
+
+2003-08-21 Michael Snyder <msnyder@redhat.com>
+
+ * tracepoint.c (trace_dump_command): Trace break address
+ is subject to DECR_PC_AFTER_BREAK.
+ (set_traceframe_context): Make "trace_line" an int.
+ Fixes suggested by Mark Newman <mark.newman@lmco.com>
+
+2003-08-20 Michael Snyder <msnyder@redhat.com>
+
+ * sh-tdep.h (struct gdbarch_tdep): New member FLOAT_ARGLAST_REG.
+ * sh-tdep.c (sh_gdbarch_init): For sh2e, sh3e, and sh4, set
+ FLOAT_ARG0_REGNUM and FLOAT_ARGLAST_REGNUM, to be used for
+ argument passing.
+ (sh_push_dummy_call_fpu, sh_push_dummy_call_nofpu): New
+ functions, replace sh_push_dummy_call.
+ (sh_gdbarch_init): Set push_dummy_call to one of new methods.
+
+2003-08-20 Michael Chastain <mec@shout.net>
+
+ * gdbtypes.h (struct main_type): Rearrange to save space.
+
+2003-08-20 Michael Snyder <msnyder@redhat.com>
+
+ * trad-frame.c: Comment typo fix.
+
+2003-08-20 Michael Snyder <msnyder@redhat.com>
+ Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (gdb_string.h, frame.h, trad-frame.h): Include.
+ (frv_frame_init_saved_regs): Add declaration.
+ (frame_extra_info): Add new field ``saved_regs''.
+ (frv_frame_chain, frv_frame_saved_pc, frv_analyze_prologue)
+ (frv_skip_prologue, frv_init_extra_frame_info, frv_pop_frame_regular):
+ Update frame related code.
+ (frv_extract_struct_value_address): Adjust formatting.
+ * Makefile.in (frv-tdep.o): Update dependencies.
+ * config/frv/tm-frv.h (target_insert_watchpoint)
+ (target_remove_watchpoint, target_insert_hw_breakpoint)
+ (target_remove_hw_breakpoint): Delete these macros.
+ (remote_insert_watchpoint, remote_remove_watchpoint)
+ (remote_insert_hw_watchpoint, remote_remove_hw_watchpoint): Remove
+ these declarations.
+
+2003-08-20 Michael Chastain <mec@shout.net>
+
+ * defs.h (ENUM_BITFIELD): New macro.
+ * symtab.h (ENUM_BITFIELD): Use it.
+ (BYTE_BITFIELD): Remove old macro, which was already disabled.
+
+2003-08-19 Shrinivas Atre <shrinivasa@kpitcummins.com>
+
+ * MAINTAINERS (write after approval): Add myself.
+
+2003-08-18 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (FRAME_RED_ZONE_SIZE): New architecture method.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * infcall.c (call_function_by_hand): Adjust the SP by
+ frame_red_zone_size before allocating any stack space.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Set "frame_red_zone_size".
+ * x86-64-tdep.c (x86_64_frame_align): New function.
+ (x86_64_init_abi): Set "frame_red_zone_size" and "frame_align".
+
+ * x86-64-tdep.c (x86_64_push_arguments): Revert 2003-08-07 change.
+ Remove code adjusting SP so that it skips over the Red Zone.
+
+2003-08-18 Mark Kettenis <kettenis@gnu.org>
+
+ * NEWS (New native configurations): Mention FreeBSD/amd64.
+
+2003-08-18 Andrew Cagney <cagney@redhat.com>
+
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Do not set
+ "dwarf2_build_frame_info". Append "m68k_frame_sniffer" instead of
+ "m68k_frame_p".
+ (m68hc11_frame_sniffer): Replace "m68hc11_frame_p".
+
+2003-08-18 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (x86_64_dwarf_regmap): Remove trailing whitespace.
+
+2003-08-18 Michal Ludvig <mludvig@suse.cz>
+
+ * config/i386/nm-x86-64linux.h (LINUX_CHILD_POST_STARTUP_INFERIOR):
+ Define.
+ * i386-linux-nat.c: Include "linux-nat.h".
+ (child_post_startup_inferior): New function.
+
+2003-08-18 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_analyze_register_saves): Handle register saves
+ at the start of a frameless function. This probably fixes PR
+ backtrace/1338.
+
+2003-08-17 Michael Chastain <mec@shout.net>
+
+ * symfile.c (find_sym_fns): Remove special case for apollo target.
+
+2003-08-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * linux-nat.c (PTRACE_O_TRACEVFORKDONE, PTRACE_O_TRACEEXIT): Define.
+ (PTRACE_EVENT_VFORKDONE, PTRACE_EVENT_EXIT): Define.
+ (linux_parent_pid, linux_supports_tracevforkdone_flag): New variable.
+ (linux_test_for_tracefork): Set linux_supports_tracevforkdone_flag.
+ (linux_supports_tracevforkdone): New function.
+ (linux_enable_event_reporting): Enable TRACEVFORK, TRACEEXEC, and
+ TRACEVFORKDONE.
+ (child_follow_fork): Handle vfork.
+ (linux_handle_extended_wait): Likewise. Also handle exec.
+ (child_insert_vfork_catchpoint, child_insert_exec_catchpoint): Enable.
+ * NEWS: Mention fork tracing.
+
+2003-08-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * lin-lwp.c (child_wait): Call linux_record_stopped_pid.
+
+2003-08-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (i386-linux-nat.o): Update dependencies.
+ * config/i386/nm-linux.h (LINUX_CHILD_POST_STARTUP_INFERIOR): Define.
+ * config/nm-linux.h (CHILD_POST_STARTUP_INFERIOR, CHILD_POST_ATTACH)
+ (CHILD_FOLLOW_FORK, KILL_INFERIOR): Define.
+ * i386-linux-nat.c: Include "linux-nat.h".
+ (child_post_startup_inferior): New function.
+ * i386-nat.c (child_post_startup_inferior): Wrap in #ifdef.
+ * infptrace.c (kill_inferior): Wrap in #ifdef.
+ * lin-lwp.c (lin_lwp_attach_lwp): Call child_post_attach after
+ attaching to each LWP.
+ (child_wait, lin_lwp_wait): Call linux_handle_extended_wait.
+ (init_lin_lwp_ops): Fill in some more operations.
+ * linux-nat.h (linux_enable_event_reporting)
+ (linux_handle_extended_wait, linux_child_post_startup_inferior): New
+ prototypes.
+ * linux-nat.c (linux_enable_event_reporting): New function.
+ (child_post_attach, linux_child_post_startup_inferior)
+ (child_post_startup_inferior, child_follow_fork)
+ (linux_handle_extended_wait, kill_inferior): New functions.
+
+2003-08-16 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Delete all #if not GDB_MULTI_ARCH code.
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+2003-08-16 Mark Kettenis <kettenis@gnu.org>
+
+ * config/alpha/nm-fbsd.h (SVR4_SHARED_LIBS): Remove define.
+
+2003-08-16 Andrew Cagney <cagney@redhat.com>
+
+ * NEWS: Mention that "set prompt-escape-char" was deleted.
+ * top.c (get_prompt_1): Delete function.
+ (gdb_prompt_escape):
+ (init_main): Do not clear "gdb_prompt_escape". Delete "set
+ prompt-escape-char" command.
+ (MAX_PROMPT_SIZE): Delete macro.
+ (get_prompt): Simplify, do not call get_prompt_1.
+
+2003-08-16 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (printcmd.o, valprint.o): Do not try to build with
+ -Werror. -Wformat-nonliteral problems.
+
+2003-08-15 J. Brobecker <brobecker@gnat.com>
+
+ Further multiarching work mostly for hppa64-*-hpux11:
+ * hppa-tdep.h: New file.
+ * hppa-tdep.c: #include hppa-tdep.c.
+ (hppa32_num_regs): Renamed from hppa_num_regs.
+ (hppa64_num_regs): New constant.
+ (hppa64_call_dummy_breakpoint_offset): New constant.
+ (hppa32_call_dummy_length): New constant.
+ (hppa64_call_dummy_length): New constant.
+ (hppa32_stack_align): Make name 32bit explicit.
+ (hppa32_register_virtual_type): Likewise.
+ (hppa32_extract_return_value): Likewise.
+ (hppa32_use_struct_convention): Likewise.
+ (hppa32_store_return_value): Likewise.
+ (hppa64_register_virtual_type): New function.
+ (hppa64_extract_return_value): New function.
+ (hppa64_use_struct_convention): New function.
+ (hppa64_store_return_value): New function.
+ (hppa_frame_locals_address): Remove declaration, function does
+ not exist anymore.
+ (hppa_register_byte): Add support for PA64 ABI.
+ (hppa_gdbarch_init): Add support for PA64 ABI.
+ * hppa-hpux-tdep.c (hppa32_hpux_frame_saved_pc_in_sigtramp):
+ Make name 32bit explicit.
+ (hppa32_hpux_frame_base_before_sigtramp): Likewise.
+ (hppa32_hpux_frame_find_saved_regs_in_sigtramp): Likewise.
+ (hppa64_hpux_frame_saved_pc_in_sigtramp): New function.
+ (hppa64_hpux_frame_base_before_sigtramp): New function.
+ (hppa64_hpux_frame_find_saved_regs_in_sigtramp): New function.
+ * config/pa/tm-hppa64.h: Remove macros that are no longer
+ necessary now that the gdbarch vector is properly setup.
+ Transform some macros into function calls. Some minor cleanup.
+ * config/pa/tm-hppah.h: Update function calls in macros
+ following the function renaming in hppa-hpux-tdep.c.
+ * Makefile.in (hppa_tdep_h): New variable.
+ (hppa-tdep.o): Add dependency over hppa_tdep_h.
+
+2003-08-14 Michael Snyder <msnyder@redhat.com>
+
+ * disasm.c (gdb_disassemble_info): Set info->insn_sets to zero.
+
+2003-08-13 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-hpux-tdep.c (_initialize_hppa_hpux_tdep): Use the correct
+ bfd arch_info when registering the GDB_OSABI_HPUX_ELF initialization
+ routine.
+
+2003-08-13 Michael Snyder <msnyder@redhat.com>
+
+ * frv-tdep.c (frv_push_arguments): Use deprecated ftype.
+ (frv_saved_pc_after_call): Use deprecated ftype.
+ (stupid_useless_init_extra_frame_info): Remove orphan prototype.
+ (frv_remote_translate_xfer_address): Remove.
+ (frv_gdbarch_init): Use generic_remote_translate_xfer_address.
+
+2003-08-13 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-tdep.c (hppa_gdbarch_init): Perform the ABI-specific gdbarch
+ initialization after the common gdbarch initialization, not before.
+
+2003-08-13 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/tm-hppa64.h (HPUX_1100): Remove, not used.
+ (ADDR_BITS_REMOVE): Remove, redundant.
+
+2003-08-13 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-tdep.c (hppa_gdbarch_init): Set the addr_bits_remove
+ gdbarch method to clear the 2 low bits of text addresses.
+
+2003-08-12 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (dsrec.o): Update dependencies.
+ * dsrec.c: Include "gdb_assert.h".
+ (make_srec): Use snprintf instead of sprintf, use a literal format
+ string.
+
+2003-08-12 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (deprecated_frame_xmalloc): Use XMALLOC, instead of
+ FRAME_OBSTACK_ZALLOC.
+
+2003-08-12 Kevin Buettner <kevinb@redhat.com>
+
+ * i386-tdep.c (i386_gdbarch_init): Enable default support for
+ SSE registers.
+
+2003-08-10 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.h (amd64fbsd_sigtramp_start, amd64fbsd_sigtramp_end,
+ amd64fbsd_sc_reg_offset): Add extern declarations.
+ * amd64fbsd-nat.c (_initialize_am64fbsd_nat): Remove extern
+ declarations.
+
+2003-08-11 Ben Elliston <bje@wasabisystems.com>
+
+ * MAINTAINERS (write after approval): Update my mail address.
+
+2003-08-10 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (monitor.o): Do not build monitor.c with -Werror.
+
+2003-08-10 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.h (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
+ i386obsd_sigtramp_start, i386obsd_sigtramp_end,
+ i386fbsd4_sc_reg_offset, i386fbsd_sc_reg_offset,
+ i386nbsd_sc_reg_offset, i386obsd_sc_reg_offset,
+ i386bsd_sc_reg_offset): Add extern declarations.
+ * i386obsd-nat.c: Include "i386-tdep.h"
+ (_initialize_i386obsd_nat): Remove extern declarations.
+ * i386fbsd-nat.c (_initialize_i386fbsd_nat): Remove extern
+ declarations.
+ * i386bsd-nat.c (_initialize_i386bsd_nat): Remove extern
+ declarations.
+
+ * i386-tdep.c (i386_register_to_value): Use get_frame_register
+ instead of frame_read_register.
+ (i386_fetch_pointer_argument): Use get_frame_register_unsigned
+ instead of frame_read_register. Use I386_ESP_REGNUM instead of
+ SP_REGNUM.
+ (i386_frame_prev_register): Use frame_unwind_register_unsigned
+ instead of frame_unwind_unsigned_register. Use
+ I386_EFLAGS_REGISTER instead of PS_REGNUM.
+ (i386_get_longjmp_target): Use regcache_read_unsigned_register
+ instead of read_register. Use builtin_type_void_data_ptr instead
+ of builtin_type_void_func_ptr when extracting the address of the
+ jmp_buf.
+ (i386_extract_return_value, i386_store_return_value,
+ i386_pseudo_register_read, i386_pseudo_register_write): Use
+ register_size instead REGISTER_RAW_SIZE.
+
+2003-08-10 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): Use xstrprintf instead of
+ sprintf. Make "name" constant.
+
+2003-08-10 Mark Kettenis <kettenis@gnu.org>
+
+ * i387-tdep.c (i387_register_to_value): Use get_frame_register
+ instead of frame_read_register.
+ (i387_print_float_info): Use get_frame_register and
+ get_frame_register_unsigned instead of frame_register_read.
+
+ * i386fbsd-nat.c: Include "i386-tdep.h".
+ (child_resume): Make `eflags' an ULONGEST. Use
+ regcache_cooked_read_unsigned and regcache_cooked_write_unsigned
+ instead of register_read and register_write.
+
+ * i386bsd-nat.c (fetch_inferior_registers,
+ store_inferior_registers): Don't use && at the end of a line.
+ (_initialize_i386bsd_nat): Fix typo.
+
+ * frame.c (_initialize_frame): Add missing backslash.
+
+ From Peter Schauer (Peter.Schauer@regent.e-technik.tu-muenchen.de):
+ * sol-thread.c (sol_thread_store_registers): Use regcache_collect
+ and supply_register instead of manipulating the register buffer
+ directly.
+
+ From Peter Schauer (Peter.Schauer@regent.e-technik.tu-muenchen.de):
+ * config/i386/nm-i386sol2.h
+ (TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT): Define to one.
+
+ Based on a patch from Michael Elizabeth Chastain (mec@shout.net):
+ * i386-tdep.c (i386_analyze_frame_setup): Recognize more
+ instructions that GCC likes to mingle into the prologue. Fixes
+ gdb/1253 and gdb/1255.
+
+2003-08-09 Andrew Cagney <cagney@redhat.com>
+
+ Fix GDB PR cli/926.
+ * cli/cli-decode.c (add_setshow_uinteger_cmd): New function.
+ * command.h (add_setshow_uinteger_cmd): Declare.
+ * frame.c (set_backtrace_cmd): New function.
+ (show_backtrace_cmd): New function.
+ * frame.c (_initialize_frame): Replace "set/show
+ backtrace-below-main" with "set/show backtrace past-main". Add
+ command "set/show backtrace limit".
+ (backtrace_past_main): Rename "backtrace_below_main".
+ (backtrace_limit): New variable.
+ (get_prev_frame): Update. Check the backtrace_limit.
+
+2003-08-09 Andrew Cagney <cagney@redhat.com>
+
+ * defs.h (xstrprintf): Declare.
+ * utils.c (xstrprintf): New function.
+ * breakpoint.c (insert_breakpoints): Replace sprintf and
+ non-literal format strings, with xstrprintf and cleanups.
+ (delete_breakpoint,breakpoint_re_set): Ditto.
+ (commands_command, insert_breakpoints): Ditto.
+ (bpstat_stop_status, break_at_finish_at_depth_command_1): Ditto.
+ (break_at_finish_command_1): Ditto.
+
+2003-08-09 Andrew Cagney <cagney@redhat.com>
+
+ * MAINTAINERS (language support): List Adam Fedor as Objective C
+ maintainer.
+
+2003-08-08 J. Brobecker <brobecker@gnat.com>
+
+ * NEWS (Multi-arched targets): Document that all hppa-hpux targets
+ are now multiarched.
+
+2003-08-08 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/tm-hppa64.h: Remove lots of macros that are no
+ longer necessary now that hppa64 is partially multiarch'ed.
+
+2003-08-08 Andrew Cagney <cagney@redhat.com>
+
+ * interps.c (interp_set): Check for a NULL "old_interp".
+
+2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (FLAGS_TO_PASS): Add DESTDIR.
+ (install-only): Support DESTDIR.
+ (uninstall): Likewise.
+ (install-gdbtk): Likewise.
+
+2003-08-08 Elena Zannoni <ezannoni@redhat.com>
+
+ * symtab.c (lookup_symbol_aux): Make sure that is_a_field_of_this
+ contains something meaningful at all times.
+
+Fri Aug 8 00:28:46 UTC 2003 Brendan Conoboy <blc@redhat.com>
+
+ * configure.host: Set gdb_host_cpu=arm when host_cpu=xscale.
+
+Fri Aug 8 00:28:38 UTC 2003 Brendan Conoboy <blc@redhat.com>
+
+ * MAINTAINERS (write after approval): Added self.
+
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * inferior.h (AT_SYMBOL): Define.
+ * blockframe.c (inside_entry_file): Check for AT_SYMBOL.
+ * infcall.c (call_function_by_hand): Add code to handle AT_SYMBOL.
+ * mips-tdep.c (mips_call_dummy_address): Delete function.
+ (mips_gdbarch_init): Set call_dummy_location to AT_SYMBOL, do not
+ set call_dummy_address.
+
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * language.c (op_error): Delete function.
+ (binop_type_check): Delete function.
+ * language.h (type_op_error, range_op_error): Delete macros.
+ (op_error): Delete declaration.
+
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * interps.h (INTERP_MI2, INTERP_MI3): Define.
+
+2003-08-07 Michal Ludvig <mludvig@suse.cz>
+
+ * x86-64-tdep.c (x86_64_dwarf_regmap): Correct register numbers.
+ (x86_64_push_arguments): Skip the red zone.
+
+2003-08-05 Andrew Cagney <cagney@redhat.com>
+
+ * reggroups.c (reggroup_next): Check for the final entry.
+
+2003-08-04 Andrew Cagney <cagney@redhat.com>
+
+ * monitor.h (monitor_dump_reg_block): Remove ATTR_FORMAT.
+ * cli/cli-script.c (define_command): Call query directly, instead
+ of passing it a buffer.
+ * ocd.c (ocd_error): Pass error a constant format string.
+ * remote-mips.c (mips_error): Use fputs_filtered.
+
+ * solib-svr4.c (_initialize_svr4_solib): Update
+ register_gdbarch_data call.
+ * mips-linux-tdep.c (_initialize_mips_linux_tdep): Ditto.
+
+ * gdbarch.sh (gdbarch_data_free_ftype): Delete declaration.
+ (register_gdbarch_data): Delete "free" parameter. Update
+ comments.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * reggroups.c (_initialize_reggroup): Update.
+ * gnu-v3-abi.c (init_gnuv3_ops): Update.
+ * frame-base.c (_initialize_frame_base): Update.
+ * frame-unwind.c (_initialize_frame_unwind): Update.
+ * user-regs.c (_initialize_user_regs): Update.
+ * remote.c (_initialize_remote): Update.
+ * regcache.c (_initialize_regcache): Update.
+
+ * regcache.c (xfree_regcache_descr): Delete function.
+ (_initialize_regcache): Update call to register_gdbarch_data.
+ (init_regcache_descr, init_legacy_regcache_descr): Use
+ GDBARCH_OBSTACK_XALLOC and GDBARCH_OBSTACK_CALLOC.
+
+ * remote.c (free_remote_state): Delete function.
+ (_initialize_remote): Update register_gdbarch_data.
+ (init_remote_state): Use GDBARCH_OBSTACK_XALLOC and
+ GDBARCH_OBSTACK_CALLOC instead of xmalloc / xcalloc.
+
+2003-08-04 Andrew Cagney <cagney@redhat.com>
+
+ * reggroups.c (struct reggroup_el): Define.
+ (struct reggroups): Delete field "nr_group". Replace array
+ "group" with a "first" to "last" linked list.
+ (reggroups_init): Update. Allocate using gdbarch's obstack.
+ (reggroups_free): Delete function.
+ (add_group): Update. Add "el" parameter.
+ (reggroup_add): Pass gdbarch obstack allocated space to add_group.
+ (default_groups): Update.
+ (reggroup_next): Replace reggroups.
+ (reggroups_dump): Update.
+ (_initialize_reggroup): Pass XMALLOC allocated space to add_group.
+ * regcache.c (regcache_dump): Use reggroup_next instead of reggroups.
+ * infcmd.c (registers_info): Use reggroup_next instead of reggroups.
+
+2003-08-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (tui-interp.o): Update dependencies.
+
+2003-08-04 David Carlton <carlton@kealia.com>
+
+ * charset.c (cached_iconv_convert): Add __FILE__ and __LINE__ args
+ to internal_error call.
+ * source.c (forward_search_command): Add "%s" format argument.
+ (reverse_search_command): Ditto.
+ * top.c (quit_confirm): Ditto.
+ * cli/cli-setshow.c (do_setshow_command): Ditto.
+ * cp-valprint.c (cp_print_class_method): Replace
+ {f,}printf_{un,}filtered by {f,}puts_{un,}filtered.
+ (cp_print_class_member): Ditto.
+ * event-top.c (command_line_handler): Ditto.
+ * linux-proc.c (linux_info_proc_cmd): Ditto.
+ * p-typeprint.c (pascal_type_print_base): Ditto.
+ * p-valprint.c (pascal_object_print_class_method): Ditto.
+ (pascal_object_print_class_member): Ditto.
+ * printcmd.c (print_scalar_formatted,printf_command): Ditto.
+ * remote.c (remote_cisco_section_offsets): Ditto.
+ * top.c (command_line_input): Ditto.
+ * utils.c (vwarning,error_stream,quit): Ditto.
+ * valprint.c (print_floating,print_binary_chars)
+ (print_octal_chars,print_decimal_chars,print_hex_chars): Ditto.
+
+2003-08-04 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (frame_func_unwind): Use frame_unwind_address_in_block.
+
+2003-08-02 Andrew Cagney <cagney@redhat.com>
+
+ * config/djgpp/fnchange.lst: Fix up testsuite/gdb.c++/annota3.cc,
+ gdb/testsuite/gdb.c++/annota3.exp, amd64fbsd-tdep.c and
+ amd64fbsd-nat.c.
+
+2003-08-02 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in: Update all dependencies and definitions.
+
+2003-08-02 Adam Fedor <fedor@gnu.org>
+
+ * linespec.c (is_objc_method_format): New function
+ (decode_line_1, locate_first_half): Use it.
+ Fixes PR objc/1298
+
+2003-08-01 Andrew Cagney <cagney@redhat.com>
+
+ * NEWS: Mention that m32r is multi-arch.
+ From 2003-07-28 Kei Sakamoto <sakamoto.kei@renesas.com>:
+ * configure.tgt: Recognize m32r-*-*.
+ * config/m32r/tm-m32r.h: Delete file.
+ * config/m32r/m32r.mt: New file.
+ * m32r-rom.c (m32r_upload_command): Use hostent only when
+ gethostname succeeds, in order to avoid a compilation
+ warning.
+ * m32r-tdep.c (m32r_store_return_value): Add a cast to remove a
+ compiler warning.
+
+2003-08-01 Michael Snyder <msnyder@redhat.com>
+
+ * sh-tdep.c (sh_frame_align): New gdbarch method.
+ (sh_gdbarch_init): Set up frame_align method.
+
+2003-07-31 Michael Snyder <msnyder@redhat.com>
+
+ * value.h, values.c, infcall.c, infcmd.c: Revert 07-30 change,
+ which is already covered by the new frames infrastructure.
+
+2003-07-31 Andrew Cagney <cagney@redhat.com>
+
+ * user-regs.c (struct user_reg): Add "next" link.
+ (struct user_regs): Replace "user" with "first" and "last" links.
+ (append_user_reg): Add pre-allocated "reg" parameter.
+ (builtin_user_regs): Provide initial value for "last".
+ (user_reg_add_builtin): XMALLOC memory for append_user_reg.
+ (user_regs_init): Allocate memory from the gdbarch obstack.
+ (user_reg_add): GDBARCH_OBSTACK_ZALLOC memory for append_user_reg.
+ (user_reg_map_name_to_regnum): Rewrite to search the user_reg
+ linked list.
+ (usernum_to_user_reg): New function.
+ (user_reg_map_regnum_to_name): Use usernum_to_user_reg.
+ (value_of_user_reg): Use usernum_to_user_reg.
+ (user_regs_free): Delete function.
+ (_initialize_user_regs): Update register_gdbarch_data call.
+
+2003-07-31 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2read.c (new_symbol): Use var_decode_location for parameters.
+
+2003-07-30 Michael Snyder <msnyder@redhat.com>
+
+ * value.h (value_being_returned): Add a struct_addr argument.
+ * infcall.c (call_function_by_hand): Pass struct_addr to
+ value_being_returned.
+ * infcmd.c (print_return_value): Pass zero as struct_addr.
+ * values.c (value_being_returned): If struct_addr is passed,
+ use it instead of trying to recover it from the inferior.
+
+2003-07-30 Kevin Buettner <kevinb@redhat.com>
+
+ * mn10300-tdep.c (analyze_dummy_frame): Pass ``pc'' so that
+ the prologue analyzer won't need to attempt to extract the pc
+ value from the woefully incomplete dummy frame.
+ (mn10300_analyze_prologue): Avoid calls to get_frame_pc() when
+ possible. Disable code which modifies the frame.
+
+2003-07-28 Andrew Cagney <cagney@redhat.com>
+
+ * annotate.c (annotate_breakpoints_headers): Restrict annotation
+ to level 2.
+ (annotate_breakpoints_table, annotate_record): Ditto.
+ (annotate_breakpoints_table_end, annotate_field_begin): Ditto.
+ (annotate_field_name_end, annotate_field_value): Ditto.
+ (annotate_field_end, annotate_frame_source_begin): Ditto.
+ (annotate_frame_source_file, annotate_frame_source_file_end): Ditto.
+ (annotate_frame_source_line, annotate_frame_source_end): Ditto.
+ (annotate_frame_begin, annotate_frame_function_name): Ditto.
+ (annotate_frame_address_end, annotate_frame_address): Ditto.
+ (annotate_frame_args, annotate_frame_end): Ditto.
+ (annotate_frame_where, annotate_arg_begin): Ditto.
+ (annotate_arg_name_end, annotate_arg_value): Ditto.
+ (annotate_arg_end, annotate_signal_handler_caller): Ditto.
+ (annotate_function_call, annotate_signal_name): Ditto.
+ (annotate_signal_string, annotate_signal_name_end): Ditto.
+ (annotate_signal_string_end, annotate_value_history_begin): Ditto.
+ (annotate_value_begin, annotate_value_history_value): Ditto.
+ (annotate_value_history_end, annotate_value_end): Ditto.
+ (annotate_display_begin, annotate_display_number_end): Ditto.
+ (annotate_display_format, annotate_display_expression): Ditto.
+ (annotate_display_expression_end, annotate_display_value): Ditto.
+ (annotate_display_end, annotate_array_section_begin): Ditto.
+ (annotate_elt_rep, annotate_elt_rep_end): Ditto.
+ (annotate_elt, annotate_array_section_end): Ditto.
+
+2003-07-28 Andrew Cagney <cagney@redhat.com>
+
+ * regcache.c (struct regcache_descr): Update comments on
+ nr_raw_registers.
+ (init_legacy_regcache_descr): Don't set nr_raw_registers or
+ sizeof_raw_register_valid_p.
+ (init_regcache_descr): Set nr_raw_registers and
+ sizeof_raw_register_valid_p before calling
+ init_legacy_regcache_descr.
+
+2003-07-28 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (print_gp_register_row): Print the GPR's register
+ MOD NUM_REGS.
+
+2003-07-28 Daniel Jacobowitz <drow@mvista.com>
+
+ * thread.c (info_threads_command): Use get_selected_frame ().
+ Check that there is at least one non-sentinel frame.
+
+2003-07-27 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (struct frame_extra_info): Remove.
+ (m68hc11_pop_frame): Remove.
+ (m68hc11_frame_saved_pc): Remove.
+ (m68hc11_frame_chain): Remove.
+ (m68hc11_frame_init_saved_regs): Remove.
+ (m68hc11_init_extra_frame_info): Remove.
+ (m68hc11_store_struct_return): Remove.
+ (m68hc11_saved_pc_after_call): Remove.
+
+2003-07-27 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (struct m68hc11_unwind_cache): New struct to hold
+ frame unwind information.
+ (m68hc11_scan_prologue): New function from m68hc11_guess_from_prologue
+ and adapted for frame unwinding.
+ (m68hc11_skip_prologue): Update to scan prologue in temporary object.
+ (m68hc11_unwind_pc): New function.
+ (m68hc11_frame_unwind_cache): New function to analyze frames.
+ (m68hc11_frame_this_id): New function to create new frame struct.
+ (m68hc11_frame_prev_register): New function to unwind a register from
+ the frame.
+ (m68hc11_frame_unwind): Default 68hc11/68hc12 unwinder.
+ (m68hc11_frame_p): New function for the above.
+ (m68hc11_frame_base_address): New function to return fp of frame.
+ (m68hc11_frame_args_address): Update for frame.
+ (m68hc11_frame_base): Default 68hc11/68hc12 frame.
+ (m68hc11_unwind_sp): New function.
+ (m68hc11_unwind_dummy_id): New function.
+ (m68hc11_gdbarch_init): Install the above frames; remove deprecated
+ calls.
+
+2003-07-27 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (m68hc11_analyze_instruction): Don't advance the pc.
+ (m68hc11_guess_from_prologue): Advance the pc and frame size only
+ when we are beyond the current pc.
+
+2003-07-27 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (m68hc11_push_dummy_call): New function adapted
+ from m68hc11_push_arguments.
+ (m68hc11_push_arguments): Remove.
+ (m68hc11_push_return_address): Remove.
+ (m68hc11_gdbarch_init): Install the above; remove above deprecated
+ handlers; remove deprecated_extra_stack_alignment_needed.
+
+2003-07-27 Andrew Cagney <cagney@redhat.com>
+
+ * config/pa/tm-hppa.h (init_frame_pc_default): Declare.
+ * infcall.c (legacy_push_dummy_code) [GDB_TARGET_IS_HPPA]: Update
+ REAL_PC and not the pointer.
+ * hppa-hpux-tdep.c: Include frame.h
+
+2003-07-27 Andrew Cagney <cagney@redhat.com>
+
+ * config/pa/tm-hppa64.h (GDB_MULTI_ARCH): Set to
+ GDB_MULTI_ACH_PARTIAL.
+
+2003-07-27 Andrew Cagney <cagney@redhat.com>
+
+ Patch from 2003-07-22 Kei Sakamoto <sakamoto.kei@renesas.com>:
+ * m32r-tdep.c (m32r_memory_insert_breakpoint): Fix code style -
+ operator at start and not end of line.
+ (decode_prologue): Ditto.
+ (m32r_frame_unwind_cache, m32r_unwind_sp, m32r_unwind_pc): Use
+ frame_unwind_register_unsigned instead of
+ frame_unwind_unsigned_register.
+ (m32r_read_pc): Use regcache_cooked_read_unsigned instead of
+ read_register.
+ (m32r_push_dummy_call): Use register_size instead of
+ REGISTER_RAW_SIZE.
+ (m32r_frame_sniffer): Replace m32r_frame_p.
+ (m32r_gdbarch_init): Call frame_unwind_append_sniffer.
+ * m32r-rom.c (report_transfer_performance): Delete extern
+ declaration.
+ (m32r_load, m32r_upload_command): Use print_transfer_performance
+ instead of report_transfer_performance.
+ (_initialize_m32r_rom): Use add_setshow_cmd instead of add_set_cmd
+ / add_show_from_set.
+
+2003-07-26 Andrew Cagney <cagney@redhat.com>
+
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Set non-deprecated
+ store_return_value and extract_struct_value_address.
+
+2003-07-26 Daniel Jacobowitz <drow@mvista.com>
+
+ PR c++/1267
+ * minsyms.c (lookup_minimal_symbol_by_pc_section): If SECTION is
+ NULL, default to the section containing PC.
+
+2003-07-24 Stephane Carrez <stcarrez@nerim.fr>
+
+ * NEWS: Mention "regs" deprecated for m68hc11 too.
+
+ * m68hc11-tdep.c (_initialize_m68hc11_tdep): Deprecate "regs" command.
+ (m68hc11_print_register): New function to print out one register.
+ (m68hc11_print_registers_info): New function to print registers.
+ (show_regs): Deprecate and use the above.
+ (m68hc11_gdbarch_init): Install the print_registers_info.
+
+2003-07-24 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-linux-nat.c (ia64_linux_stopped_by_watchpoint): Verify
+ that we have a SIGTRAP before returning non-zero.
+
+2003-07-23 Michal Ludvig <mludvig@suse.cz>
+ Elena Zannoni <ezannoni@redhat.com>
+
+ * linespec.c (decode_line_2): Avoid crash if
+ find_function_start_sal() returns empty record.
+
+2003-07-23 Andreas Schwab <schwab@suse.de>
+
+ * ia64-tdep.c (ia64_print_insn): New function.
+ (ia64_gdbarch_init): Set print_insn to it.
+ (_initialize_ia64_tdep): Don't set deprecated_tm_print_insn and
+ deprecated_tm_print_insn_info.
+
+2003-07-22 Michael Snyder <msnyder@redhat.com>
+
+ * h8300-tdep.c (h8300_extract_return_value): Teach it how to
+ handle 8-bit returns (long long).
+ (h8300h_extract_return_value): Ditto.
+ (h8300_gdbarch_init): Long long is 8 bytes, char is unsigned.
+
+2003-07-22 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.c Include "gdb_obstack.h".
+ (struct gdbarch): Add an "obstack".
+ (alloc_gdbarch_data): Allocate the gdbarch data using
+ GDBARCH_OBSTACK_CALLOC.
+ (free_gdbarch_data): Delete function.
+ (gdbarch_obstack_zalloc): New function.
+ (gdbarch_free): Free the obstack, do not call free_gdbarch_data.
+ Assert that the architecture is not initialized.
+ (gdbarch_alloc): Allocate an obstack, allocate the architecture
+ vector from the obstack.
+ (alloc_gdbarch_data, init_gdbarch_swap): Allocate memory using the
+ architecture obstack.
+ (GDBARCH_OBSTACK_CALLOC, GDBARCH_OBSTACK_ZALLOC): Define.
+ (set_gdbarch_data): Assert that the data is not initialized.
+ (struct gdbarch_data): Delete member "free".
+ (register_gdbarch_data): Do not initialize "free".
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+2003-07-22 Andrew Cagney <cagney@redhat.com>
+
+ * configure.in (build_warnings): Add -Wformat-nonliteral.
+ * configure: Re-generate.
+
+2003-07-22 Elena Zannoni <ezannoni@redhat.com>
+
+ * dwarf2loc.c (locexpr_describe_location): Fix typos.
+
+2003-07-22 Elena Zannoni <ezannoni@redhat.com>
+
+ * findvar.c (read_var_value): Remove case for thread local storage
+ variables. It is now entirely handled by the dwarf2 location
+ expression code.
+ * printcmd.c (address_info): Ditto.
+ * symtab.h (address_class): Remove LOC_THREAD_LOCAL_STATIC
+ enumeration value.
+ (struct symbol): Remove objfile field, which was used by
+ LOC_THREAD_LOCAL_STATIC only.
+ * dwarf2read.c (decode_locdesc): Remove is_thread_local variable.
+ * dwarf2loc.h (struct dwarf2_loclist_baton): Add comment about
+ usage of objfile pointer.
+ * dwarf2loc.c (locexpr_describe_location): Add case to handle
+ thread local variables.
+ Add include of objfiles.h.
+ * dwarf2expr.c (execute_stack_op): Add comments about thread local
+ storage variables.
+ * Makefile.in (dwarf2loc.o): Update dependencies.
+
+2003-07-22 Andrew Cagney <cagney@redhat.com>
+
+ * config/pa/tm-hppa64.h (FRAME_SAVED_PC_IN_SIGTRAMP): Use
+ get_frame_base.
+ (FRAME_BASE_BEFORE_SIGTRAMP): Ditto.
+ (FRAME_FIND_SAVED_REGS_IN_SIGTRAMP): Ditto.
+ (struct value): Add opaque declaration.
+ (DEPRECATED_FRAME_ARGS_ADDRESS): Delete.
+
+2003-07-21 Andrew Cagney <cagney@redhat.com>
+
+ From 2003-07-04 Kei Sakamoto <sakamoto.kei@renesas.com>:
+ * m32r-tdep.c, m32r-stub.c, m32r-tdep.c: Rewrite.
+
+2003-07-20 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (m68hc11_pseudo_register_read): Use
+ regcache_cooked_read_unsigned instead of read_register.
+ (m68hc11_saved_pc_after_call): Likewise.
+ (m68hc11_pseudo_register_write): Use regcache_cooked_write_unsigned
+ instead of write_register.
+ (m68hc11_register_type): New function.
+ (m68hc11_register_virtual_type): Remove.
+ (m68hc11_store_return_value): Convert to use the regcache.
+ (m68hc11_extract_struct_value_address): Likewise.
+ (m68hc11_gdbarch_init): Remove deprecated ops for register to use
+ m68hc11_register_type; undeprecate store_return_value and
+ extract_struct_value_address.
+
+2003-07-20 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (m68hc11_extract_return_value): Use regcache_raw_read
+ and translate to use regcache.
+ (m68hc11_gdbarch_init): Undeprecate extract_return_value.
+
+2003-07-18 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DWARF2_BUILD_FRAME_INFO): Delete method.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * i386-tdep.c (i386_gdbarch_init): Do not set
+ DWARF2_BUILD_FRAME_INFO.
+ * elfread.c (elf_symfile_read): Call dwarf2_build_frame_info
+ unconditionally.
+ * alpha-tdep.c (alpha_dwarf2_init_abi): Do not set
+ DWARF2_BUILD_FRAME_INFO.
+
+2003-07-18 Andrew Cagney <cagney@redhat.com>
+
+ From 2003-07-04 Kei Sakamoto <sakamoto.kei@renesas.com>:
+ * disasm.c (gdb_disassemble_info): Initilize di.arch.
+
+2003-07-18 Andrew Cagney <cagney@redhat.com>
+
+ * dwarf2-frame.c (dwarf2_frame_sniffer): Use
+ frame_unwind_address_in_block, instead of frame_pc_unwind.
+ (dwarf2_frame_cache): Ditto.
+
+2003-07-18 Andrew Cagney <cagney@redhat.com>
+
+ * user-regs.h (struct gdbarch): Declare opaque.
+ * ui-out.h (struct ui_file): Declare opaque.
+ * dwarf2-frame.h (struct frame_info): Declare opaque.
+
+2003-07-18 Kris Warkentin <kewarken@qnx.com>
+
+ * nto-procfs.c: Clean ARI hits. Change #include <..> to
+ #include "...".
+ (procfs_meminfo): Change strerror to safe_strerror.
+ (procfs_can_run): Remove K&R badness.
+
+2003-07-17 Michael Snyder <msnyder@redhat.com>
+
+ * remote-sim.c: Comment typo fix.
+
+2003-07-17 Andrew Cagney <cagney@redhat.com>
+
+ * defs.h (GDB_MULTI_ARCH): Delete conditional define. Handled by
+ configure.
+ * sparc-tdep.c (sparc_intreg_size): Make non-static.
+ * config/sparc/tm-sparc.h (GDB_MULTI_ARCH): Define to
+ GDB_MULTI_ARCH_PARTIAL.
+
+2003-07-17 Elena Zannoni <ezannoni@redhat.com>
+
+ * Makefile.in (x86-64-linux-nat.o): Update dependencies.
+ * x86-64-linux-nat.c (ps_get_thread_area): New function. Add
+ include of asm/prctl.h, asm/ptrace.h, and gdb_proc_service.h.
+
+2003-07-16 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_skip_prologue): Return PC unchanged if no prologue
+ found.
+ (avr_frame_unwind_cache): Don't unwind FP for main.
+ Update a comment.
+ Save the computed prev_sp.
+ (avr_saved_regs_unwinder): Remove function.
+ (avr_frame_prev_register): Use PC unwind logic from
+ avr_saved_regs_unwinder(), otherwise use trad_frame_prev_register().
+
+2003-07-16 Andrew Cagney <cagney@redhat.com>
+
+ * frame-base.h (frame_base_p_ftype): Delete definition.
+ (frame_base_append_predicate): Delete declaration.
+ * frame-unwind.h (frame_unwind_p_ftype): Delete definition.
+ (frame_unwind_append_predicate): Delete declaration.
+ * frame-unwind.c (struct frame_unwind_table): Delete field "p".
+ (append_predicate): Delete parameter "p".
+ (frame_unwind_append_predicate): Delete function.
+ (frame_unwind_append_sniffer): Update call to append_predicate.
+ (frame_unwind_free): Delete function.
+ (_initialize_frame_unwind): Pass NULL as "free" to
+ register_gdbarch_data.
+ (frame_unwind_init): Append the dummy_frame_sniffer.
+ (frame_unwind_find_by_frame): Simplify.
+ * frame-base.c (struct frame_base_table): Delete field "p".
+ (append_predicate): Delete parameter "p".
+ (frame_base_append_predicate): Delete function.
+ (frame_base_append_sniffer): Update call to append_predicate.
+ (frame_base_free): Delete function.
+ (frame_base_find_by_frame): Simplify.
+ (_initialize_frame_base): Pass NULL as "free" to
+ register_gdbarch_data.
+ * x86-64-tdep.c (x86_64_frame_sniffer): Replace "x86_64_frame_p".
+ (x86_64_sigtramp_frame_sniffer): Replace
+ "x86_64_sigtramp_frame_p".
+ (x86_64_init_abi): Set the frame unwind sniffers.
+ * m68k-tdep.c (m68k_frame_sniffer): Replace "m68k_frame_p".
+ (m68k_sigtramp_frame_sniffer): Replace "m68k_sigtramp_frame_p"
+ (m68k_gdbarch_init): Set the frame unwind sniffers.
+ * i386-tdep.c (i386_sigtramp_frame_sniffer): Replace
+ "i386_sigtramp_frame_p".
+ (i386_frame_sniffer): Replace "i386_frame_p".
+ (i386_gdbarch_init): Set the frame unwind sniffers.
+ * avr-tdep.c (avr_frame_sniffer): Replace "avr_frame_sniffer".
+ (avr_gdbarch_init): Set the frame unwind sniffers.
+ * alpha-tdep.c (alpha_sigtramp_frame_sniffer): Replace
+ "alpha_sigtramp_frame_p"
+ (alpha_heuristic_frame_sniffer): Replace
+ "alpha_heuristic_frame_p".
+ (alpha_gdbarch_init): Set the frame unwind sniffers.
+ (alpha_dwarf2_init_abi): Ditto.
+ * alpha-mdebug-tdep.c (alpha_mdebug_frame_sniffer): Replace
+ "alpha_debug_frame_p".
+ (alpha_mdebug_frame_base_sniffer): Replace
+ "alpha_mdebug_frame_base_p".
+ (alpha_mdebug_init_abi): Set the frame unwind sniffers.
+ * d10v-tdep.c (d10v_frame_sniffer): Replace "d10v_frame_p".
+ (d10v_gdbarch_init): Set the frame unwind sniffer.
+ * dwarf2-frame.c (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
+ (dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p".
+ * dwarf2-frame.h (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
+ (dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p".
+ * dummy-frame.c (dummy_frame_sniffer): Replace "dummy_frame_p".
+ * dummy-frame.h (dummy_frame_sniffer): Replace "dummy_frame_p".
+
+2003-07-16 Michael Snyder <msnyder@redhat.com>
+
+ * sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp
+ should go thru sh_dsp_register_sim_regno, else the dsp regs
+ will not get the right values.
+
+2003-07-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to
+ deprecated_store_floating by call to store_typed_floating.
+ (sh_sh4_register_convert_to_raw): Substitute call to
+ deprecated_extract_floating by call to extract_typed_floating.
+
+2003-07-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e.
+
+2003-07-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to
+ register_size and calls to REGISTER_VIRTUAL_TYPE by calls to
+ gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch
+ as possible.
+ (do_pseudo_register): Remove.
+ (sh_push_dummy_code): New function.
+ (sh64_store_struct_return): Rename from sh_store_struct_return.
+ Only called for sh64 now.
+ (sh_extract_struct_value_address): Regcache'ify.
+ (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify
+ and accomodate new tasks.
+ (sh64_push_return_address): Rename from sh_push_return_address.
+ Only called for sh64 now.
+ (sh_default_extract_return_value): Rename from sh_extract_return_value.
+ Regcache'ify.
+ (sh3e_sh4_extract_return_value): Regcache'ify.
+ (sh_default_store_return_value): Ditto.
+ (sh3e_sh4_store_return_value): Ditto.
+ (sh_default_register_byte): Remove.
+ (sh_sh4_register_byte): Remove.
+ (sh_default_register_raw_size): Remove.
+ (sh_sh4_register_raw_size): Remove.
+ (sh_register_virtual_size): Remove.
+ (sh_sh3e_register_virtual_type): Remove.
+ (sh_sh3e_register_type): New function.
+ (sh_sh4_register_virtual_type): Remove.
+ (sh_sh4_register_type): New function.
+ (sh_default_register_virtual_type): Remove.
+ (sh_default_register_type): New function.
+ (do_fv_register_info): Add parameters to accomodate call from
+ sh_print_registers_info.
+ (do_dr_register_info): Ditto.
+ (sh_print_pseudo_register): Rename from sh_do_pseudo_register.
+ Add parameters to accomodate call from sh_print_registers_info.
+ (sh_do_fp_register): Ditto.
+ (sh64_do_pseudo_register): Call do_dr_register_info,
+ do_fv_register_info and sh_do_fp_register with default parameters.
+ (sh_do_register): Add parameters to accomodate call from
+ sh_print_registers_info.
+ (sh_print_register): Ditto.
+ (sh_print_registers_info): Rename from sh_do_registers_info.
+ Add parameters to be used as gdbarch_print_registers_info
+ implementation. Accomodate removed do_pseudo_register function
+ pointer.
+ (sh_compact_do_registers_info): Accomodate removed do_pseudo_register
+ function pointer. Call sh_print_register with default parameters.
+ (sh64_do_registers_info): Call sh_print_registers_info instead of
+ sh_do_registers_info.
+ (sh_gdbarch_init): Rearrange to cleanup and to allow easier
+ detection of deprecated vs. non-deprecated functionality.
+ Rename sh_call_dummy_words to sh64_call_dummy_words. Remove
+ function pointer assignments by direct function calls.
+
+2003-07-15 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_frame_id): Use frame_unwind_find_by_frame.
+ (frame_register_unwind, create_new_frame): Ditto.
+ (legacy_get_prev_frame, get_frame_type): Ditto.
+ (get_frame_base_address): Use frame_base_find_by_frame.
+ (get_frame_locals_address): Use frame_base_find_by_frame.
+ (get_frame_args_address): Use frame_base_find_by_frame.
+ * frame-base.h (frame_base_sniffer_ftype): Declare.
+ (frame_base_append_sniffer): Declare.
+ (frame_base_find_by_frame): Replace frame_base_find_by_pc.
+ * frame-base.c (append_predicate): Add a "sniffer" parameter.
+ (frame_base_append_sniffer): New function.
+ (frame_base_append_predicate): Add a NULL sniffer.
+ (frame_base_find_by_frame): Replace "frame_base_find_by_pc".
+ (struct frame_base_table): Add "sniffer".
+ (frame_base_free): Free the "sniffer" table.
+ * frame-unwind.h (frame_unwind_sniffer_ftype): Define.
+ (frame_unwind_append_sniffer): Declare.
+ (frame_unwind_find_by_frame): Replace frame_unwind_find_by_pc.
+ * frame-unwind.c (frame_unwind_free): Free the "sniffer" table.
+ (struct frame_unwind_table): Add "sniffer", delete "middle".
+ (append_predicate): Add "sniffer" parameter, append the sniffer.
+ (frame_unwind_init): Update append_predicate call.
+ (frame_unwind_append_sniffer): New function.
+ (frame_unwind_append_predicate): Update append_predicate call.
+ (frame_unwind_find_by_frame): Replace frame_unwind_find_by_pc.
+
+2003-07-15 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_prev_frame): Move disabled inside_entry_func to
+ before code inhibiting repeated unwind attempts. Add to
+ commentary on that test's problems.
+ * blockframe.c (inside_main_func): Look for "main" in the minimal
+ symbol table.
+ * d10v-tdep.c (d10v_frame_this_id): Delete check that frames are
+ identical.
+
+2003-07-15 Andrew Cagney <cagney@redhat.com>
+
+ * complaints.c (struct explanation): Define.
+ (struct complaints): Change type of "explanation" to "struct
+ explanation".
+ (symfile_explanations): Convert to a "struct explanation" table.
+ (vcomplaint): Update.
+
+2003-07-15 Michal Ludvig <mludvig@suse.cz>
+
+ * x86-64-linux-nat.c (regmap): Removed.
+ (supply_gregset, fill_gregset): Call
+ x86_64_linux_(fill,supply)_gregset functions.
+ * x86-64-linux-tdep.c (USER_*): New defines.
+ (user_to_gdb_regmap, x86_64_core_fns): New structure.
+ (x86_64_linux_supply_gregset, x86_64_linux_fill_gregset):
+ New functions.
+ (fetch_core_registers): Ditto.
+ (_initialize_x86_64_linux_tdep): Call add_core_fns().
+ * x86-64-linux-tdep.h: New file.
+ * config/i386/x86-64linux.mh (NATDEPFILES): Remove corelow.o
+ and core-regset.o.
+ * config/i386/x86-64linux.mt (TDEPFILES): Add corelow.o.
+
+2003-07-13 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (x86_64_store_return_value): Use
+ regcache_cooked_write_part instead of regcache_cooked_write.
+
+ * configure.host: Add x86_64-*-freebsd*.
+ * configure.tgt: Add x86_64-*-freebsd*.
+ * Makefile.in (amd64fbsd-nat.o, amd64fbsd-tdep.o): New targets.
+ * amd64fbsd-nat.c: New file.
+ * amd64fbsd-tdep.c: New file.
+ * config/i386/nm-fbsd64.h: New file.
+ * config/i386/fbsd64.mh: New file.
+ * config/i386/fbsd64.mt: New file.
+
+2003-07-11 Mark Kettenis <kettenis@gnu.org>
+
+ * alpha-tdep.h (struct gdbarch_tdep): Add members `sc_pc_offset',
+ `sc_regs_offset' and `sc_fpregs_offset'.
+ * alpha-tdep.c (SIGFRAME_PC_OFF, SIGFRAME_REGSAVE_OFF,
+ SIGFRAME_FPREGSAVE_OFF): Remove defines.
+ (alpha_sigtramp_register_address): Rewrite to use new members of
+ `struct gdbarch_tdep'.
+ (alpha_gdbarch_init): Initialize new members of struct
+ gdbarch_tdep'.
+ * alphafbsd-tdep.c (alphafbsd_use_struct_convention): Use
+ ALPHA_REGISTER_SIZE instead of DEPRECATED_REGISTER_SIZE.
+ (alphafbsd_sigtramp_start, alphafbsd_sigtramp_end): Nre variables.
+ (alphafbsd_pc_in_sigtramp): Implement.
+ (alphafbsd_sigtramp_offset): New function.
+ (alphafbsd_sigcontext_addr): New function.
+ (alphafbsd_init_abi): Initialize signal trampoline related members
+ of `struct gdbarch_tdep'.
+ (_initialize_alphafbsd_tdep): Add prototype.
+
+2003-07-11 Theodore A. Roth <troth@openavr.org>
+
+ * Makefile.in (install-only): Quote sed expression when generating
+ transformed_name.
+
+2003-07-11 Richard Henderson <rth@redhat.com>
+
+ * Makefile.in (dwarf2-frame.o): Add complaints_h.
+ * dwarf2-frame.c: Include complaints.h.
+ (decode_frame_entry_1): Rename from decode_frame_entry; tidy
+ variable initialization; return NULL on error.
+ (decode_frame_entry): New.
+
+2003-07-11 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h (frame_address_in_block): Delete declaration.
+ * blockframe.c (frame_address_in_block): Delete function.
+ (get_frame_block): Use get_frame_address_in_block.
+ (block_innermost_frame): Ditto.
+ * stack.c (print_frame, backtrace_command_1): Ditto.
+
+ * frame.h (get_frame_address_in_block): Declare.
+ (frame_unwind_address_in_block): Declare.
+ * frame.c (frame_unwind_address_in_block): New function.
+ (get_frame_address_in_block): New function.
+
+2003-07-10 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Simplify predicate methods. Remove need to provide
+ pre-default. Note: re-generate has no effect.
+
+2003-07-10 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: When a variable, but not a function, compare against
+ 0. Fix problem in previous patch.
+ * gdbarch.c: Re-generate.
+
+2003-07-10 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Use gdb_assert instead of internal_error. Compare
+ functions against NULL, not 0.
+ * gdbarch.c: Re-generate.
+
+2003-07-10 Fred Fish <fnf@ninemoons.com>
+
+ * coff-solib.h (SOLIB_LOADED_LIBRARY_PATHNAME): Default to a
+ null string instead of a null pointer.
+ * solib.h (SOLIB_LOADED_LIBRARY_PATHNAME): Ditto.
+
+2003-07-09 Michael Snyder <msnyder@redhat.com>
+
+ * sh-tdep.c (sh_dsp_register_sim_regno): Off-by-one error.
+
+2003-07-09 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.h (X86_64_RAX_REGNUM, X86_64_RDX_REGNUM,
+ X86_64_RDI_REGNUM, X86_64_RBP_REGNUM, X86_64_RSP_REGNUM,
+ X86_64_RIP_REGNUM, X86_64_EFLAGS_REGNUM, X86_64_ST0_REGNUM,
+ X86_64_XMM0_REGNUM, X86_64_XMM1_REGNUM): Moved here ...
+ * x86-64-tdep.c: ... from here.
+
+2003-07-09 Andreas Schwab <schwab@suse.de>
+
+ * m68k-tdep.h (enum struct_return): Define.
+ (struct gdbarch_tdep): Add struct_return.
+ * m68k-tdep.c (m68k_push_dummy_call): Non-scalars bigger than 4
+ bytes are padded to the right, not to the left. Pass struct value
+ address in register %a1, not on stack.
+ (m68k_use_struct_convention): New function.
+ (m68k_gdbarch_init): Set use_struct_convention. Initialize
+ struct_return in tdep to pcc_struct_return.
+ * m68klinux-tdep.c (m68k_linux_init_abi): Set struct_return to
+ reg_struct_return.
+
+2003-07-09 Joel Brobecker <brobecker@gnat.com>
+
+ * somread.c (som_symfile_offsets): Fix compilation error.
+
+2003-07-09 Andrew Cagney <cagney@redhat.com>
+
+ * regcache.c (register_size): Only check REGISTER_RAW_SIZE once.
+ Add comments about the checks.
+
+2003-07-08 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in: Make dependency section headers consistent.
+ (config_h): Move to $BUILD headers section.
+ (exc_request_U_h, exc_request_S_h, msg_reply_S_h): Ditto.
+ (msg_U_h, notify_S_h, process_reply_S_h): Ditto.
+ (ada-exp.tab.c): Move to YACC/LEX section.
+ (ada-lex.c, c-exp.tab.c, f-exp.tab.c): Ditto.
+ (jv-exp.tab.c, m2-exp.tab.c, objc-exp.tab.c, p-exp.tab.c): Ditto.
+
+2003-07-08 Kris Warkentin <kewarken@qnx.com>
+
+ * nto-procfs.c: Cleaned up a bunch of ARI hits.
+ Include "gdb_dirent.h" instead of <dirent.h>, replace all instances
+ of strerror with safe_strerror, use ISO C function definitions,
+ and replace instances of sprintf with snprintf.
+
+2003-07-07 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_prev_frame): Enable check for identical frames.
+ Update comments. Update error messages.
+
+2003-07-07 Joel Brobecker <brobecker@gnat.com>
+
+ * hpread.c (hpread_psymtab_to_symtab_1): Fix compilation failure.
+
+2003-07-07 Joel Brobecker <brobecker@gnat.com>
+
+ * xcoffread.c (xcoff_psymtab_to_symtab_1): Remove call to
+ sort_symtab_syms, no longer necessary.
+
+2003-07-07 Joel Brobecker <brobecker@gnat.com>
+
+ * config/mips/tm-irix6.h (MIPS_REGISTER_TYPE): Add comment.
+
+2003-07-07 Joel Brobecker <brobecker@gnat.com>
+
+ * mips-tdep.c (mips_register_raw_size): Fix compilation failure.
+ (mips_register_byte): Likewise.
+
+2003-07-07 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (sparc_tdep_h): New.
+ (sparc-linux-nat.o, sparc-nat.o, sparc-tdep.o, sparc64nbsd-nat.o)
+ (sparcnbsd-nat.o, sparcnbsd-tdep.o): Depend on $(sparc_tdep_h).
+ * sparc-linux-nat.c: Include "sparc-tdep.h".
+ * sparc-nat.c: Likewise.
+ * sparc-tdep.c: Likewise.
+ * sparc64nbsd-nat.c: Likewise.
+ * sparcnbsd-nat.c: Likewise.
+ * sparcnbsd-tdep.c: Likewise.
+ * sparc-tdep.h: New file.
+ * config/sparc/tm-sparc.h: Remove prototypes for sparc_y_regnum
+ and sparc_npc_regnum.
+
+2003-07-07 Daniel Jacobowitz <drow@mvista.com>
+
+ * mips-linux-nat.c (mips_linux_cannot_fetch_register)
+ (mips_linux_cannot_store_register): List supported instead of
+ unsupported registers.
+
+2003-07-07 Daniel Jacobowitz <drow@mvista.com>
+
+ * disasm.c (dump_insns): Separate instructions from addresses.
+
+2003-07-07 Andreas Schwab <schwab@suse.de>
+
+ * Makefile.in (m68k-tdep.o, m68klinux-tdep.o): Update
+ dependencies.
+ * m68k-tdep.c (NUM_FREGS): Delete.
+ (SIG_PC_FP_OFFSET): Delete.
+ (TARGET_M68K): Delete.
+ (P_MOVEAL_SP_FP, P_ADDAW_SP, P_ADDAL_SP, P_SUBQW_SP,
+ P_SUBQL_SP, P_LEA_SP_SP, P_LEA_PC_A5, P_FMOVEMX_SP,
+ P_MOVEL_SP, P_MOVEML_SP): Define.
+ (P_MOVL_SP_FP, P_MOVL, P_JSR, P_BSR, P_LEAL, P_MOVML, P_FMOVM,
+ P_TRAP): Delete.
+ (m68k_register_raw_size): Delete.
+ (m68k_register_virtual_size): Delete.
+ (m68k_register_type): Renamed from m68k_register_virtual_type and
+ add gdbarch argument.
+ (m68k_store_struct_return): Delete.
+ (m68k_deprecated_extract_return_value): Delete.
+ (m68k_deprecated_extract_struct_value_address): Delete.
+ (m68k_frame_chain): Delete.
+ (m68k_frame_saved_pc): Delete.
+ (m68k_fix_call_dummy): Delete.
+ (m68k_push_dummy_frame): Delete.
+ (m68k_pop_frame): Delete.
+ (m68k_extract_return_value): New function.
+ (m68k_store_return_value): Rewrite using regcache.
+ (m68k_extract_struct_value_address): Rewrite using regcache.
+ (m68k_push_dummy_call): New function.
+ (struct m68k_frame_cache): Define.
+ (m68k_alloc_frame_cache): New function.
+ (m68k_analyze_frame_setup): New function.
+ (m68k_analyze_register_saves): New function.
+ (m68k_analyze_prologue): New function.
+ (m68k_skip_prologue): Rewrite using above functions.
+ (m68k_unwind_pc): New function.
+ (m68k_frame_cache): New function.
+ (m68k_frame_this_id): New function.
+ (m68k_frame_prev_register): New function.
+ (m68k_frame_unwind): New variable.
+ (m68k_frame_p): New function.
+ (m68k_sigtramp_frame_cache): New function.
+ (m68k_sigtramp_frame_this_id): New function.
+ (m68k_sigtramp_frame_prev_register): New function.
+ (m68k_sigtramp_frame_unwind): New variable.
+ (m68k_sigtramp_frame_p): New function.
+ (m68k_frame_base_address): New function.
+ (m68k_frame_base): New function.
+ (m68k_unwind_dummy_id): New function.
+ (fill_gregset): Use regcache_collect.
+ (fill_fpregset): Likewise.
+ (m68k_saved_pc_after_call): Only define if SYSCALL_TRAP is
+ defined.
+ (m68k_gdbarch_init): Don't define call_dummy_words. Don't set
+ deprecated_init_frame_pc, deprecated_store_struct_return,
+ deprecated_extract_return_value, deprecated_store_return_value,
+ deprecated_frame_chain, deprecated_frame_saved_pc,
+ deprecated_frame_init_saved_regs, deprecated_register_raw_size,
+ deprecated_register_virtual_size,
+ deprecated_max_register_raw_size,
+ deprecated_max_register_virtual_size,
+ deprecated_register_virtual_type, deprecated_register_size,
+ deprecated_register_byte, deprecated_register_bytes,
+ deprecated_fp_regnum, deprecated_use_generic_dummy_frames,
+ call_dummy_location, deprecated_call_dummy_breakpoint_offset,
+ deprecated_pc_in_call_dummy, deprecated_call_dummy_length,
+ deprecated_call_dummy_start_offset, deprecated_call_dummy_words,
+ deprecated_sizeof_call_dummy_words, deprecated_fix_call_dummy,
+ deprecated_push_dummy_frame, deprecated_pop_frame,
+ deprecated_dummy_write_sp. Set deprecated_saved_pc_after_call
+ only if SYSCALL_TRAP is defined. Set extract_return_value,
+ store_return_value, extract_struct_value_address, register_type,
+ push_dummy_call, unwind_dummy_id, unwind_pc. Add two frame unwind
+ predicates.
+ * m68k-tdep.h (M68K_D1_REGNUM, M68K_NUM_REGS,
+ M68K_MAX_REGISTER_SIZE): Define.
+ (struct m68k_sigtramp_info): Define.
+ (struct gdbarch_tdep): Add get_sigtramp_info.
+ * m68klinux-nat.c (fetch_register): Use register_size instead of
+ REGISTER_RAW_SIZE. Don't put assignment in if.
+ (store_register): Likewise.
+ (fetch_inferior_registers): Likewise.
+ (store_inferior_registers): Likewise.
+ * m68klinux-tdep.c (m68k_linux_sigtramp_saved_pc): Delete.
+ (m68k_linux_frame_saved_pc): Delete.
+ (m68k_linux_sigcontext_reg_offset,
+ m68k_linux_ucontext_reg_offset): Define.
+ (m68k_linux_get_sigtramp_info): New function.
+ (m68k_linux_extract_return_value): Rewrite using regcache.
+ (m68k_linux_store_return_value): Likewise.
+ (m68k_linux_extract_struct_value_address): Likewise.
+ (m68k_linux_init_abi): Set get_sigtramp_info in tdep structure.
+ Don't set deprecated_frame_saved_pc,
+ deprecated_extract_return_value, deprecated_store_return_value,
+ deprecated_extract_struct_value_address. Set
+ extract_return_value, store_return_value,
+ extract_struct_value_address.
+
+2003-07-07 Andrew Cagney <cagney@redhat.com>
+
+ * expprint.c: Include "user-regs.h" instead of "frame.h".
+ (print_subexp): Use user_reg_map_regnum_to_name, instead of
+ frame_map_regnum_to_name.
+ * frame.c: Include "user-regs.h" instead of "builtin-regs.h".
+ (frame_map_name_to_regnum): Simplify, call
+ user_reg_map_name_to_regnum.
+ (frame_map_regnum_to_name): Simplify, call
+ user_reg_map_regnum_to_name.
+ (frame_register_unwind): Update.
+ * std-regs.c: Include "user-regs.h" instead of "builtin-regs.h".
+ (_initialize_frame_reg): Call user_reg_add_builtin.
+ * findvar.c: Include "user-regs.h" instead of "builtin-regs.h".
+ (value_of_register): Use value_of_user_reg.
+ * eval.c (evaluate_subexp_standard): Update.
+ * parse.c (write_dollar_variable): Update.
+ * d10v-tdep.c (d10v_print_registers_info): Update.
+ * infcmd.c (registers_info): Update.
+ * Makefile.in (SFILES): Delete "builtin-regs.c", add "user-regs.c".
+ (builtin_regs_h): Delete macro.
+ (user_regs_h): Define.
+ (COMMON_OBS): Delete "builtin-regs.o", add "user-regs.o".
+ (builtin-regs.o): Delete target.
+ (user-regs.o): Specify dependencies.
+ (expprint.o): Update dependencies.
+ (findvar.o): Update dependencies.
+ (frame.o): Update dependencies.
+ (std-regs.o): Update dependencies.
+
+2003-07-06 Christopher Faylor <cgf@redhat.com>
+
+ * win32-nat.c (solib_symbols_add): Use one variable for all section
+ address stuff. Pass variable rather than address of variable to
+ safe_symbol_file_add.
+
+2003-07-06 Andreas Schwab <schwab@suse.de>
+
+ * m68klinux-nat.c (fill_fpregset): Fix use of loop index.
+
+2003-07-04 Joel Brobecker <brobecker@gnat.com>
+
+ * rs6000-nat.c (vmap_symtab): Fix compilation error.
+
+2003-07-04 Kris Warkentin <kewarken@qnx.com>
+
+ * config/i386/nto.mh: Set XM_FILE to xm-i386.h
+
+2003-07-04 Kris Warkentin <kewarken@qnx.com>
+
+ * nto-procfs.c: New file. Native procfs support for QNX Neutrino.
+ * config/i386/nto.mh: New file.
+ * config/i386/nm-nto.h: New file.
+ * configure.host: Add i[3456]86-*-nto*.
+
+2003-07-03 Joel Brobecker <brobecker@gnat.com>
+
+ * remote-vx.c (vx_add_symbols): Fix compilation error.
+
+2003-07-03 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (REGISTER_NAME): Do not supply a default.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * config/sparc/tm-sparc.h (REGISTER_NAME): Define.
+ (legacy_register_name): Declare.
+ * config/sparc/tm-sp64.h (legacy_register_name): Declare.
+ (REGISTER_NAME): Define.
+ * sparc-tdep.c (legacy_register_name): New function.
+ * config/pa/tm-hppa64.h (REGISTER_NAMES): Delete macro.
+ (REGISTER_NAME): Define.
+ (hppa64_register_name): Declare.
+ * config/pa/tm-hppa.h (REGISTER_NAMES): Delete macro.
+ * hppa-tdep.c (hppa_gdbarch_init): Set hppa_register_name.
+ (hppa64_register_name): New function.
+ (hppa_register_name): New function.
+ * arch-utils.c (legacy_register_name): Delete.
+ * arch-utils.h (legacy_register_name): Delete.
+
+2003-07-03 Daniel Jacobowitz <drow@mvista.com>
+
+ * cli/cli-interp.c (cli_interpreter_resume): Update the
+ cli_uiout's stream to gdb_stdout.
+
+2003-07-03 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (REGISTER_RAW_SIZE, REGISTER_VIRTUAL_SIZE): Add
+ predicate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * regcache.c (init_regcache_descr): Use legacy code when either
+ REGISTER_BYTE or REGISTER_RAW_SIZE is set.
+
+2003-07-02 Daniel Jacobowitz <drow@mvista.com>
+
+ * NEWS: Move "set logging" entry into GDB 6.0 section.
+
+2003-07-02 Jim Blandy <jimb@redhat.com>
+
+ * s390-tdep.c (struct frame_extra_info): new member:
+ 'stack_bought_valid'.
+ (s390_get_frame_info): Set fextra_info->stack_bought_valid if we
+ initialize fextra_info->stack_bought.
+ (s390_frameless_function_invocation): Don't trust the value of
+ fextra_info_ptr->stack_bought unless
+ fextra_info->stack_bought_valid is set.
+
+ New S390 prologue analyzer.
+ * s390-tdep.c (struct prologue_value, enum pv_boolean): New types.
+ (pv_set_to_unknown, pv_set_to_constant, pv_set_to_register,
+ pv_constant_last, pv_add, pv_add_constant, pv_subtract,
+ pv_logical_and, pv_is_identical, pv_is_register, pv_is_array_ref,
+ compute_x_addr, s390_on_stack, s390_store,
+ s390_get_signal_frame_info): New functions.
+ (S390_NUM_SPILL_SLOTS): New macro.
+ (s390_get_frame_info): Rewritten.
+ (is_arg_reg): Deleted.
+
+ Break out the decoding of S/390 instructions into separate
+ functions, to make it more legible, and easier to check
+ against the spec.
+ * s390-tdep.c (is_ri, is_ril, is_rr, is_rre, is_rs, is_rse,
+ is_rx, is_rxe): New functions.
+ (op1_aghi, op2_aghi, op1_ahi, op2_ahi, op_ar, op_basr, op1_bras,
+ op2_bras, op_l, op_la, op1_larl, op2_larl, op_lgr, op1_lghi,
+ op2_lghi, op1_lhi, op2_lhi, op_lr, op_nr, op_ngr, op_s, op_st,
+ op_std, op1_stg, op2_stg, op_stm, op1_stmg, op2_stmg, op_svc): New
+ enums for opcode values. (Is this an improvement?)
+
+2003-07-02 Andrew Cagney <cagney@redhat.com>
+
+ * i386-tdep.c: Revert change committed as part of trad-frame code
+ below.
+
+2003-07-02 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (insert_catchpoint): Make static.
+
+2003-07-02 Andreas Schwab <schwab@suse.de>
+
+ * ia64-tdep.c (ia64_push_dummy_call): Define as combination of
+ former ia64_push_arguments and ia64_push_return_address, and use
+ regcache functions instead of read/write_register.
+ (ia64_gdbarch_init): Set push_dummy_call instead of
+ deprecated_push_arguments and deprecated_push_return_address.
+
+2003-07-01 Andreas Jaeger <aj@suse.de>
+
+ * x86-64-tdep.c (x86_64_push_arguments): Align stack to 16-byte
+ before the call.
+ Set %rax only to number of SSE registers used.
+
+2003-07-01 Andrew Cagney <cagney@redhat.com>
+
+ * trad-frame.h: Update comments, a -1 .addr is reserved.
+ (trad_frame_value_p, trad_frame_addr_p): Declare.
+ (trad_frame_reg_p): Declare.
+ (trad_frame_set_value): Rename trad_frame_register_value.
+ (trad_frame_set_unknown): Declare.
+ * trad-frame.c (trad_frame_realreg_p): New function.
+ (trad_frame_addr_p, trad_frame_value_p): New function.
+ (trad_frame_set_unknown): New function.
+ (trad_frame_alloc_saved_regs): Initialize .addr to -1, not zero.
+ (trad_frame_prev_register): Use trad_frame_realreg_p,
+ trad_frame_addr_p and trad_frame_value_p.
+ (trad_frame_set_value): Rename trad_frame_register_value.
+ * d10v-tdep.c (d10v_frame_unwind_cache): Use trad_frame_addr_p
+ and trad_frame_set_value.
+
+2003-06-30 Jim Blandy <jimb@redhat.com>
+
+ Patch from IBM (authors unspecified, probably Ulrich Weigand and
+ Gerhard Tonn) for argument passing on the S/390 and S/390x:
+ * s390-tdep.c (S390_STACK_FRAME_OVERHEAD): This is always space
+ for 16 registers, and then 32 more bytes.
+ (S390_STACK_PARAMETER_ALIGNMENT, S390_NUM_FP_PARAMETER_REGISTERS):
+ New macros.
+ (is_double_arg): The s390x doesn't handle DOUBLE_ARGS specially.
+ Move up in the file, since it's now used by is_simple_arg.
+ (is_simple_arg): Don't assume registers are four bytes long.
+ Exclude all double arguments. Extended floats are not simple
+ args.
+ (is_power_of_two): New function.
+ (pass_by_copy_ref): Call is_power_of_two, and check that the
+ length fits in a register, rather than listing all the acceptable
+ sizes. Extended floats are not passed by reference.
+ (s390_push_arguments): Don't assume registers are four bytes long.
+ Reserve an argument register to point to the buffer for structures
+ returned by value. Use S390_NUM_FP_PARAMETER_REGISTERS and
+ S390_STACK_FRAME_OVERHEAD.
+
+2003-06-30 Andreas Schwab <schwab@suse.de>
+
+ * utils.c (internal_vproblem): Use xvasprintf, not xasprintf, to
+ format error message.
+
+2003-06-30 Joel Brobecker <brobecker@gnat.com>
+
+ * sparc-tdep.c (stop_after_trap): Remove declaration, not used.
+
+2003-06-30 David Carlton <carlton@kealia.com>
+
+ Band-aid for PR c++/1245.
+ * Makefile.in (cp-support.o): Depend on complaints_h.
+ * cp-support.c: Include complaints.h. Add declaration for
+ find_last_component.
+ (cp_find_first_component): Separate code into
+ cp_find_first_component_aux.
+ (cp_find_first_component_aux): Call demangled_name_complaint.
+ (demangled_name_complaint): New.
+
+2003-06-30 Andrew Cagney <cagney@redhat.com>
+
+ * remote.c (remote_write_bytes): Explicitly compute and then use
+ the payload size. Update comments to reflect. Fixes problem of
+ GDB not sending small packets as found by Fred Fish.
+
+2003-06-30 Andrew Cagney <cagney@redhat.com>
+
+ * remote.c (remote_async_wait): Fix -Wformat problem.
+
+2003-06-29 Andrew Cagney <cagney@redhat.com>
+
+ * remote.c (remote_wait): Call error, and not warning, when the
+ packet is corrupt.
+ (remote_async_wait): Ditto.
+
+2003-06-29 Daniel Jacobowitz <drow@mvista.com>
+
+ * sparc-tdep.c (sparc_y_regnum): Make external again.
+
+2003-06-29 Daniel Jacobowitz <drow@mvista.com>
+
+ * cli/cli-logging.c (pop_output_files): Add void to function
+ definition.
+
+2003-06-29 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (frame_register_unwind): Use unsigned char when dumping
+ the buffer contents.
+
+2003-06-28 Daniel Jacobowitz <drow@mvista.com>
+
+ * cli/cli-logging.c: New file.
+ * cli-out.c (struct ui_out_data): Add original_stream.
+ (cli_redirect): New function.
+ (cli_ui_out_impl): Add cli_redirect.
+ (cli_out_new): Initialize original_stream.
+ * ui-out.c (default_ui_out_impl): Add NULL for redirect member.
+ (uo_redirect, ui_out_redirect): New.
+ * ui-out.h (struct ui_out_impl): Add redirect member.
+ (redirect_ftype): New.
+ (ui_out_redirect): Add prototype.
+ * Makefile.in: Add rules for cli-logging.c.
+ * NEWS: Mention "set logging".
+
+2003-06-27 Elena Zannoni <ezannoni@redhat.com>
+
+ * config/powerpc/ppc64-linux.mh (NATDEPFILES): Add linux-nat.o.
+
+2003-06-27 Andrew Cagney <cagney@redhat.com>
+
+ * m68hc11-tdep.c (m68hc11_call_dummy_address): Delete function.
+ (m68hc11_gdbarch_init): Do not set call_dummy_address.
+ * avr-tdep.c (avr_call_dummy_address): Delete function.
+ (avr_gdbarch_init): Do not set call_dummy_address.
+
+2003-06-27 Elena Zannoni <ezannoni@redhat.com>
+
+ * symfile.c (syms_from_objfile): Move variables to inner block.
+ Move the checks for the non-mainline case a bit earlier to avoid
+ doing some useless computations.
+
+2003-06-27 Elena Zannoni <ezannoni@redhat.com>
+
+ * dwarfread.c (decode_modified_type): Gag new compiler warning.
+
+2003-06-26 Elena Zannoni <ezannoni@redhat.com>
+
+ * dwarf2read.c (dwarf2_locate_sections): Ignore empty .eh_frame
+ sections.
+
+2003-06-26 Michael Chastain <mec@shout.net>
+
+ * config/djgpp/fnchange.lst: Add gdb/testsuite/gdb.c++/pr-1210.cc,
+ gdb/testsuite/gdb.c++/pr-1210.exp.
+
+2003-06-26 Andrew Cagney <cagney@redhat.com>
+
+ * config/djgpp/fnchange.lst: Fix 8.3 problem with sim/ppc's
+ altivec_expression.h and altivec_registers.h.
+
+2003-06-26 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (gdb_print_insn_mips): Only explicitly set
+ info->mach when MIPS16. Patch suggested by Fred Fish.
+
+2003-06-26 Andrew Cagney <cagney@redhat.com>
+
+ * utils.c (internal_vproblem): Print the problem to a reason
+ buffer and then pass to query. Make the msg variable more local.
+
+2003-06-26 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (FRAME_ARGS_ADDRESS): Add predicate. Deprecate.
+ (FRAME_LOCALS_ADDRESS): Add predicate. Deprecate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * frame-base.c (default_frame_args_address): Update. Use
+ default_frame_base_address when DEPRECATED_FRAME_ARGS_ADDRESS is
+ not available.
+ (default_frame_locals_address): Ditto for
+ DEPRECATED_FRAME_LOCALS_ADDRESS.
+ * vax-tdep.c (vax_sigtramp_saved_pc): Update.
+ (vax_frame_num_args): Update.
+ (vax_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * symtab.h (address_class): Update comments.
+ * ns32k-tdep.c (ns32k_sigtramp_saved_pc): Update.
+ * config/sparc/tm-sparc.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
+ (DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
+ * config/pa/tm-hppa64.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
+ (DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
+ (DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
+ * config/m68k/tm-delta68.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
+ * alpha-mdebug-tdep.c: Update.
+ * ada-lang.c (add_symbols_from_enclosing_procs): Update.
+
+2003-06-26 Andreas Jaeger <aj@suse.de>
+
+ * x86-64-tdep.c (x86_64_push_arguments): Always set %rax to number
+ of SSE registers so that varargs functions work. Rework handling
+ of passing arguments on the stack.
+ (x86_64_store_return_value): Return double and float values in SSE
+ register.
+
+2003-06-24 Michael Chastain <mec@shout.net>
+
+ * PROBLEMS: Document pr gdb/1091 and pr gdb/1193,
+ the "constructor breakpoints ignored" bug.
+
+2003-06-25 David Carlton <carlton@kealia.com>
+
+ * MAINTAINERS: Update e-mail address.
+
+2003-06-24 Jim Blandy <jimb@redhat.com>
+
+ * ppc-linux-tdep.c: More "Linux" -> "GNU/Linux".
+
+ * ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr): New
+ function.
+ (ppc_linux_init_abi): Register it as the
+ CONVERT_FROM_FUNC_PTR_ADDR method under the PPC64 Linux ABI.
+
+ * ppc-linux-tdep.c (ppc64_call_dummy_address): New function.
+ (ppc_linux_init_abi): Set it as the gdbarch's call_dummy_address
+ method.
+
+ * ppc-linux-tdep.c (ppc64_desc_entry_point): New function.
+ (ppc64_standard_linkage_target): Use it.
+
+2003-06-23 Andrew Cagney <cagney@redhat.com>
+
+ * rs6000-tdep.c (rs6000_register_virtual_type): Add explict cases
+ for 0 "int0" and 4 "int32" sized registers.
+ * gdbtypes.c (builtin_type_int0): Define.
+ (build_gdbtypes): Initialize builtin_type_int0.
+ * gdbtypes.h (builtin_type_int0): Declare.
+
+2003-06-23 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Clear gdb_arch_char_signed
+ as characters are unsigned.
+
+2003-06-22 Daniel Jacobowitz <drow@mvista.com>
+
+ PR gdb/1179
+ * dwarfread.c (struct_type): Skip static fields without crashing.
+
+2003-06-22 Andrew Cagney <cagney@redhat.com>
+
+ GDB 6.0 branch created.
+ * README: Update.
+ * PROBLEMS: Update. Empty.
+ * NEWS: Update.
+
+2003-06-22 Daniel Jacobowitz <drow@mvista.com>
+
+ * symfile.c (add_symbol_file_command): Use parse_and_eval_address.
+ Suggested by Nick Hibma <n_hibma@webweaving.org>.
+
+2003-06-22 Andrew Cagney <cagney@redhat.com>
+
+ * osabi.c (generic_elf_osabi_sniff_abi_tag_sections): Handle
+ GNU_ABI_TAG_FREEBSD and GNU_ABI_TAG_NETBSD. Suggested by Momchil
+ Velikov.
+
+2003-06-22 Daniel Jacobowitz <drow@mvista.com>
+
+ * cli/cli-cmds.c (shell_escape): Silence warnings from old
+ compilers.
+
+2003-06-21 Daniel Jacobowitz <drow@mvista.com>
+
+ * c-valprint.c (c_value_print): Add VALUE_OFFSET to the address
+ argument of val_print.
+ * cp-valprint.c (cp_print_value): Don't add the offset parameter
+ to the address argument of baseclass_offset or target_read_memory.
+ Do add it to the argument of cp_print_value_fields.
+
+2003-06-21 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c: Include "reggroups.h" and "sim-regno.h".
+ (mips_register_name): Return names for NUM_REGS..2*NUM_REGS
+ instead of 0..NUM_REGS.
+ (mips_register_reggroup_p): New function.
+ (mips_pseudo_register_write): New function.
+ (mips_pseudo_register_read): New function.
+ (mips_register_raw_size): For NUM_REGS..2*NUM_REGS return the size
+ based on the register's type.
+ (read_next_frame_reg): Simplify. Assert that REGNO is a pseudo /
+ cooked.
+ (mips_get_saved_register): Simplify. Assert that REGNO is a
+ pseudo / cooked.
+ (mips_register_byte): New function. Use MIPS_REGISTER_BYTE.
+ (mips_register_type): Replace mips_register_virtual_type. Map
+ NUM_REGS..2*NUM_REGS onto 0..NUM_REGS. Use MIPS_REGISTER_TYPE
+ when available.
+ (read_next_frame_reg): Simplify, but handle SP_REGNUM. Assert
+ that the register is cooked / virtual.
+ (mips_frame_saved_pc): Fetch the cooked PC, and not the raw PC.
+ Only get the extra info when needed.
+ (set_reg_offset): Save the offset in NUM_REGS..2*NUM_REGS as well.
+ (mips32_heuristic_proc_desc): Fetch the cooked register.
+ (heuristic_proc_desc, mips_pop_frame, get_frame_pointer): Ditto.
+ (mips_init_extra_frame_info, get_frame_pointer): Ditto.
+ (mips_print_register): Use gdbarch_register_type, instead of
+ REGISTER_VIRTUAL_TYPE.
+ (print_gp_register_row): Use gdbarch_register_type, instead of
+ REGISTER_VIRTUAL_TYPE. Allow for a pseudo / cooked REGNUM.
+ (mips_print_registers_info): Assert REGNO is pseodo / cooked.
+ Print the pseudo / cooked registers.
+ (mips_print_registers_info): Assert REGNO is pseodo / cooked.
+ Print the pseudo / cooked registers.
+ (mips_xfer_register): Use regcache_cooked_read_part. Assert that
+ REG_NUM is pseudo / cooked.
+ (mips_o32_xfer_return_value): Xfer the pseudo / cooked register.
+ (mips_n32n64_xfer_return_value): Ditto.
+ (mips_stab_reg_to_regnum): Map onto NUM_REGS..2*NUM_REGS.
+ (mips_dwarf_dwarf2_ecoff_reg_to_regnum): Ditto.
+ (mips_register_sim_regno): New function.
+ (mips_gdbarch_init): Set deprecated_register_byte,
+ register_group_p, pseudo_register_write, pseudo_register_read,
+ register_sim_regno, and num_pseudo_regs. Set register_type,
+ instead of register_virtual_type.
+ * Makefile.in (mips-tdep.o): Update dependencies.
+ * config/mips/tm-mips64.h (MIPS_REGISTER_TYPE): Rename
+ REGISTER_VIRTUAL_TYPE.
+ * config/mips/tm-mips.h (MIPS_REGISTER_TYPE): Ditto.
+ * config/mips/tm-irix5.h (MIPS_REGISTER_TYPE): Ditto.
+ * config/mips/tm-mips.h (MIPS_REGISTER_BYTE): Rename REGISTER_BYTE.
+ * config/mips/tm-irix6.h (MIPS_REGISTER_BYTE): Ditto.
+ * config/mips/tm-irix5.h (MIPS_REGISTER_BYTE): Ditto.
+
+2003-06-21 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (cli-cmds.o): Depend on $(gdb_vfork_h)
+ * cli/cli-cmds.c: Include "gdb_vfork.h".
+ (shell_escape): Use vfork.
+
+2003-06-21 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (mips_find_saved_regs): Rewrite mdebug code handling
+ 32 bit floating-point register saves.
+
+ * frame.h (deprecated_unwind_get_saved_register): Delete.
+ * frame.c (deprecated_unwind_get_saved_register): Delete function.
+ * mips-tdep.c (mips_get_saved_register): Use frame_register_unwind
+ and deprecated_get_next_frame_hack instead of
+ deprecated_unwind_get_saved_register.
+
+ * mips-tdep.c (mips_dump_tdep): Do not print
+ REGISTER_CONVERT_FROM_TYPE or REGISTER_CONVERT_TO_TYPE.
+
+ * frame.c (get_frame_register): New function.
+ (frame_unwind_register_signed): New function.
+ (get_frame_register_signed): New function.
+ (frame_unwind_register_unsigned): New function.
+ (get_frame_register_unsigned): New function.
+ * frame.h: Add comments on naming schema.
+ (get_frame_register, frame_unwind_register_signed): Declare.
+ (get_frame_register_signed, get_frame_register_signed): Declare.
+ (frame_unwind_register_unsigned): Declare.
+ (get_frame_register_unsigned): Declare.
+
+2003-06-20 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_gdbarch_init): Don't call set_gdbarch_bfd_vma_bit.
+
+2003-06-20 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_read_pc): Use regcache instead of read_register.
+ (avr_read_sp): Ditto.
+
+2003-06-20 Daniel Jacobowitz <drow@mvista.com>
+
+ * config/arm/linux.mt: Remove code protected by GDBSERVER define.
+ * config/arm/nm-linux.h: Likewise.
+ * config/arm/tm-linux.h: Likewise.
+ * config/ia64/nm-linux.h: Likewise.
+ * config/ia64/tm-ia64.h: Likewise.
+ * config/s390/tm-linux.h: Likewise.
+ * config/s390/tm-s390.h: Likewise.
+ * s390-nat.c: Likewise.
+ * s390-tdep.c: Likewise.
+
+ * config/i386/linux.mt: Don't set GDBSERVER_DEPFILES.
+ * config/ia64/linux.mt: Likewise.
+ * config/m68k/linux.mh: Likewise.
+ * config/mips/linux.mt: Likewise.
+ * config/powerpc/linux.mh: Likewise.
+ * config/sh/linux.mt: Likewise.
+
+2003-06-19 Kris Warkentin <kewarken@qnx.com>
+
+ * solib.c (solib_open): Change tests for whether to search
+ LD_LIBRARY_PATH and PATH to better deal with remotes. Update
+ comments.
+
+2003-06-19 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_frame_address): Delete function.
+ (avr_gdbarch_init): Don't call set_gdbarch_frame_args_address,
+ set_gdbarch_frame_args_address.
+
+2003-06-19 Andrew Cagney <cagney@redhat.com>
+
+ * config/mips/tm-mips.h (REGISTER_CONVERT_TO_TYPE): Delete.
+ (REGISTER_CONVERT_FROM_TYPE): Delete.
+ (mips_register_convert_to_type): Delete declaration.
+ (mips_register_convert_from_type): Delete declaration.
+ * linux-nat.h (struct target_ops): Declare opaque. s/Linux/Linux
+ kernel/.
+
+2003-06-19 Michael Snyder <msnyder@redhat.com>
+
+ * linux-nat.h: New file.
+ * linux-nat.c: Include linux-nat.h.
+ * lin-lwp.c: Include linux-nat.h.
+ Move struct lwp_info def to linux-nat.h.
+ * linux-proc.c: Include linux-nat.h.
+ (linux_make_note_section): Iterate over lwps instead of threads.
+ (linux_do_thread_registers): Use lwp instead of merged pid.
+ * config/nm-linux.h: Move miscelaneous def'ns to linux-nat.h.
+ * Makefile.in (lin-lwp.o, linux-proc.o, linux-nat.o):
+ Add dependency on linux_nat_h.
+
+2003-06-19 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_extract_return_value): Delete debugging fprintf.
+
+2003-06-19 Daniel Jacobowitz <drow@mvista.com>
+
+ * varobj.c (get_type, get_target_type): Use check_typedef.
+
+2003-06-19 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (insert_catchpoint): Call internal_error.
+
+2003-06-19 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_push_dummy_code): Delete function.
+ (avr_gdbarch_init): Don't call set_gdbarch_push_dummy_code.
+
+2003-06-19 Daniel Jacobowitz <drow@mvista.com>
+
+ * arch-utils.c (default_prepare_to_proceed): Remove.
+ (generic_prepare_to_proceed): Remove.
+ * arch-utils.h (default_prepare_to_proceed): Remove prototype.
+ (generic_prepare_to_proceed): Remove prototype.
+ * gdbarch.sh (PREPARE_TO_PROCEED): Remove.
+ * gdbarch.c: Regenerate.
+ * gdbarch.h: Regenerate.
+ * hppa-tdep.c (hppa_prepare_to_proceed): Remove dangling prototype.
+ * hppah-nat.c (hppa_switched_threads): Remove.
+ * infrun.c (prepare_to_proceed): New static function, copied from
+ generic_prepare_to_proceed. Remove select_it argument.
+ (proceed): Call prepare_to_proceed.
+ * infttrace.c (old_gdb_pid, reported_pid, reported_bpt): Remove
+ variables.
+ (ptrace_wait): Don't set the removed variables.
+ (hppa_switched_threads): Remove.
+ * lin-lwp.c (lin_lwp_prepare_to_proceed): Remove.
+ * config/nm-linux.h (PREPARE_TO_PROCEED): Don't define.
+ (lin_lwp_prepare_to_proceed): Remove prototype.
+ * config/i386/nm-x86-64linux.h (PREPARE_TO_PROCEED): Don't undefine.
+ * config/pa/nm-hppah.h (PREPARE_TO_PROCEED): Don't define.
+
+2003-06-18 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c: Include frame.h, frame-unwind.h, frame-base.h, and
+ trad-frame.h.
+ (AVR_MAX_PROLOGUE_SIZE): Increase from 56 to 64.
+ (AVR_ARG1_REGNUM, AVR_ARGN_REGNUM): Define.
+ (AVR_RET1_REGNUM, AVR_RETN_REGNUM): Define.
+ (AVR_PROLOGUE_*): Enumerate prologue types.
+ (struct frame_extra_info): Remove.
+ (struct avr_unwind_cache): Define.
+ (avr_write_sp): Delete function.
+ (avr_read_fp): Ditto.
+ (avr_init_extra_frame_info): Ditto.
+ (avr_pop_frame): Ditto.
+ (avr_frame_saved_pc): Ditto.
+ (avr_saved_pc_after_call): Ditto.
+ (avr_push_return_address): Ditto.
+ (avr_frame_chain): Ditto.
+ (avr_store_struct_return): Ditto.
+ (avr_push_arguments): Ditto.
+ (avr_scan_prologue): Update comments. Changed to set up the info for
+ cache unwinding. Now returns end of prologue PC.
+ (avr_skip_prologue): Better handling of functions lacking a prologue
+ by using avr_scan_prologue.
+ (avr_scan_arg_moves): New function.
+ (avr_saved_regs_unwinder): Ditto.
+ (avr_frame_unwind_cache): Ditto.
+ (avr_unwind_pc): Ditto.
+ (avr_frame_this_id): Ditto.
+ (avr_frame_prev_register): Ditto.
+ (avr_frame_p): Ditto.
+ (avr_frame_base_address ): Ditto.
+ (avr_unwind_dummy_id): Ditto.
+ (avr_push_dummy_code): Ditto.
+ (push_stack_item): Ditto.
+ (pop_stack_item): Ditto.
+ (avr_push_dummy_call): Ditto.
+ (struct stack_item): Define.
+ (avr_frame_unwind): Declare structure.
+ (avr_frame_base): Ditto.
+ (avr_gdbarch_init): Remove calls to
+ set_gdbarch_deprecated_init_frame_pc,
+ set_gdbarch_deprecated_target_read_fp,
+ set_gdbarch_deprecated_dummy_write_sp,
+ set_gdbarch_deprecated_fp_regnum,
+ set_gdbarch_deprecated_push_arguments,
+ set_gdbarch_deprecated_push_return_address,
+ set_gdbarch_deprecated_pop_frame,
+ set_gdbarch_deprecated_store_struct_return,
+ set_gdbarch_deprecated_frame_init_saved_regs,
+ set_gdbarch_deprecated_init_extra_frame_info,
+ set_gdbarch_deprecated_frame_chain,
+ set_gdbarch_deprecated_frame_saved_pc,
+ set_gdbarch_deprecated_saved_pc_after_call.
+ Add calls to set_gdbarch_push_dummy_call,
+ set_gdbarch_push_dummy_code,
+ frame_unwind_append_predicate,
+ frame_base_set_default,
+ set_gdbarch_unwind_dummy_id,
+ set_gdbarch_unwind_pc.
+ Wrap a long line.
+
+2003-06-18 Corinna Vinschen <vinschen@redhat.com>
+
+ * h8300-tdep.c (h8300s_register_name): Enable MACH and MACL
+ registers for H8/300S.
+ (h8300_print_registers_info): Ditto.
+ (h8300_gdbarch_init): Accommodate register count for H8/300S.
+
+2003-06-18 Daniel Jacobowitz <drow@mvista.com>
+
+ * config/nm-linux.h (linux_record_stopped_pid): New prototype.
+ * lin-lwp.c (child_wait): Call linux_record_stopped_pid.
+ (lin_lwp_wait): Likewise. Update comments.
+ * linux-nat.c (struct simple_pid_list, add_to_pid_list)
+ (pull_pid_from_list, linux_record_stopped_pid): New.
+
+2003-06-17 Stephane Carrez <stcarrez@nerim.fr>
+
+ * ada-lang.c (scan_discrim_bound): Name first argument.
+ (ada_add_block_symbols): Remove BLOCK_SYM to use local variable
+ declared by ALL_BLOCK_SYMBOLS.
+
+2003-06-17 Stephane Carrez <stcarrez@nerim.fr>
+
+ * ada-tasks.c (find_function_in_inferior): Don't declare it.
+ ("regcache.h"): Include it.
+ * ada-lex.l (block_lookup): Replace VAR_NAMESPACE with VAR_DOMAIN.
+
+2003-06-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * NEWS: Mention gdbserver detach change and "disconnect" command.
+ * infcmd.c (disconnect_command): New function.
+ (_initialize_infcmd): Add ``disconnect'' command.
+ * remote.c (remote_async_detach): Delete.
+ (remote_detach): Merge remote_async_detach.
+ (remote_disconnect): New.
+ (init_remote_ops): Set to_disconnect.
+ (init_remote_cisco_ops): Likewise.
+ (init_remote_async_ops): Likewise. Use remote_detach.
+ * target.c (cleanup_target): Default to_disconnect.
+ (update_current_target): Inherit to_disconnect.
+ (target_disconnect, debug_to_disconnect): New functions.
+ (setup_target_debug): Set to_disconnect.
+ * target.h (struct target_ops): Add to_disconnect.
+ (target_disconnect): Add prototype.
+
+2003-06-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (insert_catchpoint): New function.
+ (insert_breakpoints): Use catch_exceptions to call
+ insert_catchpoint. Disable catchpoints if they fail to insert.
+
+2003-06-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * symfile.c (reread_symbols): Clear sym_private.
+
+2003-06-17 Andrew Cagney <cagney@redhat.com>
+
+ * trad-frame.h (struct frame_info): Add opaque declaration.
+ * remote-fileio.h (struct cmd_list_element): Add opaque
+ declaration.
+ * h8300-tdep.c (h8300s_register_name): Avoid C++ // style
+ comments.
+
+2003-06-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * remote.c (remote_prepare_to_store): Replace call to
+ deprecated_read_register_bytes with multiple regcache_raw_read
+ calls.
+
+2003-06-17 Kris Warkentin <kewarken@qnx.com>
+
+ * nto-tdep.c (nto_map_arch_to_cputype): Recognize "powerpc".
+ (nto_find_and_open_solib): Likewise.
+ (nto_init_solib_absolute_prefix): Likewise.
+ (_initialize_nto_tdep): Fix indentation.
+
+2003-06-17 Kris Warkentin <kewarken@qnx.com>
+
+ * i386-nto-tdep.c (i386nto_sigcontext_addr): Make sp a CORE_ADDR.
+
+2003-06-17 Kris Warkentin <kewarken@qnx.com>
+
+ * i386-nto-tdep.c (i386nto_sigcontext_addr): Declare sp before using.
+
+2003-06-17 Jim Blandy <jimb@redhat.com>
+
+ * ppc-linux-tdep.c: "Linux" -> "GNU/Linux"
+
+2003-06-16 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_extract_return_value): New function.
+ (avr_gdbarch_init): Set extract_return_value method.
+
+2003-06-16 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h (deprecated_get_next_frame_hack): Declare.
+ * frame.c (legacy_saved_regs_prev_register): Only require
+ DEPRECATED_FRAME_INIT_SAVED_REGS when it is needed. Assert that
+ there are always saved regs.
+ (deprecated_generic_get_saved_register): Do not require
+ DEPRECATED_FRAME_INIT_SAVED_REGS.
+ (legacy_get_prev_frame): Do not require DEPRECATED_FRAME_CHAIN,
+ use frame ID unwind instead.
+ (deprecated_get_next_frame_hack): New function.
+
+2003-06-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * h8300-tdep.c (h8300_push_arguments): Remove. Substitute by...
+ (h8300_push_dummy_call): ...this function. Some minor optimization.
+ (h8300_push_return_address): Remove.
+ (h8300_gdbarch_init): Remove calls to
+ set_gdbarch_deprecated_dummy_write_sp,
+ set_gdbarch_deprecated_push_arguments and
+ set_gdbarch_deprecated_push_return_address.
+ Add call to set_gdbarch_push_dummy_call.
+
+2003-06-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * h8300-tdep.c (E_PSEUDO_CCR_REGNUM): New define.
+ (E_PSEUDO_EXR_REGNUM): Ditto.
+ (h8300_is_argument_spill): Check for instructions moving argument
+ registers into safe registers.
+ (h8300_skip_prologue): Check for stm instruction to push registers
+ used for register variables onto stack.
+ (gdb_print_insn_h8300): Remove.
+ (h8300_examine_prologue): Add a comment.
+ (h8300_register_name): Take pseudo registers into account.
+ (h8300s_register_name): Ditto.
+ (h8300sx_register_name): Ditto.
+ (h8300_print_register): Ditto.
+ (h8300_print_registers_info): Define "nice" printing order.
+ (h8300_saved_pc_after_call): Take pseudo registers into account.
+ (h8300_register_type): Ditto. Return type used for remote connection
+ when requesting real CCR or EXR register, return actual type when
+ requesting pseudo CCR or EXR.
+ (h8300_pseudo_register_read): New function.
+ (h8300_pseudo_register_write): Ditto.
+ (h8300_dbg_reg_to_regnum): Ditto.
+ (h8300s_dbg_reg_to_regnum): Ditto.
+ (h8300_gdbarch_init): Call set_gdbarch_num_pseudo_regs,
+ set_gdbarch_ecoff_reg_to_regnum, set_gdbarch_dwarf_reg_to_regnum,
+ set_gdbarch_dwarf2_reg_to_regnum, set_gdbarch_stab_reg_to_regnum and
+ set_gdbarch_print_insn architecture dependent.
+ Call set_gdbarch_pseudo_register_read and
+ set_gdbarch_pseudo_register_write.
+ (_initialize_h8300_tdep): Remove assignment to deprecated_tm_print_insn.
+
+2003-06-16 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (SAVE_DUMMY_FRAME_TOS): Deprecate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * infcall.c (call_function_by_hand): Update.
+ * ia64-tdep.c (ia64_push_arguments): Update comment.
+ * frame.c (legacy_get_prev_frame): Do not assume
+ SAVE_DUMMY_FRAME_TOS_P.
+ * dummy-frame.c (find_dummy_frame): Update comment.
+
+2003-06-16 Andrew Cagney <cagney@redhat.com>
+
+ * regcache.c (do_cooked_read): Do not use register_valid_p.
+
+2003-06-15 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_register_type): Remove a blank line.
+ (avr_scan_prologue): Correct some comments.
+
+2003-06-15 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_scan_prologue): Update comment describing the various
+ prologue types.
+ Properly scan prologues generated by gcc with the -mcall-prologues
+ option.
+ Add code to scan -mcall-prologues for mega devices.
+
+2003-06-15 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_register_byte): Delete function.
+ (avr_register_raw_size): Delete function.
+ (avr_register_virtual_size): Delete function.
+ (avr_register_virtual_type): Delete function.
+ (avr_register_type): New function.
+ (avr_address_to_pointer): Remove unused code.
+ (avr_read_fp): Need to read FP as two separate bytes due to change to
+ avr_register_type() usage.
+ (avr_gdbarch_init): Don't set deprecated_register_size.
+ Don't set deprecated_register_bytes.
+ Don't set deprecated_register_byte.
+ Don't set deprecated_register_raw_size.
+ Don't set deprecated_max_register_raw_size.
+ Don't set deprecated_register_virtual_size.
+ Don't set deprecated_max_register_virtual_size.
+ Don't set deprecated_register_virtual_type.
+ Set register_type method.
+
+2003-06-15 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (linux-nat.o): Add rule.
+ * linux-nat.c: New file.
+ * config/nm-linux.h (CHILD_INSERT_FORK_CATCHPOINT): Define.
+ (CHILD_INSERT_VFORK_CATCHPOINT): Define.
+ (CHILD_INSERT_EXEC_CATCHPOINT): Define.
+ * config/alpha/alpha-linux.mh (NATDEPFILES): Add linux-nat.o.
+ * config/arm/linux.mh (NATDEPFILES): Likewise.
+ * config/i386/linux.mh (NATDEPFILES): Likewise.
+ * config/i386/x86-64linux.mh (NATDEPFILES): Likewise.
+ * config/ia64/linux.mh (NATDEPFILES): Likewise.
+ * config/m68k/linux.mh (NATDEPFILES): Likewise.
+ * config/mips/linux.mh (NATDEPFILES): Likewise.
+ * config/powerpc/linux.mh (NATDEPFILES): Likewise.
+ * config/s390/s390.mh (NATDEPFILES): Likewise.
+ * config/sparc/linux.mh (NATDEPFILES): Likewise.
+
+2003-06-15 Mark Kettenis <kettenis@gnu.org>
+
+ * i387-tdep.c: Reorder includes, fix some whitespace issues and
+ replace out-of-date comment.
+
+2003-06-15 Andrew Cagney <cagney@redhat.com>
+
+ * rdi-share/host.h (Fail): Change to a varargs function.
+ * remote-rdi.c (Fail): Update.
+
+2003-06-15 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_next_regnum): Fix bounds checking.
+ (i386_convert_register_p, i386_register_to_value,
+ i386_register_from_value): Handle types longer than 8 bytes.
+
+2003-06-15 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_register_to_value, i386_value_to_register):
+ Move floating-point code to new function in i387-tdep.c.
+ * i387-tdep.c (i387_register_to_value, i387_value_to_register):
+ New functions containing code moved here from i386-tdep.c.
+ * i387-tdep.h: Add opaque declaration for `struct type'.
+ (i387_register_to_value, i387_value_to_register): New prototypes.
+ * x86-64-tdep.c (x86_64_convert_register_p): New function.
+ (x86_64_init_abi): Set convert_register_p, register_to_value and
+ value_to_register here.
+
+2003-06-14 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (mips_register_to_value): Make static.
+ (mips_value_to_register): Make static.
+ * i386-tdep.c (i386_fetch_pointer_argument): Make static.
+ * ia64-tdep.c (ia64_register_raw_size): Make static.
+ (ia64_register_virtual_size): Make static.
+ (ia64_register_byte): Make static.
+ * i387-tdep.c: Include "i387-tdep.h".
+ (print_387_control_word): Delete function.
+ (print_387_status_word): Delete function.
+ (print_387_status_bits): Delete function.
+ (print_387_control_bits): Delete function.
+ * Makefile.in (i387-tdep.o): Update dependencies.
+ * rdi-share/host.h (Fail): Declare.
+ * remote-rdi.c (Fail): Update to match declaration.
+
+2003-06-14 Andrew Cagney <cagney@redhat.com>
+
+ * config/mips/embedl64.mt (TDEPFILES): Delete "remote-array.o".
+ * config/mips/embedl.mt (TDEPFILES): Delete "remote-array.o".
+ * config/mips/embed64.mt (TDEPFILES): Delete "remote-array.o".
+ * config/djgpp/fnchange.lst: Delete "remote-array.c".
+ * README: Delete reference to remote-array.
+ * Makefile.in (ALLDEPFILES): Remove "remote-array.c".
+ (remote-array.o): Delete target.
+ * config/mips/embed.mt (TDEPFILES): Delete "remote-array.o".
+ * remote-array.c: Delete file.
+
+2003-06-14 Andrew Cagney <cagney@redhat.com>
+ Mark Kettenis <kettenis@gnu.org>
+
+ * gdbarch.sh (CONVERT_REGISTER_P): Add "type" parameter.
+ (REGISTER_TO_VALUE, VALUE_TO_REGISTER): Replace raw buffer
+ parameter with "frame".
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * frame.h (put_frame_register): Declare.
+ * frame.c (put_frame_register): New function.
+ * arch-utils.c (legacy_convert_register_p): Add "type" parameter.
+ (legacy_register_to_value): Rewrite, use "frame" to get the
+ register value.
+ (legacy_value_to_register): Rewrite, use "frame" to find the
+ register's location before storing.
+ * arch-utils.h (legacy_convert_register_p): Update.
+ (legacy_register_to_value, legacy_value_to_register): Update.
+ * findvar.c (value_from_register): Rewrite, eliminate use of
+ REGISTER_CONVERT_TO_TYPE, pass "type" to CONVERT_REGISTER_P, pass
+ "frame" to REGISTER_TO_VALUE.
+ * valops.c (value_assign): Move the CONVERT_REGISTER code to the
+ lval_reg_frame_relative + lval_register branch of the switch. Do
+ not use REGISTER_CONVERT_FROM_TYPE. Use put_frame_register.
+ * i386-tdep.c (I386_EBX_REGNUM, I386_ECX_REGNUM, I386_ESI_REGNUM,
+ I386_EDI_REGNUM): New defines.
+ (i386_next_regnum, i386_convert_register_p,
+ i386_register_to_value, i386_value_to_register): New functions.
+ (i386_register_convertible, i386_register_convert_to_virtual,
+ i386_convert_to_raw): Remove functions.
+ (i386_gdbarch_init): Set convert_register_p, register_to_value and
+ value_to_register instead of register_convertible,
+ register_convert_to_virtual and register_convert_to_raw.
+ * mips-tdep.c (mips_convert_register_p): New function.
+ (mips_value_to_register): Replace mips_register_convert_from_type.
+ (mips_register_to_value): Replace mips_register_convert_to_type.
+ (mips_gdbarch_init): Set conver_register_p, value_to_register and
+ register_to_value.
+ * alpha-tdep.c (alpha_convert_register_p): Update.
+ (alpha_value_to_register): Update, store the register.
+ (alpha_register_to_value): Update, fetch the register.
+
+2003-06-14 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_remote_translate_xfer_address): Delete function.
+ (avr_gdbarch_init): Remove avr_call_dummy_words variable.
+ Don't set deprecated_call_dummy_words.
+ Remove commented out set_gdbarch_believe_pcc_promotion() call.
+ Don't set remote_translate_xfer_address.
+ (avr_io_reg_read_command): Remove commented out debug printf.
+ Wrap a long line.
+
+2003-06-14 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_scan_prologue): Fix to avoid a buffer over run which
+ causes gdb to seg fault.
+
+2003-06-14 Daniel Jacobowitz <drow@mvista.com>
+
+ * sparc-nat.c (fetch_inferior_registers): Correct
+ a reference to "registers".
+
+2003-06-14 Jeroen Dekkers <jeroen@dekkers.cx>
+
+ * Makefile.in (exc_request_U_h): Define
+ (exc_request_S_h): Likewise.
+ (msg_reply_S_h): Likewise.
+ (msg_U_h): Likewise.
+ (notify_S_h): Likewise.
+ (process_reply_S_h): Likewise.
+ (gnu-nat.o): Depend on gdb_obstack_h
+ * gnu-nat.c: Include "gdb_obstack.h".
+
+2003-06-13 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Document what PUSH_DUMMY_CALL replaces.
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+2003-06-13 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Document what UNWIND_DUMMY_ID replaces. Clarify
+ when deprecated REGISTER macros can be deleted.
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+2003-06-13 Jim Blandy <jimb@redhat.com>
+
+ * solib-svr4.c (solib_break_names): Recognize the 64-bit PowerPC
+ Linux entry point symbols for _dl_debug_state, too.
+
+2003-06-13 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): When UNWIND_DUMMY_ID is
+ available, do not use the FP register, and always save the TOS.
+ * dummy-frame.c (dummy_frame_this_id): Do not assert
+ SAVE_DUMMY_FRAME_TOS.
+ * i386-tdep.c (i386_save_dummy_frame_tos): Delete function.
+ (i386_gdbarch_init): Do not set save_dummy_frame_tos.
+ (i386_push_dummy_call): Add 8 to the returned SP.
+ * frame.c (legacy_frame_p): Do not require SAVE_DUMMY_FRAME_TOS.
+ * d10v-tdep.c (d10v_unwind_dummy_id): Use d10v_unwind_sp.
+ (d10v_gdbarch_init): Do not set save_dummy_frame_tos.
+ * x86-64-tdep.c (x86_64_save_dummy_frame_tos): Delete function.
+ (x86_64_push_dummy_call): Return "sp + 16".
+ (x86_64_init_abi): Do not set save_dummy_frame_tos.
+ * alpha-tdep.c (alpha_gdbarch_init): Do not set
+ save_dummy_frame_tos.
+
+2003-06-13 Jim Blandy <jimb@redhat.com>
+
+ * frv-tdep.c (frv_use_struct_convention): Delete static
+ declaration for function deleted in my change of 2003-06-12.
+
+2003-06-13 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_address_to_pointer): Shift code addrs right 1 bit.
+ (avr_pointer_to_address): Shift code addrs left 1 bit.
+ (avr_convert_from_func_ptr_addr): Delete function since operation is
+ better handled by avr_address_to_pointer and avr_pointer_to_address.
+ (avr_gdbarch_init): Don't set convert_from_func_ptr_add method.
+
+2003-06-13 Mark Kettenis <kettenis@gnu.org>
+
+ From Kelley Cook <kelleycook@wideopenwest.com>:
+ * configure.host: Accept i[34567]86 variants.
+ * configure.tgt: Likewise.
+ * nlm/configure.in: Likewise.
+ * nlm/configure: Regenerated.
+
+2003-06-13 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm-tdep.c (solib-svr4.h): Dont' include it.
+ (arm_linux_svr4_fetch_link_map_offsets): Move to ...
+ * arm-linux-tdep.c: ... here. Make static.
+ (arm_linux_init_abi): Register it.
+ (solib-svr4.h): Include it.
+ * Makefile.in: Update dependencies.
+ * config/arm/tm-linux.h (SVR4_FETCH_LINK_MAP_OFFSETS): Delete.
+ (arm_linux_svr4_fetch_link_map_offsets): Delete declaration.
+
+2003-06-13 Corinna Vinschen <vinschen@redhat.com>
+
+ * h8300-tdep.c: Add definitions E_RET0_REGNUM and E_RET1_REGNUM to
+ indicate registers used for return values.
+ (struct frame_extra_info): Drop args_pointer and locals_pointer.
+ (h8300_examine_prologue): Remove initializing dropped frame_extra_info
+ members.
+ (h8300_init_extra_frame_info): Ditto.
+ (h8300_frame_locals_address): Removed.
+ (h8300_frame_args_address): Removed.
+ (h8300_extract_return_value): Use new regcache structure. Only care
+ for 16 bit CPUs.
+ (h8300h_extract_return_value): Same function for 32 bit CPUs.
+ (h8300_store_return_value): Use new regcache structure. Only care
+ for 16 bit CPUs.
+ (h8300h_store_return_value): Same function for 32 bit CPUs.
+ (h8300_store_struct_return): Removed.
+ (h8300_extract_struct_value_address): Use new regcache structure.
+ (h8300h_extract_struct_value_address): Removed.
+ (h8300_push_dummy_code): New function.
+ (h8300_gdbarch_init): Slightly rearranged to stress deprecated calls.
+ Remove call_dummy_words. Call set_gdbarch_extract_return_value and
+ set_gdbarch_store_return_value architecture dependent.
+ Call set_gdbarch_push_dummy_code and
+ set_gdbarch_extract_struct_value_address.
+ Remove calls to set_gdbarch_frame_args_address,
+ set_gdbarch_frame_locals_address,
+ set_gdbarch_deprecated_store_struct_return,
+ set_gdbarch_deprecated_extract_return_value,
+ set_gdbarch_deprecated_extract_struct_value_address,
+ set_gdbarch_deprecated_call_dummy_words and
+ set_gdbarch_deprecated_sizeof_call_dummy_words.
+
+2003-06-13 Corinna Vinschen <vinschen@redhat.com>
+
+ * h8300-tdep.c (h8300_register_byte): Remove.
+ (h8300h_register_byte): Remove.
+ (h8300_register_virtual_type): Remove. Substitute by...
+ (h8300_register_type): New function.
+ (h8300_extract_struct_value_address): Drop usage of h8300_register_byte.
+ (h8300h_extract_struct_value_address): Ditto.
+ (h8300_gdbarch_init): Drop calls to
+ set_gdbarch_deprecated_register_byte and
+ set_gdbarch_deprecated_register_virtual_type.
+ Add call to set_gdbarch_register_type.
+
+2003-06-13 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Update comments on registers.
+ (deprecated_register_byte): Rename register_byte.
+ (deprecated_register_raw_size): Rename register_raw_size.
+ (deprecated_register_virtual_size): Rename register_virtual_size.
+ (deprecated_register_virtual_type): Rename register_virtual_type.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ns32k-tdep.c: Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+
+2003-06-13 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (mips_gdbarch_init): Replace remaining instances of
+ mips_o32_use_struct_convention with always_use_struct_convention.
+
+2003-06-12 David Carlton <carlton@kealia.com>
+
+ * cp-namespace.c (cp_set_block_scope): Comment out
+ processing_has_namespace_info branch.
+
+2003-06-12 Jim Blandy <jimb@redhat.com>
+
+ Recognize and skip 64-bit PowerPC Linux linkage functions.
+ * ppc-linux-tdep.c (insn_d, insn_ds, insn_xfx, read_insn, struct
+ insn_pattern, insns_match_pattern, d_field, ds_field): New
+ functions, macros, and types for working with PPC instructions.
+ (ppc64_standard_linkage, PPC64_STANDARD_LINKAGE_LEN,
+ ppc64_in_solib_call_trampoline, ppc64_standard_linkage_target,
+ ppc64_skip_trampoline_code): New functions, variables, and macros
+ for recognizing and skipping linkage functions.
+ (ppc_linux_init_abi): Use ppc64_in_solib_call_trampoline and
+ ppc64_skip_trampoline_code for the 64-bit PowerPC Linux ABI.
+
+ * ppc-linux-nat.c (ppc_register_u_addr): Correctly compute u-area
+ register offsets for both the 32- and 64-bit interfaces.
+
+ Actually finish the job started by my change of 2003-05-29.
+ * config/powerpc/tm-linux.h (SKIP_TRAMPOLINE_CODE): Remove the
+ other #definition of this.
+ (ppc_linux_skip_trampoline_code): Remove declaration.
+ * ppc-linux-tdep.c (ppc_linux_skip_trampoline_code): Make this
+ static.
+ (ppc_linux_init_abi): Register it as the skip_trampoline_code
+ method for GDBARCH.
+
+ * config/powerpc/nm-ppc64-linux.h (PTRACE_XFER_TYPE): This is
+ 'long' on ppc64-*-linux*.
+
+ * ppc-linux-nat.c (ppc_register_u_addr, fill_gregset): If PT_MQ
+ isn't #defined, assume the register doesn't exist: act as if
+ tdep->ppc_mq_regnum were -1.
+
+ * configure.host, configure.tgt: Add entries for
+ powerpc64-*-linux, selecting powerpc/ppc64-linux.mh and
+ powerpc/linux.mt.
+ * config/powerpc/ppc64-linux.mh, config/powerpc/nm-ppc64-linux.mh:
+ New files.
+
+ * arch-utils.c (always_use_struct_convention): New function.
+ * arch-utils.h (always_use_struct_convention): New prototype.
+ * alpha-tdep.c (alpha_use_struct_convention): Delete.
+ (alpha_gdbarch_init): Register always_use_struct_convention,
+ instead of alpha_use_struct_convention.
+ * cris-tdep.c (cris_use_struct_convention): Delete.
+ (cris_gdbarch_init): Register always_use_struct_convention,
+ instead of cris_use_struct_convention.
+ * frv-tdep.c (frv_use_struct_convention): Delete.
+ (frv_gdbarch_init): Register always_use_struct_convention,
+ instead of frv_use_struct_convention.
+ * h8300-tdep.c (h8300_use_struct_convention): Delete.
+ (h8300_gdbarch_init): Register always_use_struct_convention,
+ instead of h8300_use_struct_convention.
+ * mips-tdep.c (mips_o32_use_struct_convention): Delete.
+ (mips_o32_gdbarch_init): Register always_use_struct_convention,
+ instead of mips_o32_use_struct_convention.
+
+2003-06-12 Andrew Cagney <cagney@redhat.com>
+
+ * wince.c: Include "mips-tdep.h".
+ * mips-tdep.h (mips_next_pc): Declare.
+ * mcore-tdep.c: Make more local functions static.
+ * Makefile.in (wince.o): Update dependencies.
+
+2003-06-12 David Carlton <carlton@kealia.com>
+
+ * symtab.c (lookup_symbol_aux_minsyms): Replace
+ DEPRECATED_SYMBOL_NAME by SYMBOL_LINKAGE_NAME.
+ (find_pc_sect_line, search_symbols, rbreak_command): Ditto.
+ (COMPLETION_LIST_ADD_SYMBOL): Rewrite in terms of
+ SYMBOL_NATURAL_NAME.
+
+2003-06-12 Andreas Schwab <schwab@suse.de>
+
+ * Makefile.in (tuiDisassem.o): Update dependencies.
+
+2003-06-12 David Carlton <carlton@bactrian.org>
+
+ * symtab.h: Delete declaration of make_symbol_overload_list.
+ Add declaration of lookup_partial_symbol.
+ * symtab.c (remove_params): Move to cp-support.c.
+ (overload_list_add_symbol, make_symbol_overload_list)
+ (sym_return_val_size, sym_return_val_index): Ditto.
+ (lookup_partial_symbol): Make extern.
+ * cp-support.h: Add declaration of make_symbol_overload_list.
+ * cp-support.c: Include dictionary.h, objfiles.h, frame.h,
+ symtab.h, and block.h.
+ (remove_params): Move here from symtab.c.
+ (overload_list_add_symbol, make_symbol_overload_list)
+ (sym_return_val_size, sym_return_val_index): Ditto.
+ * valops.c: Include cp-support.h.
+ * Makefile.in (cp-support.o): Depend on dictionary_h, objfiles_h,
+ frame_h, and block_h.
+ (valops.o): Depend on cp_support_h.
+
+2003-06-12 Corinna Vinschen <vinschen@redhat.com>
+
+ * h8300-tdep.c: Add H8SX registers. Drop E_NUM_REGS entirely,
+ substitute by NUM_REGS throughout.
+ (h8300_register_name): Only care for H8/300 and H8/300H registers.
+ (h8300s_register_name): New function for H8S registers.
+ (h8300sx_register_name): Ditto for H8SX registers.
+ (h8300_print_register): Revise register printing, avoid depending
+ on 32 bit long.
+ (h8300_register_byte): Only care for H8/300 registers.
+ (h8300h_register_byte): New function for any other architecture.
+ (h8300_register_raw_size): Remove.
+ (h8300_register_virtual_type): Revise to return actually useful
+ type.
+ (h8300_extract_struct_value_address): Only care for H8/300 registers.
+ (h8300h_extract_struct_value_address): New function for any other
+ architecture.
+ (h8300_gdbarch_init): Add h8300sxn. Call set_gdbarch_num_regs,
+ set_gdbarch_register_name, set_gdbarch_register_byte,
+ set_gdbarch_ptr_bit and set_gdbarch_addr_bit architecture dependent.
+ Remove calls to set_gdbarch_deprecated_register_size,
+ set_gdbarch_deprecated_register_bytes, set_gdbarch_register_raw_size,
+ set_gdbarch_deprecated_max_register_raw_size,
+ set_gdbarch_register_virtual_size and
+ set_gdbarch_deprecated_max_register_virtual_size entirely.
+ Call set_gdbarch_long_long_bit, set_gdbarch_double_bit and
+ set_gdbarch_long_double_bit.
+
+2003-06-11 Jeff Johnston <jjohnstn@redhat.com>
+
+ * doublest.c (convert_doublest_to_floatformat): When dealing
+ with the implied integer bit, only alter mant_bits if we are
+ processing a full 32 bits of mantissa.
+
+2003-06-11 David Carlton <carlton@bactrian.org>
+
+ * dictionary.h: New.
+ * dictionary.c: New.
+ * block.h: Add opaque declaration for struct dictionary.
+ (struct block): Add 'dict' member; delete 'hashtable', 'nsyms',
+ 'sym' members.
+ (BLOCK_DICT): New macro.
+ Delete macros BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM,
+ BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE,
+ BLOCK_SHOULD_SORT.
+ (ALL_BLOCK_SYMBOLS): Update definition.
+ * Makefile.in (SFILES): Add dictionary.c.
+ (dictionary_h): New.
+ (COMMON_OBS): Add dictionary.o.
+ (dictionary.o): New.
+ (ada-lang.o): Depend on dictionary_h.
+ (buildsym.o, coffread.o, jv-lang.o, mdebugread.o, objfiles.o)
+ (stack.o, symmisc.o, symtab.o, tracepoint.o, valops.o)
+ (mi-cmd-stack.o): Ditto.
+ (gdbtk-cmds.o): Update dependencies.
+ (gdbtk-stack.o): Ditto.
+ * ada-lang.c: Include dictionary.h.
+ (symtab_for_sym): Update uses of ALL_BLOCK_SYMBOLS.
+ (fill_in_ada_prototype, debug_print_block): Ditto.
+ (ada_add_block_symbols): Update uses of ALL_BLOCK_SYMBOLS; replace
+ explicit iteration by use of ALL_BLOCK_SYMBOLS. Delete variable
+ 'is_sorted'.
+ * mdebugread.c: Include dictionary.h.
+ (struct parse_stack): Delete 'maxsyms' member.
+ (parse_symbol): Update calls to new_block. Delete calls to
+ shrink_block. Use dictionary methods.
+ (psymtab_to_symtab_1): Delete calls to sort_symtab_syms.
+ Update calls to new_symtab. Don't maintain maxsyms data.
+ (mylookup_symbol): Update use of ALL_BLOCK_SYMBOLS.
+ (add_symbol): Just call dict_add_symbol.
+ (new_symtab): Delete 'maxsyms' argument.
+ (new_symtab): Update calls to new_block.
+ (new_block): Delete 'maxsyms' argument; add 'function' argument.
+ (shrink_block): Delete function.
+ (fixup_sigtramp): Update call to new_block. Add symbol via
+ dict_add_symbol.
+ * jv-lang.c: Include dictionary.h.
+ (get_java_class_symtab): Set the BLOCK_DICT of the blocks
+ appropriately. Set class_symtab->free_func. Make sure the
+ blockvector is big enough to hold two blocks.
+ (add_class_symtab_symbol): Use dictionary methods.
+ (free_class_block): New function.
+ (type_from_class): Replace explicit iteration by
+ ALL_BLOCK_SYMBOLS.
+ * symtab.h (struct symtab): Replace 'free_ptr' method by
+ 'free_func'.
+ * dwarf2read.c (psymtab_to_symtab_1): Delete call to
+ sort_symtab_syms.
+ * dwarfread.c (psymtab_to_symtab_1): Delete call to
+ sort_symtab_syms.
+ * coffread.c (coff_symfile_read): Delete call to sort_symtab_syms.
+ Include dictionary.h.
+ (patch_opaque_types): Update use of ALL_BLOCK_SYMBOLS.
+ * dbxread.c (dbx_psymtab_to_symtab_1): Delete call to
+ sort_symtab_syms.
+ * objfiles.c: Include dictionary.h.
+ (objfile_relocate): Update use of ALL_BLOCK_SYMBOLS.
+ * buildsym.c: Include dictionary.h.
+ (finish_block): Use dictionary methods.
+ (end_symtab): Set free_func to NULL, not free_ptr.
+ * tracepoint.c: Include dictionary.h.
+ (add_local_symbols): Update use of ALL_BLOCK_SYMBOLS.
+ (scope_info): Ditto.
+ * stack.c: Include dictionary.h.
+ (print_block_frame_locals): Update use of ALL_BLOCK_SYMBOLS.
+ (print_block_frame_labels, print_frame_arg_vars)
+ (print_frame_args): Ditto.
+ * symmisc.c (free_symtab_block): Use dictionary methods.
+ (dump_symtab): Ditto.
+ (free_symtab): Replace use of 'free_ptr' by 'free_func'.
+ Include dictionary.h.
+ * symfile.h: Delete declarations of sort_block_syms,
+ sort_symtab_syms.
+ * symfile.c (sort_block_syms): Delete.
+ (sort_symtab_syms): Delete.
+ * symtab.c: Include dictionary.h.
+ (lookup_block_symbol): Use dictionary iterators.
+ (find_pc_sect_symtab): Update use of ALL_BLOCK_SYMBOLS.
+ (search_symbols, make_symbol_completion_list): Ditto.
+ (make_symbol_overload_list): Ditto.
+ * valops.c (value_of_local): Use dict_empty.
+ Include dictionary.h.
+
+2003-06-11 J. Brobecker <brobecker@gnat.com>
+
+ * win32-nat.c (solib_symbols_add): Fix a small compilation error.
+
+2003-06-11 David Carlton <carlton@bactrian.org>
+
+ * block.h (BLOCK_SHOULD_SORT): Delete.
+ * symtab.c (lookup_block_symbol): Don't worry about sorted linear
+ blocks.
+ * ada-lang.c (ada_add_block_symbols): Ditto.
+ * symfile.c (sort_block_syms): Delete.
+ (sort_symtab_syms): Ditto.
+ * symfile.h: Delete sort_symtabs_syms and sort_block_syms
+ declarations.
+ * coffread.c (coff_symfile_read): Don't call sort_symtab_syms.
+ * dbxread.c (dbx_psymtab_to_symtab_1): Ditto.
+ * dwarf2read.c (psymtab_to_symtab_1): Ditto.
+ * dwarfread.c (psymtab_to_symtab_1): Ditto.
+ * hpread.c (hpread_psymtab_to_symtab_1): Ditto.
+ * mdebugread.c (psymtab_to_symtab_1): Ditto.
+ * xcoffread.c (xcoff_psymtab_to_symtab_1): Ditto.
+
+2003-06-11 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-tdep.c (ia64_gdbarch_init): Set number of long double
+ bits to 128.
+
+2003-06-11 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_REGISTER_CONVERTIBLE): Deprecate
+ REGISTER_CONVERTIBLE.
+ (DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL): Same.
+ (DEPRECATED_REGISTER_CONVERT_TO_RAW): Same, make "from" constant.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * arch-utils.h (deprecated_register_convertible_not): Rename
+ generic_register_convertible_not.
+ * arch-utils.c (deprecated_register_convertible_not): Rename
+ generic_register_convertible.
+ (legacy_convert_register_p, legacy_register_to_value): Update.
+ * sh-tdep.c (sh64_push_arguments): Update.
+ * m68klinux-tdep.c (m68k_linux_extract_return_value): Update.
+ * config/m68k/tm-delta68.h (DEPRECATED_EXTRACT_RETURN_VALUE): Update.
+ * m68klinux-tdep.c (m68k_linux_store_return_value): Update.
+ * config/m68k/tm-delta68.h (DEPRECATED_STORE_RETURN_VALUE): Update.
+ * arch-utils.c (legacy_value_to_register): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ (rs6000_register_convert_to_raw): Make parameter "from" const.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ (mips_register_convert_to_raw): Make parameter"virt_buf" const.
+ * infcmd.c (default_print_registers_info): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ (ia64_register_convert_to_raw): Make parameter "from" const.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ (i386_register_convert_to_raw): Update.
+
+2003-06-11 Andrew Cagney <cagney@redhat.com>
+
+ * remote-fileio.c: Include "remote-fileio.h".
+ * Makefile.in (remote-fileio.o): Update dependencies.
+ (remote_fileio_h): Fix typo.
+
+2003-06-11 Andrew Cagney <cagney@redhat.com>
+
+ * xstormy16-tdep.c (xstormy16_push_return_address): Make static.
+ (xstormy16_save_dummy_frame_tos): Make static.
+ (_initialize_xstormy16_tdep): Add declaration.
+ * vax-tdep.c (_initialize_vax_tdep): Add declaration.
+ * v850-tdep.c: Make local functions static.
+ (_initialize_v850_tdep): Add declaration.
+ * sparc-tdep.c: Make local functions static.
+ (_initialize_sparc_tdep): Add declaration.
+ * sh-tdep.c: Make local functions static.
+ (_initialize_sh_tdep): Add declaration.
+ * sh3-rom.c (_initialize_sh3_rom): Add declaration.
+ * s390-tdep.c: Make local functions static.
+ (_initialize_s390_tdep): Add declaration.
+ * dbxread.c (find_stab_function_addr): Make static.
+ * ppc-bdm.c (_initialize_bdm_ppc): Add declaration.
+ * ocd.c (_initialize_remote_ocd): Add declaration.
+ * dink32-rom.c (_initialize_dink32_rom): Add declaration.
+ * ppcbug-rom.c (_initialize_ppcbug_rom): Add declaration.
+ * ns32k-tdep.c (_initialize_ns32k_tdep): Add declaration.
+ * ns32knbsd-tdep.c (_initialize_ns32knbsd_tdep): Add declaration.
+ * mips-tdep.c (_initialize_mips_tdep): Add declaration.
+ * remote-array.c (_initialize_array): Add declaration.
+ (_initialize_remote_monitors): Add declaration.
+ * remote-mips.c: Make local functions static.
+ (_initialize_remote_mips): Add declaration.
+ * mcore-tdep.c: Make all local functions static.
+ (_initialize_mcore_tdep): Add declaration.
+ * dbug-rom.c (_initialize_dbug_rom): Add declaration.
+ * abug-rom.c (_initialize_abug_rom): Add declaration.
+ * rom68k-rom.c (_initialize_rom68k): Add declaration.
+ * cpu32bug-rom.c (_initialize_cpu32bug_rom): Add declaration.
+ * m68k-tdep.c (_initialize_m68k_tdep): Add declaration.
+ * remote-est.c (_initialize_est): Add declaration.
+ * m68hc11-tdep.c (_initialize_m68hc11_tdep): Add declaration.
+ (m68hc11_call_dummy_address): Make static.
+ * ia64-tdep.c: Make local functions static.
+ (_initialize_ia64_tdep): Add declaration.
+ * solib-legacy.c (_initialize_svr4_lm): Add declaration.
+ * monitor.c (monitor_wait_filter): Make static.
+ (_initialize_remote_monitors): Add declaration.
+ * remote-hms.c (_initialize_remote_hms): Add declaration.
+ * remote-e7000.c (fetch_regs_from_dump): Make static.
+ (expect_n): Make static.
+ (_initialize_remote_e7000): Add declaration.
+ * ser-e7kpc.c: Always include "defs.h".
+ (_initialize_ser_e7000pc): Add declaration.
+ * h8300-tdep.c (_initialize_h8300_tdep): Add declaration.
+ * cris-tdep.c: Make all but one function static.
+ (_initialize_cris_tdep): Add declaration.
+ * solib-svr4.c (_initialize_svr4_solib): Add declaration.
+ * solib.c (update_solib_list): Make static.
+ (_initialize_solib): Add declaration.
+ * avr-tdep.c (avr_breakpoint_from_pc): Make static.
+ (_initialize_avr_tdep): Add declaration.
+ * remote-rdi.c (voiddummy): Make static.
+ (_initialize_remote_rdi): Add declaration.
+ * arm-tdep.c (_initialize_arm_tdep): Add declaration.
+ * remote-rdp.c (send_rdp): Make static.
+ (_initialize_remote_rdp): Add declaration.
+ * alpha-tdep.c (_initialize_alpha_tdep): Add declaration.
+
+2003-06-11 Corinna Vinschen <vinschen@redhat.com>
+
+ * remote-fileio.c: Make ari happy.
+
+2003-06-10 J. Brobecker <brobecker@gnat.com>
+
+ * rs6000-nat.c (child_xfer_memory): Compute the right address when
+ fetching the trailing bytes of the buffer we are about to write.
+
+2003-06-10 Andrew Cagney <cagney@redhat.com>
+
+ * remote-fileio.h (REMOTE_FILEIO_H): Replace FILEIO_H.
+ * Makefile.in (remote-fileio.o): Update dependencies.
+ * remote-fileio.c: Include "gdb_wait.h" and "gdb_stat.h". Do not
+ include <setjmp.h>, or <sys/types.h> conditional on USG.
+ (remote_fio_jmp_buf): Delete global variable.
+
+2003-06-10 Corinna Vinschen <vinschen@redhat.com>
+ Martin M. Hunt <hunt@redhat.com>
+
+ * Makefile.in (REMOTE_OBS): Add remote-fileio.o
+ (SFILES): Add remote-fileio.c.
+ Add dependencies for building remote-fileio.o. Add remote-fileio.h to
+ dependencies for building remote.o.
+ * remote-fileio.c: New file implementing the remote File-I/O protocol.
+ * remote-fileio.h: New header file defining remote File-I/O interface.
+ * remote.c (remote_write_bytes, remote_read_bytes): Remove
+ static storage class.
+ (remote_wait, remote_async_wait): Call remote_fileio_request() on
+ 'F' packet.
+ (_initialize_remote): Call initialize_remote_fileio().
+ * remote.h: Declare remote_write_bytes() and remote_read_bytes().
+ * defs.h: Declare gdb_stdin, gdb_stdtargerr and gdb_stdtargin.
+ * main.c: New ui_file gdb_stdin, gdb_stdtargerr and gdb_stdtargin.
+ (captured_main): Initialize new ui_files.
+ * ui-file.c: Add read and fgets input functions.
+ (ui_file_new): set ui_file_fputs and ui_file_read to null functions.
+ (null_file_read): New function.
+ (ui_file_read): New function.
+ (set_ui_file_read): New function.
+ (stdio_file_read): New function.
+ * ui-file.h: New type ui_file_read_ftype.
+ (set_ui_file_read): Declare.
+ (ui_file_read): Declare.
+
+2003-06-09 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h (deprecated_unwind_get_saved_register): Rename
+ generic_unwind_get_saved_register, update comments.
+ * mips-tdep.c (mips_get_saved_register): Update.
+ * frame.c (deprecated_unwind_get_saved_register): Update.
+
+2003-06-09 Andrew Cagney <cagney@redhat.com>
+
+ * vax-tdep.c (vax_frame_locals_address): Delete function.
+ (vax_gdbarch_init): Do not set frame_locals_address.
+ * m68hc11-tdep.c (m68hc11_frame_locals_address): Delete function.
+ (m68hc11_gdbarch_init): Do not set frame_locals_address.
+ * s390-tdep.c (s390_frame_args_address): Delete function.
+ (s390_gdbarch_init): Do not set frame_args_address or
+ frame_locals_address.
+ * ns32k-tdep.c (ns32k_frame_locals_address): Delete.
+ (ns32k_gdbarch_init): Do not set frame_locals_address.
+ * hppa-tdep.c (hppa_frame_args_address): Delete function.
+ (hppa_frame_locals_address): Delete function.
+ (hppa_gdbarch_init): Do not set frame_args_address, or
+ frame_locals_address.
+ * arm-tdep.c (arm_frame_args_address): Delete.
+ (arm_frame_locals_address): Delete.
+ (arm_gdbarch_init): Do not set frame_args_address, or
+ frame_locals_address.
+
+2003-06-09 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (FRAME_NUM_ARGS): Change to function with predicate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * arch-utils.h (frame_num_args_unknown): Delete both declarations.
+ * arch-utils.c (frame_num_args_unknown): Delete function.
+ * stack.c (print_args_stub): Use FRAME_NUM_ARGS_P.
+ (frame_info): Use FRAME_NUM_ARGS_P.
+ * arm-tdep.c (arm_frame_num_args): Delete function.
+ (arm_gdbarch_init): Do not set frame_num_args.
+ * config/pa/tm-hppa64.h (FRAME_NUM_ARGS): Delete.
+ * hppa-tdep.c (hppa_frame_num_args): Delete function.
+ (hppa_gdbarch_init): Do not set frame_num_args.
+ * config/sparc/tm-sparc.h (FRAME_NUM_ARGS): Delete.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
+ frame_num_args to default frame_num_args_unknown.
+ * v850-tdep.c (v850_gdbarch_init): Ditto.
+ * sparc-tdep.c (sparc_gdbarch_init): Ditto.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * mips-tdep.c (mips_gdbarch_init): Ditto.
+ * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+ * m68k-tdep.c (m68k_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * i386-tdep.c (i386_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * avr-tdep.c (avr_gdbarch_init): Ditto.
+ * alpha-tdep.c (alpha_gdbarch_init): Ditto.
+
+2003-06-09 Andrew Cagney <cagney@redhat.com>
+
+ * printcmd.c (print_frame_nameless_args): Moved to "stack.c".
+ (print_frame_args): Moved to "stack.c".
+ * stack.c: Include "gdb_assert.h".
+ (print_frame_nameless_args): Moved from "printcmd.c", made static.
+ (print_frame_args): Moved from "printcmd.c".
+ * frame.h (print_frame_args): Delete declaration.
+ * Makefile.in (stack.o): Update dependencies.
+
+2003-06-08 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_prev_frame): Remove reference to
+ frame_args_address_correct in comments.
+ * frame-base.c (default_frame_args_address): Delete code
+ conditional on FRAME_ARGS_ADDRESS_CORRECT.
+ * vax-tdep.c (vax_frame_args_address_correct): Delete.
+ (vax_frame_args_address): Merge in vax_frame_args_address_correct.
+ * config/vax/tm-vax.h (FRAME_ARGS_ADDRESS_CORRECT): Delete
+ (vax_frame_args_address_correct): Delete declaration.
+
+2003-06-08 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (UNWIND_SP): Add.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * frame.c (frame_sp_unwind): New function.
+ (get_frame_sp): New function.
+ * frame.h (get_frame_sp, frame_sp_unwind): Declare.
+ * regcache.c (read_sp): Rewrite, try each of TARGET_READ_SP,
+ gdbarch_unwind_sp and SP_REGNUM when looking for the SP register
+ value.
+ * d10v-tdep.c (d10v_unwind_sp): Replace d10v_read_sp.
+ (d10v_gdbarch_init): Set unwind_sp instead of read_sp.
+
+2003-06-08 Andrew Cagney <cagney@redhat.com>
+
+ Deprecate BIG_REMOTE_BREAKPOINT, LITTLE_REMOTE_BREAKPOINT and
+ REMOTE_BREAKPOINT.
+ * remote.c: Update.
+ * config/sh/tm-sh.h (DEPRECATED_BIG_REMOTE_BREAKPOINT): Update.
+ (DEPRECATED_LITTLE_REMOTE_BREAKPOINT): Update.
+ * config/m68k/tm-sun3.h: Update.
+ * config/m68k/tm-m68klynx.h: Update.
+ * config/h8300/tm-h8300.h (DEPRECATED_REMOTE_BREAKPOINT): Update.
+
+ * trad-frame.h (struct trad_frame_saved_reg): Rename "struct
+ trad_frame". Update comments.
+ * d10v-tdep.c (struct d10v_unwind_cache): Update.
+ * trad-frame.c (trad_frame_alloc_saved_regs): Update.
+ (trad_frame_register_value, trad_frame_prev_register): Update.
+
+2003-06-08 Andrew Cagney <cagney@redhat.com>
+
+ * acinclude.m4 (gcc_AC_CHECK_DECL, (gcc_AC_CHECK_DECL): Stolen
+ from GCC's acinclude.m4.
+ * configure.in: Check for getopt's delcaration.
+ * aclocal.m4, config.in, configure: Re-generate.
+ * main.c (error_init): Delete declaration.
+ * defs.h (error_init): Declare.
+ * rs6000-tdep.c (rs6000_fetch_pointer_argument): Make static.
+ (rs6000_convert_from_func_ptr_addr): Make static.
+ (_initialize_rs6000_tdep): Add declaration.
+ * cli/cli-cmds.c (dont_repeat): Delete declaration.
+ (show_commands, set_verbose, show_history): Delete declaration.
+ * top.h (set_verbose): Add declaration.
+ (show_history, set_history, show_commands): Add declaration.
+ (do_restore_instream_cleanup): Add declaration.
+ * objc-lang.c (specialcmp): Make static.
+ (print_object_command): Make static.
+ (find_objc_msgsend): Make static.
+ (find_objc_msgcall_submethod_helper): Make static.
+ (find_objc_msgcall_submethod): Make static.
+ (_initialize_objc_language): Add declaration.
+ (find_implementation_from_class): Make static.
+ (find_implementation): Make static.
+ * objc-exp.y (yylex): Delete lookup_struct_typedef declaration.
+ * objc-lang.h (lookup_struct_typedef): Add declaration.
+ * cli/cli-interp.c (_initialize_cli_interp): Add declaration.
+ * cli/cli-script.c (clear_hook_in_cleanup): Make static.
+ (do_restore_user_call_depth): Make static.
+ (do_restore_instream_cleanup): Delete declaration.
+ (dont_repeat): Delete declaration.
+ * cli/cli-decode.c (add_abbrev_cmd): Delete function.
+ * cli/cli-dump.c (_initialize_cli_dump): Add declaration.
+ * reggroups.c (_initialize_reggroup): Add declaration.
+ * cp-support.c (_initialize_cp_support): Add declaration.
+ * cp-abi.c (_initialize_cp_abi): Add declaration.
+ * hpacc-abi.c (_initialize_hpacc_abi): Add declaration.
+ * gnu-v3-abi.c (gnuv3_baseclass_offset): Make static.
+ (_initialize_gnu_v3_abi): Add declaration.
+ * gnu-v2-abi.c (gnuv2_value_rtti_type): Make static.
+ (_initialize_gnu_v2_abi): Add declaration.
+ * frame-base.c (_initialize_frame_base): Add declaration.
+ * doublest.c (floatformat_from_length): Make static.
+ * frame-unwind.c (_initialize_frame_unwind): Add declaration.
+ * frame.c (create_sentinel_frame): Make static.
+ (_initialize_frame): Add declaration.
+ * top.c (do_catch_errors): Make static.
+ (gdb_rl_operate_and_get_next_completion): Make static.
+ * typeprint.c: Include "typeprint.h".
+ * sentinel-frame.c (sentinel_frame_prev_register): Make static.
+ (sentinel_frame_this_id): Make static.
+ * p-valprint.c (_initialize_pascal_valprint): Add declaration.
+ * ui-out.c (make_cleanup_ui_out_begin_end): Delete function.
+ * dwarf2-frame.c (dwarf2_frame_cache): Make static.
+ * p-exp.y (push_current_type, pop_current_type): ISO C declaration.
+ * dwarf2expr.h (dwarf_expr_context): ISO C declaration.
+ * maint.c (maintenance_print_architecture): Make static.
+ * signals/signals.c (_initialize_signals): Add declaration.
+ * std-regs.c (_initialize_frame_reg): Add declaration.
+ * jv-exp.y (push_variable): ISO C definition.
+ (push_qualified_expression_name): Ditto.
+ * memattr.c (_initialize_mem): Add declaration.
+ * remote.c (remote_check_watch_resources): Make static.
+ (remote_stopped_by_watchpoint): Make static.
+ (remote_stopped_data_address): Make static.
+ * d10v-tdep.c (nr_dmap_regs): Make static.
+ (a0_regnum): Make static.
+ (d10v_frame_unwind_cache): Make static.
+ (d10v_frame_p): Make static.
+ * osabi.c (show_osabi): Make static.
+ (_initialize_gdb_osabi): Add extern declaration.
+ * gdbtypes.c (make_qualified_type): Make static.
+ (safe_parse_type): Make static.
+ * macrocmd.c (_initialize_macrocmd): Add extern declaration.
+ * macrotab.c (macro_bcache_free): Make static.
+ * interps.c (interp_set_quiet): Make static.
+ (interpreter_exec_cmd): Make static.
+ * stack.h (select_frame_command): New file.
+ * stack.c: Include "stack.h".
+ (select_frame_command_wrapper): Delete function.
+ (select_frame_command): Make global.
+ * infcall.c: Include "infcall.h".
+ * linespec.c: Include "linespec.h".
+ * symfile.c (sections_overlap): Make static.
+ * cp-support.h (cp_initialize_namespace): ISO C declaration.
+ * charset.c (_initialize_charset): Add missing prototype.
+ * regcache.c (init_legacy_regcache_descr): Make static.
+ (do_regcache_xfree): Make static.
+ (regcache_xfer_part): Make static.
+ (_initialize_regcache): Add missing prototype.
+ * breakpoint.c (parse_breakpoint_sals): Make static.
+ (breakpoint_sals_to_pc): Make static.
+ * interps.h (clear_interpreter_hooks): ISO C declaration.
+ * Makefile.in (stack_h): Define.
+ (stack.o, typeprint.o, mi-main.o): Update dependencies.
+ (mi-cmd-stack.o, infcall.o, linespec.o): Update dependencies.
+
+2003-06-08 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (d10v-tdep.o): Update dependencies.
+ (SFILES): Add trad-frame.c.
+ (trad_frame_h): Define.
+ (COMMON_OBS): Add trad-frame.o.
+ (trad-frame.o): Specify dependencies.
+ * d10v-tdep.c: Include "trad-frame.h".
+ (saved_regs_unwinder): Delete function.
+ (d10v_frame_prev_register): Use trad_frame_prev_register.
+ (struct d10v_unwind_cache): Change type of "saved_regs" to "struct
+ trad_frame", delete "regs" and "prev_sp".
+ (prologue_find_regs): Use trad-frame.
+ * trad-frame.h, trad-frame.c: New files.
+
+2003-06-08 Mark Kettenis <kettenis@gnu.org>
+
+ * dwarf2cfi.c, dwarf2cfi.h: Remove.
+
+2003-06-07 Adam Fedor <fedor@gnu.org>
+
+ * gdb/objc-lang.c (FETCH_ARGUMENT): Remove macro.
+ (OBJC_FETCH_POINTER_ARGUMENT): Shorthand macro for
+ using FETCH_POINTER_ARGUMENT with Objective-C method arguments.
+ (find_implementation, resolve_msgsend, resolve_msgsend_stret,
+ resolve_msgsend_super, resolve_msgsend_super_stret):
+ Use it.
+
+2003-06-07 Andrew Cagney <cagney@redhat.com>
+
+ * symfile.h: Re-indent, clean up comments.
+
+2003-06-07 Andrew Cagney <cagney@redhat.com>
+
+ * inferior.h (deprecated_write_sp): Replace
+ generic_target_write_sp.
+ * regcache.c (deprecated_write_sp): Replace
+ generic_target_write_sp.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * config/pa/tm-hppa.h (DEPRECATED_DUMMY_WRITE_SP): Update.
+
+2003-06-07 Andrew Cagney <cagney@redhat.com>
+
+ * dwarf2-frame.c (dwarf2_frame_cache): Add comments on PC_REGNUM.
+ Assert that PC_REGNUM is valid.
+ (dwarf2_frame_prev_register): Add comments on SP_REGNUM.
+
+2003-06-07 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (TARGET_READ_SP): Add predicate, delete default.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * mn10300-tdep.c: Include "gdb_assert.h".
+ (mn10300_read_fp): New function.
+ (mn10300_gdbarch_init): Set deprecated_target_read_fp to
+ mn10300_read_fp. Do not set read_sp to generic_target_read_sp.
+ * ia64-tdep.c: Include "gdb_assert.h".
+ (ia64_read_fp): New function.
+ (ia64_gdbarch_init): Set deprecated_target_read_fp to
+ ia64_read_sp. Do not set read_sp to generic_target_read_sp.
+ * regcache.c (generic_target_read_sp): Delete function.
+ (read_sp): Try TARGET_READ_SP and SP_REGNUM for the SP register.
+ * inferior.h (generic_target_read_sp): Delete declaration.
+ * frv-tdep.c (frv_gdbarch_init): Do not set read_sp to
+ generic_target_read_sp.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * sparc-tdep.c (sparc_gdbarch_init): Ditto
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * Makefile.in (mn10300-tdep.o, ia64-tdep.o): Update dependencies.
+
+2003-06-07 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Comment each field of startup_gdbarch.
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+2003-06-07 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (TARGET_READ_PC): Add predicate, remove default.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * regcache.c: Update comments on read_pc et.al.
+ (generic_target_read_pc): Delete function.
+ (read_pc_pid): Try TARGET_READ_PC and PC_REGNUM for a PC register.
+ * inferior.h (generic_target_read_pc): Delete declaration.
+ * frv-tdep.c (frv_gdbarch_init): Do not set read_pc to
+ generic_target_read_pc.
+ * sparc-tdep.c (sparc_gdbarch_init): Ditto.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+
+2003-06-07 Andrew Cagney <cagney@redhat.com>
+
+ * elfread.c (elf_symtab_read): Replace "special_local_sym_p" and
+ "index" with "special_local_sect". Use strcmp instead of STREQ.
+ Append period to coments.
+
+2003-06-06 Mark Mitchell <mark@codesourcery.com>
+
+ * elfread.c (elf_symtab_read): Avoid use of SECT_OFF_MAX.
+ (elfstab_offset_sections): Likewise.
+ * gdb-stabs.h (stab_section_info): Likewise.
+ * i386-interix-tdep.c (pei_adjust_objfile_offsets): Likewise.
+ * objfiles.c (objfile_relocate): Likewise.
+ * pa64solib.c (pa64_solib_add_solib_objfile): Likewise.
+ * remote.c (get_offsets): Likewise.
+ (remote_cisco_objfile_relocate): Likewise.
+ * somread.c (som_symfile_offsets): Likewise.
+ * symfile.c (alloc_section_addr_info): New function.
+ (build_section_addr_info_from_section_tab): Use it.
+ (free_section_addr_info): Adjust.
+ (default_symfile_offsets): Avoid use of SECT_OFF_MAX.
+ (syms_from_objfile): Allocate local_addr dynamically.
+ (symbol_file_add_with_addrs_or_offsets): Allocate orig_addrs
+ dynamically.
+ (add_symbol_file_command): Allocate sect_opts dynamically.
+ (reread_symbols): Avoid use of SECT_OFF_MAX.
+ * symfile.h (section_addr_info): Do not use MAX_SECTIONS.
+ (alloc_section_addr_info): Declare it.
+ * symtab.h (SIZEOF_SECTION_OFFSETS): Remove.
+ * win32-nat.c (solib_symbols_add): Allocate section_addrs
+ dynamically.
+ * xcoffread.c (xcoff_symfile_offsets): Avoid use of SECT_OFF_MAX.
+
+2003-06-06 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (struct d10v_unwind_cache): Delete "return_pc".
+ (d10v_frame_unwind_cache): Do not set "return_pc".
+
+2003-06-06 Michael Snyder <msnyder@redhat.com>
+
+ * h8300-tdep.c: Make tidy (long lines).
+
+2003-06-06 Michal Ludvig <mludvig@suse.cz>
+
+ * x86-64-tdep.c (x86_64_fill_fxsave): Pass correct regnums
+ to regcache_collect().
+
+2003-06-05 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-hpux-tdep.c (hppa_hpux_init_abi): New function, setting
+ pc_in_sigtramp multiarch method.
+ (hppa_hpux_som_init_abi): Use it.
+ (hppa_hpux_elf_init_abi): Likewise.
+ * config/pa/tm-hppah.h (PC_IN_SIGTRAMP): Remove, now that this
+ macro has been multiarched.
+ * config/pa/tm-hppa64.h (PC_IN_SIGTRAMP): Temporarily set this
+ macro here, as hppa64 isn't multiarched yet.
+
+2003-06-05 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (value_h): Add $(frame_h).
+ * value.h: Include "frame.h".
+ (struct value): Replace "frame_addr" with "frame_id".
+ (VALUE_FRAME_ID): Replace VALUE_FRAME.
+ * values.c (allocate_value): Use VALUE_FRAME_ID.
+ (value_copy): Use VALUE_FRAME_ID.
+ * findvar.c (value_from_register): Use VALUE_FRAME_ID.
+ * valops.c (value_assign): Update. Use frame_find_by_id.
+
+2003-06-05 Michal Ludvig <mludvig@suse.cz>
+
+ * x86-64-tdep.c (x86_64_push_arguments): Don't clear offset
+ in each pass.
+
+2003-06-05 Jeff Johnston <jjohnstn@redhat.com>
+
+ * thread-db.c (check_event): For create/death event breakpoints,
+ loop through all messages to ensure that we read the message
+ corresponding to the breakpoint we are at.
+
+2003-06-04 Michael Snyder <msnyder@redhat.com>
+
+ * h8300-tdep.c (h8300_gdbarch_init): Add h8300hn, h8300sn.
+
+2003-06-04 Mark Kettenis <kettenis@gnu.org>
+
+ * dwarf2-frame.c (struct comp_unit): Add member `dbase'.
+ (read_encoded_value): Handle DW_EH_PE_datarel encoding.
+ (dwarf2_build_frame_info): Set base for DW_EH_PE_datarel encodings
+ when handling .eh_frame sections.
+
+2003-06-04 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/nm-hppah.h (PREPARE_TO_PROCEED): Use the generic
+ prepare_to_proceed procedure instead of the hppa-specific one.
+ * hppa-tdep.c (hppa_prepare_to_proceed): Remove, no longer used.
+
+2003-06-04 Jeff Johnston <jjohnstn@redhat.com>
+
+ * acconfig.h: Add HAVE_TKILL_SYSCALL definition check.
+ * config.in: Regenerated.
+ * configure.in: Add test for syscall function and check for
+ __NR_tkill macro in <syscall.h> to set HAVE_TKILL_SYSCALL.
+ * configure: Regenerated.
+ * lin-lwp.c [HAVE_TKILL_SYSCALL]: Include <unistd.h> and
+ <sys/syscall.h>.
+ (kill_lwp): New function that uses tkill syscall or
+ uses kill, depending on whether threading model is nptl or not.
+ All callers of kill() changed to use kill_lwp().
+ (lin_lwp_wait): Make special check when WIFEXITED occurs to
+ see if all threads have already exited in the nptl model.
+ (stop_and_resume_callback): New callback function used by the
+ lin_lwp_wait thread exit handling code.
+ (stop_wait_callback): Check for threads already having exited and
+ delete such threads fromt the lwp list when discovered.
+ (stop_callback): Don't assert retcode of kill call.
+
+ Roland McGrath <roland@redhat.com>
+ * i386-linux-nat.c (ps_get_thread_area): New function needed by
+ nptl libthread_db.
+
+2003-06-03 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_next_pc): Use alpha_read_insn.
+ (alpha_sigtramp_frame_this_id): Use get_frame_memory.
+ (alpha_sigtramp_frame_prev_register): Likewise.
+ (alpha_heuristic_frame_prev_register): Likewise.
+ * alpha-mdebug-tdep.c (alpha_mdebug_frame_prev_register): Likewise.
+
+ * alpha-mdebug-tdep.c (alpha_mdebug_after_prologue): Use
+ alpha-specific register id names.
+ (alpha_mdebug_frame_unwind_cache): Likewise.
+ (alpha_mdebug_frame_prev_register): Likewise.
+
+2003-06-03 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_dwarf2_init_abi): New.
+ * alpha-tdep.h (alpha_dwarf2_init_abi): Declare it.
+ * alpha-linux-tdep.c (alpha_linux_init_abi): Use it.
+ * alphafbsd-tdep.c (alphafbsd_init_abi): Register dwarf2 and mdebug
+ unwind routines.
+ * alphanbsd-tdep.c (alphanbsd_init_abi): Likewise.
+ * config/alpha/fbsd.mt (TDEPFILES): Add alpha-mdebug-tdep.o.
+ * config/alpha/nbsd.mt (TDEPFILES): Likewise.
+
+ * alpha-linux-tdep.c: Remove unnecessary includes.
+ * Makefile.in (alpha-linux-tdep.o): Update.
+
+2003-06-03 Richard Henderson <rth@redhat.com>
+
+ * alphabsd-tdep.c (alphabsd_supply_fpreg): Fix typo last change.
+ (alphabsd_fill_fpreg): Likewise.
+
+2003-06-03 J. Brobecker <brobecker@gnat.com>
+
+ * alphanbsd-tdep.c (alphanbsd_sigcontext_addr): Replace
+ references to struct frame_info fields by calls to the equivalent
+ accessors. Necessary now that frame_info is opaque.
+
+2003-06-03 J. Brobecker <brobecker@gnat.com>
+
+ * alphanbsd-tdep.c (alphanbsd_skip_sigtramp_frame): Delete.
+ (alphanbsd_init_abi): Do not set skip_sigtramp_frame in tdep
+ structure, field no longer exists.
+
+2003-06-03 J. Brobecker <brobecker@gnat.com>
+
+ * config/alpha/alpha-osf1.mt (TDEPFILES): Add alpha-mdebug-tdep.o.
+ * alpha-osf1-tdep.c (alpha_osf1_init_abi): Enable the mdebug module.
+
+2003-06-03 J. Brobecker <brobecker@gnat.com>
+
+ * alpha-osf1-tdep.c (alpha_osf1_sigcontext_addr): Replace
+ references to struct frame_info fields by calls to the equivalent
+ accessors. Necessary now that frame_info is opaque.
+
+2003-06-03 J. Brobecker <brobecker@gnat.com>
+
+ * alpha-osf1-tdep.c (alpha_osf1_skip_sigtramp_frame): Delete.
+ (alpha_osf1_init_abi): Do not set skip_sigtramp_frame in tdep
+ structure, field no longer exists.
+
+2003-06-03 Theodore A. Roth <troth@openavr.org>
+
+ * remote.c (init_remote_state): Compute sizeof_g_packet by
+ accumulation of the size of all registers instead of blindly using
+ DEPRECATED_REGISTER_BYTES.
+
+2003-06-03 Michael Snyder <msnyder@redhat.com>
+
+ * config/h8300/tm-h8300.h (h8300sxmode): Declare.
+ * h8300-tdep.c (h8300_gdbarch_init): Set machine mode
+ for h8300sx.
+
+2003-06-03 J. Brobecker <brobecker@gnat.com>
+
+ * alpha-osf1-tdep.c (objfiles.h): #include, needed for symfile_objfile.
+ * Makefile.in (alpha-osf1-tdep.o): Update dependencies.
+
+2003-06-03 Andrew Cagney <cagney@redhat.com>
+
+ * sparc-tdep.c (sparc_convert_to_virtual): Delete function.
+ (sparc_convert_to_raw): Delete function.
+ (sparc_gdbarch_init): Do not set register_convert_to_raw or
+ register_convert_to_virtual.
+
+2003-06-03 Jeff Johnston <jjohnstn@redhat.com>
+
+ * thread-db.c (thread_db_mourn_inferior): Unpush thread target
+ layer if not dealing with a statically-linked threaded program.
+
+2003-06-03 Kris Warkentin <kewarken@qnx.com>
+
+ * solib.c (solib_open): Update comment to reflect actual search order.
+
+2003-06-03 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_frame_memory_signed): New function.
+ (get_frame_memory, get_frame_memory_unsigned): New function.
+ (get_frame_arch): New function.
+ * frame.h (get_frame_signed_memory, get_frame_arch): Declare.
+ (get_frame_memory, get_frame_unsigned_memory): Declare.
+ * d10v-tdep.c (d10v_frame_unwind_cache): Use
+ get_frame_memory_unsigned and get_frame_arch.
+ (d10v_frame_unwind_cache, saved_regs_unwinder): Ditto.
+
+2003-06-03 Raoul Gough <RaoulGough@yahoo.co.uk>
+
+ * MAINTAINERS (write after approval): Add myself.
+
+2003-06-03 Jim Blandy <jimb@redhat.com>
+
+ * s390-nat.c (supply_gregset, fill_gregset): On the s390x, the
+ elements of gregset_t are 64 bits each, but access registers
+ are still 32 bits, so they're packed two per gregset_t
+ element. Unpack/pack them properly.
+
+2003-06-02 David Carlton <carlton@bactrian.org>
+
+ * linespec.c (find_methods): Break out code into
+ add_matching_methods and add_constructors.
+ (add_matching_methods): New.
+ (add_constructors): Ditto.
+
+2003-06-02 Andrew Cagney <cagney@redhat.com>
+
+ * sparc-tdep.c (sparc_print_registers): Delete call to
+ REGISTER_CONVERTIBLE.
+ (sparc_gdbarch_init): Do not set register_convertible.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+
+2003-06-02 Elena Zannoni <ezannoni@redhat.com>
+
+ * target.h (TARGET_SYMFILE_POSTREAD): Delete unused macro.
+ * symfile.c (reread_symbols): Delete call to TARGET_SYMFILE_POSTREAD.
+ (syms_from_objfile): Ditto.
+
+2003-06-03 Andreas Schwab <schwab@suse.de>
+
+ * m68k-tdep.c (m68k_gdbarch_init): Use set_gdbarch_print_insn ...
+ (_initialize_m68k_tdep): ... instead of deprecated_tm_print_insn.
+
+2003-06-02 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_register_reggroup_p): Zero is only
+ a member of all_reggroup.
+
+2003-06-02 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_register_type): Change from _virtual_type.
+ (alpha_convert_flt_dbl, alpha_convert_dbl_flt): Remove.
+ (alpha_lds, alpha_sts): New.
+ (alpha_convert_register_p): Change from _register_convertible.
+ (alpha_register_to_value): Change from _convert_to_virtual;
+ restructure and fail for type sizes other than 4 or 8.
+ (alpha_value_to_register): Similarly.
+ (alpha_extract_return_value): Use alpha_sts.
+ (alpha_store_return_value): Use alpha_lds.
+ (alpha_gdbarch_init): Update hooks.
+
+2003-06-02 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_register_virtual_type): Use alpha-specific
+ regnum identifiers.
+ (alpha_sigtramp_register_address): Likewise.
+
+2003-06-02 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_supply_int_regs, alpha_fill_int_regs): New.
+ (alpha_supply_fp_regs, alpha_fill_fp_regs): New.
+ * alpha-tdep.h: Declare them.
+
+ * alpha-nat.c (fetch_osf_core_registers): Constify core_reg_mapping.
+ Remove zerobuf. Don't error on UNIQUE.
+ (fetch_elf_core_registers): Use alpha_supply_{int,fp}_regs.
+ (ALPHA_REGSET_UNIQUE): Provide default.
+ (supply_gregset): Use alpha_supply_int_regs.
+ (fill_gregset): Use alpha_fill_int_regs.
+ (supply_fpregset): Use alpha_supply_fp_regs.
+ (fill_fpregset): Use alpha_fill_fp_regs.
+ * alphabsd-tdep.c (NUM_GREGS, NUM_FPREGS): Remove.
+ (alphabsd_supply_reg): Use alpha_supply_int_regs.
+ (alphabsd_fill_reg): Use alpha_fill_int_regs.
+ (alphabsd_supply_fpreg): Use alpha_supply_fp_regs.
+ (alphabsd_fill_fpreg): Use alpha_fill_fp_regs.
+ * config/alpha/nm-linux.h (ALPHA_REGSET_UNIQUE): New.
+
+2003-06-02 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_store_return_value): Avoid switch fallthru.
+
+ * alpha-tdep.c (alpha_extract_return_value): Use internal_error.
+ (alpha_store_return_value): Likewise.
+
+2003-06-02 David Carlton <carlton@math.stanford.edu>
+
+ * block.c (contained_in): Add 'const' to arguments.
+ (block_function): Ditto.
+ * block.h: Update declarations for block_function and
+ contained_in.
+
+2003-06-02 David Carlton <carlton@math.stanford.edu>
+
+ * objc-lang.c (find_imps): Delete unneeded variable 'sym_symtab'.
+ * c-valprint.c (c_val_print): Delete unneeded variable 's'.
+ * p-valprint.c (pascal_val_print): Ditto.
+ * ada-lang.c (standard_lookup): Delete unneded variable 'symtab'.
+
+2003-06-02 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_push_dummy_call): Use
+ builtin_type_ieee_double_little instead of builtin_type_double.
+
+ * alpha-tdep.c (alpha_push_dummy_call): Handle ABI mandated
+ sign-extension of 32-bit values.
+ (alpha_store_return_value): Similarly.
+
+ * alpha-tdep.c (alpha_push_dummy_call): Handle COMPLEX types.
+ (alpha_extract_return_value): Likewise.
+ (alpha_store_return_value): Likewise.
+
+ * alpha-tdep.c (alpha_extract_return_value): Handle IEEE Quad floats.
+ (alpha_store_return_value): Error on IEEE Quad floats.
+
+ * alpha-tdep.c (alpha_extract_return_value): Convert to regcache.
+ (alpha_extract_struct_value_address): Likewise.
+ (alpha_store_return_value): Likewise.
+ (alpha_store_struct_return): Remove.
+ (alpha_gdbarch_init): Update hook registration to match.
+
+ * alpha-tdep.c (alpha_register_convert_to_virtual): Tidy use of
+ deprecated interfaces; use ALPHA_REGISTER_SIZE instead of gdbarch
+ macros where appropriate.
+ (alpha_register_convert_to_raw): Similarly. Use unpack_long.
+ (alpha_convert_flt_dbl, alpha_convert_dbl_flt): New.
+
+ * alpha-tdep.c (alpha_register_virtual_type): Use void_data_ptr
+ for SP, GP; void_func_ptr for PC; non-language-specific types
+ for all others.
+ * alpha-tdep.h (ALPHA_GP_REGNUM): New.
+
+2003-06-02 Richard Henderson <rth@redhat.com>
+
+ * top.h (lim_at_start): Declare.
+ * main.c (captured_main): Set it.
+ * top.c (lim_at_start): Define.
+ (command_loop): Use it instead of &environ.
+ * event-top.c (command_handler): Likewise.
+
+2003-06-01 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * mipsnbsd-tdep.c: Update copyright years.
+ (fetch_core_registers): Correct arguments to mipsnbsd_supply_fpreg.
+
+2003-06-01 Richard Henderson <rth@redhat.com>
+
+ * Makefile.in (ALLDEPFILES): Add alpha-mdebug-tdep.c.
+ (alpha-linux-tdep.o): Update dependencies.
+ (alpha-nat.o, alpha-tdep.o, alpha-mdebug-tdep.o): Likewise.
+ * alpha-mdebug-tdep.c: Remove unneeded includes.
+
+2003-06-01 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_register_reggroup_p): New.
+ (alpha_gdbarch_init): Register it.
+
+2003-06-02 Andrew Cagney <cagney@redhat.com>
+
+ * dwarfread.c: Eliminate "register"
+ (decode_die_type): Eliminate assignment within "if".
+ (struct_type, decode_array_element_type): Ditto.
+ (dwarf_read_array_type, read_tag_pointer_type): Ditto.
+ (read_subroutine_type, enum_type, add_enum_psymbol): Ditto.
+ (decode_modified_type, completedieinfo): Ditto.
+ * block.c: Eliminate "register".
+ (blockvector_for_pc_sect): Eliminate assignment within "if".
+ * cp-support.h (struct symbol): Opaque declaration.
+ * breakpoint.c (handle_gnu_v3_exceptions): Use xfree, not free.
+
+2003-06-01 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_gdbarch_init): Use set_gdbarch_print_insn ...
+ (_initialize_alpha_tdep): ... not deprecated_tm_print_insn.
+
+2003-06-01 Adam Fedor <fedor@gnu.org>
+
+ * gdbarch.sh (function_list): Add FETCH_POINTER_ARGUMENT.
+ * gdbarch.[ch]: Regenerate.
+ * hppa-tdep.c (hppa_fetch_pointer_argument): New function.
+ (hppa_gdbarch_init): Set it in the gdbarch vector.
+ * i386-tdep.c (i386_fetch_pointer_argument): New
+ (i386_gdbarch_init): Set it into gdbarch.
+ * rs6000-tdep.c (rs6000_fetch_pointer_argument): New.
+ (rs6000_gdbarch_init): Set it in gdbarch.
+ * sparc-tdep.c (sparc_fetch_pointer_argument): New
+ (sparc_gdbarch_init): Set it in gdbarch.
+
+2003-06-01 Andrew Cagney <cagney@redhat.com>
+
+ * defs.h (extract_address): Delete declaration.
+ * findvar.c (extract_address): Delete function.
+ * xstormy16-tdep.c (xstormy16_extract_return_value): Replace
+ extract_address with the inline equivalent,
+ extract_unsigned_integer.
+ (xstormy16_extract_struct_value_address): Ditto.
+ (xstormy16_pointer_to_address): Ditto.
+ * vax-tdep.c (vax_extract_struct_value_address): Ditto.
+ * v850-tdep.c (v850_push_arguments): Ditto.
+ (v850_extract_return_value): Ditto.
+ (v850_extract_struct_value_address): Ditto.
+ * sparcnbsd-tdep.c (sparcnbsd_get_longjmp_target_32): Ditto.
+ (sparcnbsd_get_longjmp_target_64): Ditto.
+ * sparc-tdep.c (sparc_frame_saved_pc): Ditto.
+ (get_longjmp_target): Ditto.
+ * sh-tdep.c (sh_extract_struct_value_address): Ditto.
+ (sh64_extract_struct_value_address): Ditto.
+ (sh_push_arguments): Ditto.
+ (sh64_push_arguments): Ditto.
+ * remote-vxsparc.c (vx_read_register): Ditto.
+ * ppc-linux-tdep.c (ppc_linux_skip_trampoline_code): Ditto.
+ * ns32k-tdep.c (ns32k_extract_struct_value_address): Ditto.
+ * mn10300-tdep.c (mn10300_extract_struct_value_address): Ditto.
+ * mipsv4-nat.c (get_longjmp_target): Ditto.
+ * mipsnbsd-tdep.c (mipsnbsd_get_longjmp_target): Ditto.
+ * mips-nat.c (get_longjmp_target): Ditto.
+ * mips-linux-tdep.c (mips_linux_get_longjmp_target): Ditto.
+ * mcore-tdep.c (mcore_extract_struct_value_address): Ditto.
+ * m68k-tdep.c (m68k_get_longjmp_target): Ditto.
+ * m68hc11-tdep.c (m68hc11_extract_struct_value_address): Ditto.
+ * irix5-nat.c (get_longjmp_target): Ditto.
+ * irix4-nat.c (get_longjmp_target): Ditto.
+ * ia64-tdep.c (generic_elf_find_global_pointer): Ditto.
+ (ia64_push_arguments): Ditto.
+ * hpux-thread.c (hpux_thread_store_registers): Ditto.
+ * h8300-tdep.c (h8300_push_arguments): Ditto.
+ (h8300_store_return_value): Ditto.
+ (h8300_extract_struct_value_address): Ditto.
+ * frv-tdep.c (frv_extract_struct_value_address): Ditto.
+ (frv_push_arguments): Ditto.
+ * avr-tdep.c (avr_pointer_to_address): Ditto.
+ (avr_push_arguments): Ditto.
+ * arm-tdep.c (arm_push_dummy_call): Ditto.
+ (arm_get_longjmp_target): Ditto.
+ * arm-linux-tdep.c (arm_linux_push_arguments): Ditto.
+ * alpha-tdep.c (alpha_extract_struct_value_address): Ditto.
+ (alpha_get_longjmp_target): Ditto.
+
+ * solib-irix.c (extract_mips_address): Inline extract_address,
+ replacing it with extract_signed_integer.
+ * solib-svr4.c (SOLIB_EXTRACT_ADDRESS): Ditto.
+ (LM_NAME, IGNORE_FIRST_LINK_MAP_ENTRY): Ditto.
+ (first_link_map_member, open_symbol_file_object): Ditto.
+ (svr4_fetch_objfile_link_map, svr4_fetch_objfile_link_map): Ditto.
+ * solib-sunos.c (SOLIB_EXTRACT_ADDRESS): Ditto.
+ (LM_NEXT, LM_NAME): Ditto.
+
+2003-06-01 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.h (ALPHA_FP_REGNUM): Remove.
+ * alpha-tdep.c (alpha_register_name): Remove vfp entry.
+ (alpha_cannot_fetch_register): Remove ALPHA_FP_REGNUM.
+ (alpha_cannot_store_register): Likewise.
+ * alphabsd-nat.c (fetch_inferior_registers): Don't set FP_REGNUM.
+ * alpha-nat.c (supply_gregset): Likewise.
+ * alphanbsd-tdep.c (fetch_core_registers): Likewise.
+
+2003-06-01 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): Update comment on
+ DEPRECATED_DUMMY_WRITE_SP.
+
+ * mips-tdep.c (mips_gdbarch_init): Do not set
+ deprecated_dummy_write_sp.
+ (mips_eabi_push_dummy_call): Set the SP register.
+ (mips_o64_push_dummy_call): Set the SP register.
+ (mips_o32_push_dummy_call): Set the SP register.
+ (mips_n32n64_push_dummy_call): Set the SP register.
+
+2003-06-01 Richard Henderson <rth@redhat.com>
+
+ * alpha-nat.c (fetch_osf_core_registers): Use ALPHA_REGISTER_SIZE
+ instead of ALPHA_MAX_REGISTER_RAW_SIZE.
+ (supply_gregset): Likewise.
+ * alpha-tdep.c (alpha_store_return_value): Likewise.
+ (alpha_get_longjmp_target): Likewise.
+ (alpha_register_name): Constify array.
+ (alpha_gdbarch_init): Remove deprecated_fp_regnum,
+ deprecated_register_size, deprecated_register_bytes,
+ deprecated_max_register_raw_size, deprecated_max_register_virtual_size.
+ * alpha-tdep.h (ALPHA_MAX_REGISTER_RAW_SIZE): Remove.
+ (ALPHA_MAX_REGISTER_VIRTUAL_SIZE): Remove.
+
+2003-06-01 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_push_dummy_call): Store sp. Tidy copies
+ from arg_reg_buffer to regcache to avoid double conversion.
+
+2003-06-01 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-linux-nat.c (child_resume): Use I386_ESP_REGNUM instead of
+ SP_REGNUM.
+ * i386-linux-tdep.c (i386_linux_sigcontext_addr): Likewise.
+ * i386bsd-tdep.c (i386bsd_sigcontext_addr): Likewise.
+
+2003-06-01 Richard Henderson <rth@redhat.com>
+
+ * dwarf2-frame.c (struct dwarf2_cie): Add saw_z_augmentation.
+ (decode_frame_entry): Set it. Skip FDE augmentation.
+
+2003-06-01 Richard Henderson <rth@redhat.com>
+
+ * dwarf2-frame.c (dwarf2_frame_cache): Handle retaddr_column
+ not overlapping PC_REGNUM.
+
+2003-06-01 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_push_dummy_call): Transmography from
+ alpha_push_arguments. Don't dump argument register data to
+ the target stack. Fix float and 128-bit long double semantics.
+ Store $t12 and $ra as specified by the ABI. Use regcache everywhere.
+ (alpha_fix_call_dummy): Remove.
+ (alpha_call_dummy_words): Remove.
+ (alpha_gdbarch_init): Kill deprecated call hooks; add push_dummy_call.
+
+2003-06-01 Richard Henderson <rth@redhat.com>
+
+ * alpha-linux-tdep.c (alpha_linux_init_abi): Install dwarf2 unwinder.
+
+2003-06-01 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (is_mips16_addr): New function.
+ (make_mips16_addr, unmake_mips16_addr): New functions.
+ (pc_is_mips16, mips_fetch_instruction): Use.
+ (gdb_print_insn_mips, mips_breakpoint_from_pc): Use.
+ (gdb_print_insn_mips): Eliminate TM_PRINT_INSN_MACH.
+ (mips_dump_tdep): Delete print of TM_PRINT_INSN_MACH,
+ UNMAKE_MIPS16_ADDR, MAKE_MIPS16_ADDR, IS_MIPS16_ADDR and
+ TARGET_MIPS.
+ * config/mips/tm-mips.h: Update copyright.
+ (TARGET_MIPS, TM_PRINT_INSN_MACH): Delete.
+ (DEPRECATED_REGISTER_SIZE, DEPRECATED_REGISTER_BYTES): Delete.
+ (IS_MIPS16_ADDR, MAKE_MIPS16_ADDR, UNMAKE_MIPS16_ADDR): Delete.
+ * config/mips/tm-irix6.h (DEPRECATED_REGISTER_BYTES): Delete.
+ (TM_PRINT_INSN_MACH): Delete.
+ * config/mips/tm-irix5.h (DEPRECATED_REGISTER_BYTES): Delete.
+
+ * configure.tgt: Replace mips64*vr4xxx*el-*-elf*,
+ mips64*vr4xxx*-*-elf*, mips64*vr4300*el-*-elf*,
+ mips64*vr4300*-*-elf*, mips64*vr4100*el-*-elf*,
+ mips64*vr4100*-*-elf*, mips64*vr5000*el-*-elf*, and
+ mips64*vr5000*-*-elf* with mips64 mips64*vr*-*-elf*. Delete
+ mips*tx39*el*-elf*. Map mips*-sony-* and mips64*-big-* onto
+ mips64. Map mips*-dec-*, mips*-big-*, mips*-little-*,
+ mips*-*-riscos* and mips*-*-sysv* onto mips.
+ * config/mips/mips64.mt: New file.
+ * config/mips/mips.mt: New file.
+ * config/mips/littlemips.mt: Delete file.
+ * config/mips/decstation.mt: Delete file.
+ * config/mips/vr4300el.mt: Delete file.
+ * config/mips/vr5000el.mt: Delete file.
+ * config/mips/vr5000.mt: Delete file.
+ * config/mips/vr4100.mt: Delete file.
+ * config/mips/vr4xxxel.mt: Delete file.
+ * config/mips/vr4300.mt: Delete file.
+ * config/mips/vr4xxx.mt: Delete file.
+ * config/mips/bigmips.mt: Delete file.
+ * config/mips/bigmips64.mt: Delete file.
+ * config/mips/tx39l.mt (TM_FILE): Set to "tm-tx39.h".
+ * config/mips/embedl64.mt (TM_FILE): Set to "tm-mips64.h".
+ * config/mips/embed64.mt (TM_FILE): Set to "tm-mips64.h"
+ * config/mips/embedl.mt (TM_FILE): Set to "tm-mips.h".
+ * config/mips/tm-tx39.h: Include "tm-mips.h" instead of
+ "tm-bigmips.h".
+ * config/mips/tm-irix3.h: Ditto.
+ * config/mips/tm-mipsv4.h: Ditto.
+ * config/mips/tm-embed.h: Ditto.
+ * config/mips/tm-irix6.h: Include "tm-mips64.h" instead of
+ "tm-bigmips64.h".
+ * config/mips/tm-vr5000el.h: Delete file.
+ * config/mips/tm-tx39l.h: Delete file.
+ * config/mips/tm-vr4300el.h: Delete file.
+ * config/mips/tm-vr4xxxel.h: Delete file.
+ * config/mips/tm-vr4300.h: Delete file.
+ * config/mips/tm-vr4100.h: Delete file.
+ * config/mips/tm-vr4xxx.h: Delete file.
+ * config/mips/tm-vr5000.h: Delete file.
+ * config/mips/tm-embedl64.h: Delete file.
+ * config/mips/tm-embedl.h: Delete file.
+ * config/mips/tm-embed64.h: Delete file.
+ * config/mips/tm-bigmips64.h: Delete file.
+ * config/mips/tm-bigmips.h: Delete file.
+
+2003-06-01 Mark Kettenis <kettenis@gnu.org>
+
+ Fix gdb/1216.
+ * shnbsd-nat.c: Include "sh-tdep.h".
+
+ From Richard Henderson <rth@redhat.com>:
+ * dwarf2-frame.c (dwarf2_frame_state_alloc_regs): Fix ptr arithmetic.
+
+2003-05-31 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (set_reg_offset): Add saved_regs parameter. Add
+ forward declaration.
+ (mips16_heuristic_proc_desc): Pass temp_saved_regs.
+ (mips16_heuristic_proc_desc): Pass temp_saved_regs.
+ (mips_find_saved_regs): Use set_reg_offset.
+ (mips_frame_init_saved_regs): Delete function.
+ (mips_pop_frame): Call mips_find_saved_regs instead of
+ DEPRECATED_FRAME_INIT_SAVED_REGS.
+
+2003-05-31 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (mips_gdbarch_init): Do not set
+ deprecated_max_register_raw_size, register_virtual_size, and
+ deprecated_max_register_virtual_size.
+
+2003-05-31 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c: Include "dwarf2-frame.h".
+ (i386_gdbarch_init): Hook in the DWARF CFI frame unwinder.
+ * Makefile.in (i386-tdep.o): Update dependencies.
+
+ * dwarf2-frame.c, dwarf2-frame.h: New files.
+ * Makefile.in (SFILES): Add dwarf2-frame.c.
+ (dwarf2_frame_h): Define.
+ (COMMON_OBS): Add dwarf2-frame.o.
+ (dwarf2-frame.o): Add dependencies.
+
+2003-05-31 Andreas Jaeger <aj@suse.de>
+
+ * x86-64-linux-nat.c: Fix comment.
+
+2003-05-31 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (x86_64_push_dummy_call): Adjust for changed
+ function signature.
+
+ * i386-tdep.c (i386_sigtramp_frame_p): Only handle frames if we
+ have a sigcontext_addr handler.
+ * x86-64-tdep.c (x86_64_sigtramp_frame_p): Assert that we have a
+ sigcontext_addr handler.
+
+2003-05-31 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (print_gp_register_row): Replace do_gp_register_row.
+ (print_fp_register_row): Replace do_fp_register_row.
+ (mips_print_fp_register): Add "file" and "frame" parameters.
+ (mips_print_register): Add "file" and "frame" parameters.
+ (mips_print_registers_info): Replace mips_do_registers_info.
+ (mips_gdbarch_init): Set print_registers_info instead of
+ deprecated_do_registers_info.
+ (mips_read_fp_register_single): Add "frame" parameter.
+ (mips_read_fp_register_double): Add "frame" parameter.
+
+2003-05-31 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_register_name): Check for MMX registers first.
+ Fixes a bug where GDB would print the wrong register names for
+ targets without SSE.
+
+ * x86-64-tdep.c (X86_64_NUM_SAVED_REGS): Set to X86_64_NUM_GREGS.
+ (x86_64_sigtramp_frame_cache): Use `sc_reg_offset' to find saved
+ registers.
+
+ * x86-64-linux-tdep.c (x86_64_linux_sc_reg_offset): New variable.
+ (x86_64_linux_init_abi): Initialize TDEP->sc_reg_offset and
+ TDEP->sc_num_regs instead of TDEP->sc_pc_offset and
+ TDEP->sc_sp_offset.
+
+ From Michal Ludvig <mludvig@suse.cz>:
+ * i386-tdep.h (struct gdbarch_tdep): Add members `sc_reg_offset'
+ and `sc_num_regs'.
+ (I386_EAX_REGNUM, I386_EDX_REGNUM, I386_ESP_REGNUM,
+ I386_EBP_REGNUM, I386_EIP_REGNUM, I386_EFLAGS_REGNUM,
+ I386_ST0_REGNUM): Move here from...
+ * i386-tdep.c: ... here.
+ (I386_NUM_SAVED_REGS): Define to I386_NUM_REGS.
+ (i386_sigtramp_frame_cache): Use `sc_reg_offset' to find saved
+ registers if possible.
+ (i386_gdbarch_init): Initialize TDEP->sc_reg_offset.
+ * i386bsd-tdep.c (i386bsd_sc_pc_offset, i386bsd_sc_sp_offset):
+ Remove variables.
+ (i386bsd_sc_reg_offset): New variable.
+ (i386bsd_init_abi): Initialize TDEP->sc_reg_offset and
+ TDEP->sc_num_regs instead of TDEP->sc_pc_offset and
+ TDEP->sc_sp_offset.
+ (i386fbsd_sc_reg_offset): New variable.
+ (i386fbsdaout_init_abi): Initialize TDEP->sc_reg_offset and
+ TDEP->sc_num_regs.
+ (i386fbsd4_sc_pc_offset, i386fbsd4_sc_sp_offset): Remove
+ variables.
+ (i386fbsd4_sc_reg_offset): New variable.
+ (i3864bsd4_init_abi): Initialize TDEP->sc_reg_offset and
+ TDEP->sc_num_regs instead of TDEP->sc_pc_offset and
+ TDEP->sc_sp_offset.
+ * i386-linux-tdep.c (i386_linux_sc_reg_offset): New variable.
+ (i386_linux_init_abi): Set TDEP->sc_reg_offset and TDEP->sc_num_regs.
+ * i386nbsd-tdep.c (i386nbsd_sc_pc_offset, i386nbsd_sc_sp_offset):
+ Remove variables.
+ (i386nbsd_sc_reg_offset): New variable.
+ (i386nbsd_init_abi): Initialize TDEP->sc_reg_offset and
+ TDEP->sc_num_regs instead of TDEP->sc_pc_offset and
+ TDEP->sc_sp_offset.
+ * i386obsd-tdep.c (i386obsd_sc_pc_offset, i386obsd_sc_sp_offset):
+ Remove variables.
+ (i386obsd_sc_reg_offset): New variable.
+ (i386obsd_init_abi): Initialize TDEP->sc_reg_offset and
+ TDEP->sc_num_regs instead of TDEP->sc_pc_offset and
+ TDEP->sc_sp_offset.
+ * i386bsd-nat.c (_initialize_i386bsd_nat): Adjust for changes in
+ i386bsd-tdep.c, i386nbsd-tdep.c and i386obsd-tdep.c. Add check
+ for frame pointer offset in `struct sigcontext'.
+
+2003-05-31 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (mips_gdbarch_init): Do not set the deprecated
+ architecture methods call_dummy_words, sizeof_call_dummy_words,
+ push_return_address, store_struct_return, and fix_call_dummy. Set
+ push_dummy_call instead of deprecated_push_arguments.
+ (mips_store_struct_return): Delete function.
+ (mips_fix_call_dummy): Delete function.
+ (mips_push_return_address): Delete function.
+ (mips_eabi_push_dummy_call): Replace mips_eabi_push_arguments, set
+ RA_REGNUM and T9_REGNUM.
+ (mips_n32n64_push_dummy_call): Ditto for
+ mips_n32n64_push_arguments.
+ (mips_o32_push_dummy_call): Ditto for mips_o32_push_arguments.
+ (mips_o64_push_dummy_call): Ditto for mips_o64_push_arguments.
+
+2003-05-31 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (PUSH_DUMMY_CALL): Add "func_addr" parameter. Rename
+ "dummy_addr" to "bp_addr".
+ * infcall.c (call_function_by_hand): Pass "funaddr" to
+ gdbarch_push_dummy_call.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * i386-tdep.c (i386_push_dummy_call): Update.
+ * arm-tdep.c (arm_push_dummy_call): Update.
+ * d10v-tdep.c (d10v_push_dummy_call): Update.
+
+2003-05-31 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.h (x86_64_num_regs, x86_64_num_gregs): Remove
+ variable declarations.
+ (x86_64_register_number, x86_64_register_name): Remove prototypes.
+ (x86_64_linux_frame_saved_pc, x86_64_linux+saved_pc_after_call,
+ x86_64_linux_in_sigtramp, x86_64_linux_frame_chain,
+ x86_64_init_frame_pc, x86_64_init_frame_pc,
+ x86_64_function_has_prologue): Remove prototypes.
+ (X86_64_NUM_GREGS): New define.
+ (x86_64_supply_fxsave, x86_64_fill_fxsave): New prototypes.
+ * x86-64-tdep.c: Don't include "dwarf2cfi.h". Include
+ "dummy_frame.h", "frame.h", "frame-base.h", "frame-unwind.h".
+ (RAX_REGNUM, RDX_REGNUM, RDI_REGNUM, EFLAGS_REGNUM, ST0_REGNUM,
+ XMM1_REGNUM): Remove defines.
+ (X86_64_RAX_REGNUM, X86_64_RDX_REGNUM, X86_64_RDI_REGNUM,
+ X86_64_RBP_REGNUM, X86_64_RSP_REGNUM, X86_64_RIP_REGNUM,
+ X86_64_EFLAGS_REGNUM, X86_64_ST0_REGNUM, X86_64_XMM0_REGNUM,
+ X86_64_XMM1_REGNUM): New defines.
+ (struct x86_64_register_info): Renamed from `struct
+ register_info'. Remove `size' member.
+ (x86_64_register_info_table): Remove variable.
+ (x86_64_register_info): New variable.
+ (X86_64_NUM_REGS): New define.
+ (X86_64_NUM_GREGS): Remove define.
+ (x86_64_num_regs, x86_64_num_gregs): Remove variables.
+ (x86_64_dwarf2gdb_regno_map, x86_64_dwarf2gdb_regno_map_length):
+ Remove variables.
+ (x86_54_dwarf2_reg_to_regnum): Remove function.
+ (x86_64_dwarf_regmap, x86_64_dwarf_regmap_len): New variables.
+ (x86_64_dwarf_reg_to_regnum): New function.
+ (x86_64_register_name): Rewrite.
+ (x86_64_register_raw_size): Remove function.
+ (x86_64_register_byte_table): Remove variable.
+ (x86_64_register_byte): Remove function.
+ (x86_64_register_virtual_type): Remove function.
+ (x86_64_register_type): New function.
+ (x86_64_register_convertible, x86_64_register_convert_to_virtual,
+ x86_64_register_convert_to_raw): Remove functions.
+ (x86_64_push_return_address, x86_64_pop_frame): Remove functon.
+ (x86_64_use_struct_convention): Make static. Adjust for renamed
+ defines.
+ (x86_64_frame_init_saved_regs): Remove function.
+ (x86_64_push_arguments): Make static. Change to accept a regcache
+ as argument.
+ (x86_64_store_return_value, x86_64_extract_return_value): Make
+ static. Rewrite based on i386 counterparts.
+ (x86_64_push_dummy_call): New function.
+ (X86_64_NUM_SAVED_REGS): New define.
+ (x86_64_register_number): Remove function.
+ (x86_64_store_struct_return): Remove function.
+ (x86_64_frameless_function_invocation,
+ x86_64_function_has_prologue): Remove functions.
+ (PROLOG_BUFSIZE): Remove define.
+ (struct x86_64_frame_cache): New structure.
+ (x86_64_alloc_frame_cache, x86_64_analyze_prologue,
+ x86_64_frame_cache, x86_64_frame_this_id,
+ x86_64_frame_prev_register, x86_64_frame_p,
+ x86_64_sigtramp_frame_cache, x86_64_sigtramp_frame_this_id,
+ x86_64_sigtramp_frame_prev_register, x86_sigtramp_frame_p): New
+ functions.
+ (x86_64_frame_unwind, x86_64_sigtramp_frame_unwind): New
+ variables.
+ (x86_64_skip_prologue): Rewrite in terms of
+ x86_64_analyze_prologue.
+ (x86_64_frame_base_address): New function.
+ (x86_64_frame_base): New variable.
+ (x86_64_save_dummy_frame_tos, x86_64_unwind_dummy_id): Rewrite.
+ (x86_64_init_abi): Set register_type and push_dummy_call. Don't
+ set deprecated_fp_regnum, deprecated_register_size,
+ deprecated_register_bytes, register_raw_size, register_byte,
+ register_virtual_type, register_convertiable,
+ register_convert_to_virtual, convert_to_raw,
+ deprecated_get_saved_register, deprecated_target_read_fp,
+ deprecated_push_arguments, deprecated_push_return_address,
+ deprecated_pop_frame, deprecated_store_struct_return,
+ deprecated_frame_init_saved_regs, deprecated_frame_chain,
+ frameless_function_invocation, deprecated_frame_saved_pc,
+ deprecated_saved_pc_after_call, frame_num_args, pc_in_sigtramp,
+ dwarf2_build_frame_info, deprecated_init_extra_frame_info,
+ deprecated_init_frame_pc and virtual_frame_pointer. Call
+ frame_unwind_append_predicate to register x86_64_sigtramp_frame_p
+ and x86_64_frame_p. Call frame_base_set_default to register
+ x86_64_frame_base.
+ (I387_FISEG_REGNUM, I387_FOSEG_REGNUM): New defines.
+ (x86_64_supply_fxsave, x86_64_fill_fxsave): New functions.
+ (_initialize_x86_64_tdep): Remove function.
+ * x86-64-linux-tdep.c: Don't include "dwarf2cfi.h".
+ (LINUX_SIGINFO_SIZE, LINUX_UCONTEXT_SIGCONTEXT_OFFSET,
+ LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_FP_OFFSET): Don't
+ define.
+ (X86_64_LINUX_UCONTEXT_SIGCONTEXT_OFFSET): Define.
+ (x86_64_linux_sigcontext_addr): Rewrite.
+ (x86_64_linux_sigtramp_saved_pc, x86_64_linux_saved_pc_after_call,
+ x86_64_linux_frame_saved_pc): Remove functions.
+ (x86_64_linux_pc_in_sigtramp): Renamed from
+ x86_64_linux_in_sigtramp. Try harder to recognize a signal
+ trampoline.
+ (x86_64_linux_frame_chain, x86_64_init_frame_pc):
+ Remove_functions.
+ (x86_64_linux_init_abi): Set pc_in_sigtramp. Initialize
+ TDEP->sigcontext_addr, TDEP->sc_pc_offset and TDEP->sc_sp_offset.
+ * x86-64-linux-nat.c: Sync with i386-linux-tdep.c.
+ (x86_64_regmap): Rename to regmap.
+ (GETREGS_SUPPLIES): Use X86_64_NUM_GREGS instead of
+ x86_64_num_gregs.
+ (supply_gregset, fill_gregset): Likewise. Use regmap instead of
+ x86_64_regmap.
+ (x86_64_fxsave_offset): Remove function.
+ (supply_fpregset): Simply call x86_64_supply_fxsave.
+ (fill_fpregset): Simply call x86_64_fill_fxsave.
+ (fetch_inferior_registers, store_inferior_registers): Avoid
+ asignment in if-statement.
+ (LINUX_SYSCALL_LEN, LINUX_SYSCALL_REGNUM, SYS_Sigreturn,
+ SYS_rt_sigreturn, LINUX_SIGCONTEXT_EFLAGS_OFFSET,
+ LINUX_UCONTEXT_SIGCONTEXT_OFFSET): Remove defines.
+ (fetch_core_registers): Remove function.
+ (linux_elf_core_fns): Remove.
+ (offsetoff): Don't define.
+ (_initialize_x86_64_linux_nat, kernel_u_size): Remove functions.
+ * config/i386/x86-64linux.mt (TDEPFILES): Add i386-linux-tdep.o.
+ * config/i386/x86-64linux.mh (NATDEPFILES): Remove core-aout.o,
+ add core-regset.o.
+ * config/i386/nm-x86-64linux.h: Use NM_X86_64_LINUX_H for
+ protection against multiple includes instead of NM_X86_64_h. Add
+ various comments. Include "config/nm-linux.h". Don't include
+ <signal.h>.
+ (REGISTER_U_ADDR, KERNEL_U_SIZE, U_REGS_OFFSET, KERN_U_ADDR,
+ GET_THREAD_SIGNALS): Remove defines.
+ (x86_64_register_u_addr, kernel_u_size,
+ lin_thread_get_thread_signals): Remove prototypes.
+ (PTRACE_ARG3_TYPE, PTRACE_XFER_TYPE): Define to `long'.
+ [HAVE_LINK_H]: Don't include "solib.h".
+ [HAVE_LINK_H] (SVR4_SHARED_LIBS): Remove define.
+ * config/i386/tm-x86-64linux.h: Fix comments.
+ * Makefile.in (x86-64-linux-nat.o, x86_64-linux-tdep.o,
+ x86-64-tdep.o): Update dependencies.
+
+2003-05-30 Andrew Cagney <cagney@redhat.com>
+
+ * config/sparc/tm-sparc.h (sparc_extract_struct_value_address):
+ Change parameter type to a "struct regcache *".
+
+ * gdbarch.sh: Regardless of the multi-arch level, always define
+ the macro when not already defined.
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+2003-05-30 Richard Henderson <rth@redhat.com>
+
+ * alpha-mdebug-tdep.c (alpha_mdebug_frame_p): Reject prologues.
+ (alpha_mdebug_frame_unwind_cache): Don't call the heuristic unwinder.
+ (alpha_mdebug_frame_this_id): Likewise.
+ (alpha_mdebug_frame_prev_register): Likewise.
+ (alpha_mdebug_frame_base_address): Likewise.
+ (alpha_mdebug_frame_locals_address): Likewise.
+ (alpha_mdebug_frame_args_address): Likewise.
+ (struct alpha_mdebug_unwind_cache): Remove in_prologue_cache.
+ * alpha-tdep.c (alpha_heuristic_proc_start): Use get_pc_function_start.
+ (alpha_heuristic_frame_unwind_cache): Make static; add missing
+ loop increment.
+ (alpha_heuristic_frame_this_id): Make static.
+ (alpha_heuristic_frame_prev_register): Likewise.
+ (alpha_heuristic_frame_base_address): Likewise.
+ * alpha-tdep.h: Update.
+
+2003-05-30 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.h (i386bsd_sigcontext_addr): Remove prototype.
+ (I386_SIZEOF_GREGS, I386_SIZEOF_FREGS, I386_SIZEOF_XREGS): Remove
+ defenitions.
+ (IS_FP_REGNUM, IS_SSE_REGNUM): Remove definitions.
+ * i386-tdep.c: Mark functions that are 64-bit safe as such.
+ (I386_EAX_REGNUM, I386_EDX_REGNUM, I386_ESP_REGNUM,
+ I386_EBP_REGNUM, I386_EIP_REGNUM, I386_EFLAGS_REGNUM,
+ I386_ST0_REGNUM): New defines.
+ (CODESTREAM_BUFSIZ, codestream_tell, codestream_peek,
+ codestream_get): Remove define.
+ (codestream_next_addr, condestream_addr, condestream_buf,
+ codestream_off, codestream_cnt): Remove variables.
+ (codestream_fill, codestream_seek, codestream_read): Remove
+ functions.
+ (i386_follow_jump): Rewrite to avoid usage of removed codestream
+ functionality.
+ (i386_get_frame_setup, i386_frameless_signal_p, i386_frame_chain,
+ i386_sigtramp_saved_pc, i386_sigtramp_saved_sp,
+ i386_frame_saved_pc, i386_saved_pc_after_call,
+ i386_frame_num_args, i386_frame_init_saved_regs,
+ i386_push_return_address, i386_do_pop_frame, i386_pop_frame,
+ i386_push_arguments): Remove functions.
+ (i386_skip_prologue): Rewrite to avoid usage of removed codestream
+ functionality. Use i386_analyze_prologue instead of
+ i386_get_frame_setup.
+ (I386_NUM_SAVED_REGS): New define.
+ (struct i386_frame_cache): New structure.
+ (i386_alloc_frame_cache, i386_analyze_struct_return,
+ i386_skip_probe, i386_analyze_frame_setup,
+ i386_analyze_register_saves, i386_analyze_prologue,
+ i386_unwind_pc, i386_frame_cache, i386_frame_this_id,
+ i386_frame_prev_register, i386_sigtramp_frame_cache,
+ i386_sigtramp_frame_this_id, i386_sigtramp_frame_prev_register,
+ i386_frame_p, i386_sigtramp_frame_p, i386_frame_base_address,
+ i386_unwind_dummy_id, i386_save_dummy_tos, i386_push_dummy_call):
+ New functions.
+ (i386_frame_unwind, i386_sigtramp_frame_unwind, i386_frame_base):
+ New variables.
+ (LOW_RETURN_REGNUM, HIGH_RETURN_REGNUM): Define in terms of
+ I386_EAX_REGNUM and I386_EDX_REGNUM.
+ (i386_extract_return_value, i386_store_return_value): Use
+ I386_ST0_REGNUM where appropriate.
+ (i386_extract_struct_value_address): Rewrite to use extract_address.
+ (i386_svr4_pc_in_sigtramp): Add comment.
+ (i386_svr4_sigcontext_addr): Rewrite.
+ (i386_svr4_init_abi): Adjust TDEP->sc_pc_offset and
+ TDEP->sc_sp_offset.
+ (i386_gdbarch_init): Don't set deprecated_init_frame_pc. Set
+ sp_regnum, fp_regnum, pc_regnum, ps_regnum and fp0_regnum in terms
+ of new defines. Set push_dummy_call, don't set
+ deprecated_push_arguments, deprecated_push_return_address,
+ deprecated_pop_frame. Don't set parm_boundary. Don't set
+ deprecated_frame_chain, deprecated_frame_saved_pc,
+ deprecated_saved_pc_after_call. Set unwind_dummy_id,
+ save_dummy_frame_tos, unwind_pc. Call
+ frame_unwind_append_predicate and frame_base_set_default. Don't
+ set deprecated_dummy_write_pc. Don't set deprecated_fp_regnum.
+ Don't set frameless_function_invocation. Don't set
+ deprecated_register_bytes, deprecated_register_size,
+ deprecated_call_dummy_words and deprecated_sizeof_call_dummy.
+ * i386-linux-tdep.c: Fix formatting in some comments.
+ (LINUX_SIGTRAMP_INSN0, LINUX_SIGTRAMP_OFFSET0,
+ LINUX_SIGTRAMP_INSN1, LINUX_SIGTRAMP_OFFSET1,
+ LINUX_SIGTRAMP_INSN2, LINUX_SIGTRAMP_OFFSET2,
+ LINUX_RT_SIGTRAMP_INSN0, LINUX_RT_SIGTRAMP_OFFSET0,
+ LINUX_RT_SIGTRAMP_INSN1, LINUX_RT_SIGTRAMP_OFFSET1): Drop
+ redundant parentheses.
+ (I386_LINUX_UCONTEXT_SIGCONTEXT_OFFSET): New define.
+ (i386_linux_sigcontext_addr): Use it. Rewrite.
+ (find_minsym_and_objfile): Change name of second argument.
+ (skip_gnu_resolver): Renamed from skip_hurd_resolver. All callers
+ changed. Use frame_pc_unwind instead of
+ DEPRECATED_SAVED_PC_AFTER_CALL.
+ (i386_linux_init_abi): Don't set deprecated_register_bytes.
+ * i386bsd-tdep.c (i386bsd_sigcontext_addr): Rewrite.
+ * i386-nto-tdep.c (i386nto_sigcontext_addr): Adapt for new frame
+ unwinder.
+ * i386-cygwin-tdep.c: Don't include "gdbcore.h", "frame.h" and
+ "dummy-frame.h".
+ (i386_cygwin_frame_chain_valid, i386_cygwin_frame_chain): Removed.
+ (_initialize_i386_cygwin_tdep): New prototype.
+ (i386_cygwin_init_abi): Don't set deprecated_frame_chain and
+ deprecated_frame_chain_valid.
+ * i386-sol2-tdep.c (i386_sol2_init_abi): Don't set
+ TDEP->sigcontext_addr, TDEP->sc_pc_offset and TDEP->sc_sp_offset.
+ Rely on the SVR4 defaults.
+ * config/i386/i386sol2.mt (TDEPFILES): Remove i386bsd-tdep.o.
+ * Makefile.in (i386-tdep.o, i386-cygwin-tdep.o): Update dependencies.
+
+2003-05-30 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): Always call
+ DEPRECATED_FIX_CALL_DUMMY, even for AT_ENTRY_POINT case.
+
+2003-05-30 Richard Henderson <rth@redhat.com>
+
+ * alpha-tdep.c (alpha_heuristic_frame_unwind_cache): Fix loop
+ increment.
+
+2003-05-29 Jim Blandy <jimb@redhat.com>
+
+ Use gdbarch methods for solib stuff on PowerPC Linux.
+ * config/powerpc/tm-linux.h (IN_SOLIB_CALL_TRAMPOLINE,
+ SKIP_TRAMPOLINE_CODE): #undef these, so the gdbarch methods will
+ show through.
+ * ppc-linux-tdep.c (ppc_linux_init_abi): Register
+ IN_SOLIB_CALL_TRAMPOLINE and SKIP_TRAMPOLINE_CODE methods here,
+ giving the same effect as the #definitions above.
+
+2003-05-29 Adam Fedor <fedor@gnu.org>
+
+ * objc-lang.c (CONVERT_FUNCPTR): Remove macro
+ (find_implementation_from_class): Replace it with the standard
+ case i.e. do nothing.
+
+2003-05-29 Richard Henderson <rth@redhat.com>
+
+ * alpha-linux-tdep.c (alpha_linux_sigtramp_offset_1): New.
+ (alpha_linux_sigtramp_offset): Use it. Make static.
+ (alpha_linux_sigcontext_addr): Handle __NR_rt_sigreturn;
+ update for new frame model.
+ * alpha-mdebug-tdep.c: New file.
+ * alpha-osf1-tdep.c (alpha_call_dummy_address): Move from alpha-tdep.c.
+ (alpha_osf1_init_abi): Install it.
+ * alpha-tdep.c (PROC_*): Move to alpha-mdebug-tdep.c.
+ (linked_proc_desc_table): Remove.
+ (alpha_frame_past_sigtramp_frame): Remove.
+ (alpha_dynamic_sigtramp_offset): Remove.
+ (ALPHA_PROC_SIGTRAMP_MAGIC): Remove.
+ (alpha_proc_desc_is_dyn_sigtramp): Remove.
+ (alpha_set_proc_desc_is_dyn_sigtramp): Remove.
+ (push_sigtramp_desc): Remove.
+ (alpha_cannot_fetch_register): Use ALPHA_FP_REGNUM.
+ (alpha_cannot_store_register): Likewise.
+ (alpha_sigcontext_addr): Remove.
+ (alpha_find_saved_regs): Remove.
+ (alpha_frame_init_saved_regs): Remove.
+ (alpha_init_frame_pc_first): Remove.
+ (read_next_frame_reg): Remove.
+ (alpha_frame_saved_pc): Remove.
+ (alpha_saved_pc_after_call): Remove.
+ (temp_proc_desc, temp_saved_regs): Remove.
+ (alpha_about_to_return): Remove.
+ (cached_proc_desc): Remove.
+ (alpha_frame_chain): Remove.
+ (alpha_print_extra_frame_info): Remove.
+ (alpha_init_extra_frame_info): Remove.
+ (alpha_frame_locals_address): Remove.
+ (alpha_frame_args_address): Remove.
+ (alpha_push_arguments): Use ALPHA_REGISTER_BYTES not sizeof CORE_ADDR.
+ (alpha_push_dummy_frame): Remove.
+ (alpha_pop_frame): Remove.
+ (alpha_after_prologue): Rename from after_prologue; remove mdebug bits.
+ (alpha_read_insn): New.
+ (alpha_skip_prologue): Merge alpha_skip_prologue_internal; adjust
+ for different insn encodings.
+ (alpha_in_lenient_prologue): Remove.
+ (struct alpha_sigtramp_unwind_cache): New.
+ (alpha_sigtramp_frame_unwind_cache): New.
+ (alpha_sigtramp_register_address): New.
+ (alpha_sigtramp_frame_this_id): New.
+ (alpha_sigtramp_frame_prev_register): New.
+ (alpha_sigtramp_frame_unwind): New.
+ (alpha_sigtramp_frame_p): New.
+ (struct alpha_heuristic_unwind_cache): New.
+ (alpha_heuristic_proc_start): Rename from heuristic_proc_start;
+ don't count nop insns that occur between functions.
+ (alpha_heuristic_frame_unwind_cache): New; incorporate much of
+ heuristic_proc_desc, but without the mdebug wrapping.
+ (alpha_heuristic_frame_this_id): New.
+ (alpha_heuristic_frame_prev_register): New.
+ (alpha_heuristic_frame_unwind): New.
+ (alpha_heuristic_frame_p): New.
+ (alpha_heuristic_frame_base_address): New.
+ (alpha_heuristic_frame_base): New.
+ (alpha_unwind_dummy_id): New.
+ (alpha_unwind_pc): New.
+ (alpha_gdbarch_init): Don't set skip_sigtramp_frame. Kill use of
+ frame related deprecated initializations; install replacements.
+ (alpha_dump_tdep): Remove.
+ * alpha-tdep.h (struct gdbarch_tdep): Remove skip_sigtramp_frame.
+ (alpha_read_insn, alpha_after_prologue,
+ alpha_heuristic_frame_unwind_cache, alpha_heuristic_frame_this_id,
+ alpha_heuristic_frame_prev_register,
+ alpha_heuristic_frame_base_address, alpha_mdebug_init_abi): Declare.
+ * config/alpha/alpha-linux.mt (TDEPFILES): Add alpha-mdebug-tdep.o.
+ * config/alpha/tm-alpha.h (PRINT_EXTRA_FRAME_INFO): Remove.
+ * config/alpha/tm-alphalinux.h (SIGTRAMP_START, SIGTRAMP_END): Remove.
+
+2003-05-29 Andrew Cagney <cagney@redhat.com>
+
+ * gdb_assert.h (gdb_assert_fail): Provide different definitions
+ dependant on the availability of ASSERT_FUNCTION.
+ (ASSERT_FUNCTION): Do not define when there is no function name.
+
+2003-05-29 Kevin Buettner <kevinb@redhat.com>
+
+ From Jimi X <jimix@watson.ibm.com>:
+ * rs6000-tdep.c (skip_prologue): Improve support for 64-bit code.
+
+2003-05-28 Jim Blandy <jimb@redhat.com>
+
+ * ppc-linux-nat.c (store_altivec_registers): Don't cast fourth
+ argument to ptrace to int; the system headers should give it the
+ right type, and pointers don't fit in ints on powerpc64-*-*.
+
+2003-05-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * dwarf2read.c (process_die): Handle DW_TAG_try_block and
+ DW_TAG_catch_block.
+
+2003-05-26 Elena Zannoni <ezannoni@redhat.com>
+
+ * stabsread.c (dbx_lookup_type): Make static.
+ (read_type): Ditto.
+ (add_undefined_type): Ditto.
+ * stabsread.h (dbx_lookup_type, read_type, add_undefined_type): Do
+ not export.
+
+2003-05-26 Elena Zannoni <ezannoni@redhat.com>
+
+ * hpread.c (hpread_has_name): Make static.
+ (hpread_psymtab_to_symtab): Ditto.
+ (file_exists): Ditto.
+ (hpread_call_pxdb): Ditto.
+ (hpread_pxdb_needed): Ditto.
+ (hpread_quick_traverse): Ditto.
+ (hpread_get_header): Ditto.
+ (hpread_get_lntt): Ditto.
+ (hpread_get_slt): Ditto.
+ (class_of): Ditto.
+
+2003-05-25 Andreas Schwab <schwab@suse.de>
+
+ * m68k-tdep.c (m68k_gdbarch_init): Set parm_boundary instead of
+ stack_align and deprecated_extra_stack_alignment_needed.
+ (m68k_stack_align): Delete.
+
+ * m68k-tdep.c (m68k_register_raw_size): Remove cast.
+ (m68k_register_virtual_size): Likewise.
+ (altos_skip_prologue): Remove obsolete function.
+ (isi_frame_num_args): Likewise.
+ (news_frame_num_args): Likewise.
+ (m68k_fix_call_dummy): Make static.
+ (m68k_push_dummy_frame): Likewise.
+ (m68k_pop_frame): Likewise.
+ (m68k_skip_prologue): Likewise.
+ (m68k_frame_init_saved_regs): Likewise.
+ (m68k_saved_pc_after_call): Likewise.
+ (m68k_get_longjmp_target): Make multi-arch.
+ (m68k_gdbarch_init): Allocate and initialize gdbarch_tdep
+ structure. Register m68k_get_longjmp_target if enabled.
+ * m68k-tdep.h (struct gdbarch_tdep): Define.
+ * config/m68k/tm-m68k.h: Don't include "regcache.h".
+
+ * Makefile.in (config.status): Also depend on configure.tgt
+ and configure.host.
+ (m68klinux-tdep.o): Update dependencies.
+ * configure.tgt (m68*-*-linux*): Set gdb_multi_arch to 1.
+ * m68klinux-tdep.c (M68K_LINUX_JB_ELEMENT_SIZE): Define.
+ (M68K_LINUX_JB_PC): Define.
+ (m68k_linux_pc_in_sigtramp): Renamed from m68k_linux_in_sigtramp
+ and take additional parameter.
+ (m68k_linux_sigtramp_saved_pc): Update.
+ (m68k_linux_init_abi): Set jb_pc and jb_elt_size. Register
+ m68k_linux_pc_in_sigtramp, in_plt_section,
+ find_solib_trampoline_target.
+ * config/m68k/tm-linux.h: Don't include any tm headers.
+ (START_INFERIOR_TRAPS_EXPECTED): Remove definition.
+ (JB_ELEMENT_SIZE): Likewise.
+ (JB_PC): Likewise.
+ (GET_LONGJMP_TARGET): Likewise.
+ (IN_SIGTRAMP): Likewise.
+ (SVR4_SHARED_LIBS): Define this and include "solib.h".
+
+2003-05-25 Mark Kettenis <kettenis@gnu.org>
+
+ * sparc-tdep.c (sparc32_do_push_arguments): New function.
+ (sparc32_push_arguments): Re-implement by calling
+ sparc32_do_push_arguments.
+
+2003-05-25 Mark Kettenis <kettenis@gnu.org>
+
+ * sparc-tdep.c (SPARC_F0_REGNUM, SPARC_F1_REGNUM, SPARC_O0_REGNUM,
+ SPARC_O1_REGNUM): New defines.
+ (sparc32_extract_return_value): Rewrite to operate on a regcache.
+ (sparc32_store_return_value): New function.
+ (sparc_extract_struct_value_address): Rewrite to operate on a
+ regcache.
+ (sparc_gdbarch_init): Don't set
+ deprecated_extract_struct_value_address. Set
+ extract_struct_value_address instead. Don't set
+ deprecated_extract_return_value and deprecated_store_return_value
+ for 32-bit targets. Set extract_return_value and
+ store_return_value instead.
+ * config/sparc/tm-sparc.h (DEPRECATED_STORE_RETURN_VALUE,
+ DEPRECATED_EXTRACT_RETURN_VALUE,
+ DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Don't define these.
+ (STORE_RETURN_VALUE, EXTRACT_RETURN_VALUE,
+ EXTRACT_STRUCT_VALUE_ADDRESS): Define these instead.
+ (sparc_store_return_value): Remove prototype.
+ (sparc32_store_return_value): New prototype.
+ (sparc32_extract_return_value, sparc_extract_struct_value_address):
+ Adjust prototypes.
+
+2003-05-24 Mark Kettenis <kettenis@gnu.org>
+
+ * sparcnbsd-tdep.c: Include "gdb_string.h".
+
+2003-05-23 Andrew Cagney <cagney@redhat.com>
+
+ * p-valprint.c (pascal_val_print): Replace extract_address with
+ the inline equivalent extract_unsigned_integer.
+ * jv-valprint.c (java_value_print): Ditto.
+ * ada-valprint.c (ada_val_print_1): Ditto.
+ * ada-lang.h (EXTRACT_ADDRESS): Ditto.
+
+2003-05-23 Theodore A. Roth <troth@openavr.org>
+
+ * blockframe.c (frameless_look_for_prologue): Remove unused
+ after_prologue variable.
+
+2003-05-23 Mark Kettenis <kettenis@gnu.org>
+
+ * blockframe.c (get_pc_function_start): Rewrite to avoid
+ asignments in if-statements.
+
+2003-05-23 Raoul Gough <RaoulGough@yahoo.co.uk>
+
+ Committed by Elena Zannoni <ezannoni@redhat.com>.
+ * coffread.c(coff_symtab_read): Do relocate static symbols from PE
+ files, don't relocate absolute symbols (and do use mst_abs).
+
+2003-05-23 Andrew Cagney <cagney@redhat.com>
+
+ * objc-lang.c: Include "gdb_assert.h".
+ (objc_op_print_tab): Use OP_NULL and PREC_NULL instead of 0.
+ (CHECK, CHECK_FATAL, __CHECK_FUNCTION): Delete macros.
+ (gdb_check, gdb_check_fatal): Delete functions.
+ (read_objc_methlist_method): Replace CHECK and CHECK_FATAL with
+ gdb_assert.
+ (parse_selector, parse_method, find_methods, find_imps): Ditto.
+ * Makefile.in (objc-lang.o): Update dependencies.
+
+2003-05-22 Ian Lance Taylor <ian@airs.com>
+
+ * disasm.c (gdb_disassemble_info): Initialize disassemble_info
+ with fprintf_filtered, not fprintf_unfiltered.
+
+2003-05-22 Andrew Cagney <cagney@redhat.com>
+
+ * stack.c (frame_info): Inline extract_address, replacing it with
+ extract_unsigned_integer.
+ * findvar.c (unsigned_pointer_to_address): Ditto.
+ * dwarf2loc.c (dwarf_expr_read_reg): Ditto.
+ * dwarf2expr.c (dwarf2_read_address): Ditto.
+ * frame.c (frame_pc_unwind): Update comment.
+ * dummy-frame.c (deprecated_read_register_dummy): Update comment.
+
+2003-05-22 Jeff Johnston <jjohnstn@redhat.com>
+
+ * infptrace.c (detach): Call print_sys_errmsg rather than
+ perror_with_name to issue warning message when errno is non-zero
+ after calling ptrace detach.
+
+2003-05-21 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/tm-hppa.h: Delete some unused macros. Move some
+ macro definitions from here...
+ * hppa-tdep.c: ...to there.
+
+2003-05-20 Kevin Buettner <kevinb@redhat.com>
+
+ * mips-nat.c (REGISTER_PTRACE_ADDR): Convert macro to function
+ register_ptrace_addr(). Fix all callers.
+
+2003-05-21 Andreas Schwab <schwab@suse.de>
+
+ * Makefile.in (m68k-tdep.o, m68klinux-tdep.o): Update
+ dependencies.
+ * m68k-tdep.c (m68k_gdbarch_init): Call gdbarch_init_osabi at the
+ end.
+ * m68klinux-tdep.c (m68k_linux_init_abi): New function.
+ (_initialize_m68k_linux_tdep): New function.
+ (m68k_linux_frame_saved_pc): Make static.
+ (m68k_linux_extract_return_value): Likewise.
+ (m68k_linux_store_return_value): Likewise.
+ (m68k_linux_extract_struct_value_address): Likewise.
+ * config/m68k/tm-linux.h (DEPRECATED_EXTRACT_RETURN_VALUE):
+ Remove.
+ (DEPRECATED_STORE_RETURN_VALUE): Remove.
+ (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Remove.
+ (DEPRECATED_FRAME_SAVED_PC): Remove.
+
+2003-05-20 Kris Warkentin <kewarken@qnx.com>
+
+ * nto-tdep.c (fetch_core_registers): Match gdb's idea of
+ regset numbering rather than our own.
+
+2003-05-19 David Carlton <carlton@bactrian.org>
+
+ * config/djgpp/fnchange.lst: Add testsuite/gdb.c++/rtti*.
+
+2003-05-19 David Carlton <carlton@bactrian.org>
+
+ Partial fix for PR c++/827.
+ * cp-support.h: Include symtab.h.
+ Declare cp_lookup_symbol_nonlocal, cp_lookup_symbol_namespace.
+ * cp-namespace.c: Update contributors.
+ (cp_lookup_symbol_nonlocal): New.
+ (lookup_namespace_scope, cp_lookup_symbol_namespace)
+ (lookup_symbol_file): Ditto.
+ * c-lang.c (cplus_language_defn): Use cp_lookup_symbol_nonlocal.
+ * block.h: Declare block_scope, block_using, block_global_block.
+ * block.c (block_scope): New.
+ (block_using, block_global_block): Ditto.
+ * Makefile.in (cp_support_h): Depend on symtab_h.
+ * config/djgpp/fnchange.lst: Add testsuite/gdb.c++/namespace1.cc.
+
+2003-05-19 David Carlton <carlton@bactrian.org>
+
+ * language.h (struct language_defn): Add 'la_value_of_this'
+ and 'la_lookup_symbol_nonlocal' members.
+ * symtab.h: Declare basic_lookup_symbol_nonlocal,
+ lookup_symbol_static, lookup_symbol_global,
+ lookup_symbol_aux_block.
+ * symtab.c (lookup_symbol_aux): Call language hooks to determine
+ if we should search fields of this and how to do static/global
+ lookup.
+ (lookup_symbol_aux_block): Make extern.
+ (basic_lookup_symbol_nonlocal): New.
+ (lookup_symbol_static, lookup_symbol_global): Ditto.
+ * ada-lang.c (ada_language_defn): Set 'la_value_of_this' and
+ 'la_lookup_symbol_nonlocal' members.
+ * c-lang.c (c_language_defn, cplus_language_defn)
+ (asm_language_defn, minimal_language_defn): Ditto.
+ * jv-lang.c (java_language_defn): Ditto.
+ * language.c (unknown_language_defn, auto_language_defn)
+ (local_language_defn): Ditto.
+ * m2-lang.c (m2_language_defn): Ditto.
+ * objc-lang.c (objc_language_defn): Ditto.
+ * scm-lang.c (scm_language_defn): Ditto.
+ * f-lang.c (f_language_defn): Ditto, and include value.h as well.
+ * p-lang.c (pascal_language_defn): Ditto for both.
+ * Makefile.in (f-lang.o): Depend on value_h.
+ (p-lang.o): Ditto.
+
+2003-05-19 David Carlton <carlton@bactrian.org>
+
+ * block.h: Declare block_static_block.
+ * block.c (block_static_block): New.
+ * symtab.c (lookup_symbol_aux): Remove 'static_block' argument to
+ lookup_symbol_aux_local, calling block_static_block instead.
+ (lookup_symbol_aux_local): Delete 'static_block' argument.
+
+2003-05-19 David Carlton <carlton@bactrian.org>
+
+ * symtab.c (lookup_symbol_aux): Delete #if 0 hunk.
+
+2003-05-19 Michal Ludvig <mludvig@suse.cz>
+
+ * x86-64-tdep.c (x86_64_dwarf2gdb_regno_map): Fix
+ register numbers mapping.
+
+2003-05-18 Adam Fedor <fedor@gnu.org>
+
+ * symtab.c (completion_list_objc_symbol): New function.
+ (make_symbol_completion_list): Use it to add ObjC symbols
+ when looking though the list.
+ (language_search_unquoted_string): New function.
+ (make_file_symbol_completion_list): Use it.
+
+2003-05-18 Andreas Schwab <schwab@suse.de>
+
+ * Makefile (m68klinux-nat.o, m68klinux-tdep.o): Update
+ dependencies.
+ * config/m68k/tm-linux.h (DEPRECATED_EXTRACT_RETURN_VALUE): Define
+ as m68k_linux_extract_return_value.
+ (DEPRECATED_STORE_RETURN_VALUE): Define as
+ m68k_linux_store_return_value.
+ (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Define as
+ m68k_linux_extract_struct_value_address.
+ * m68klinux-tdep.c (m68k_linux_sigtramp_saved_pc): Use
+ get_next_frame, get_frame_base, get_frame_pc.
+ (m68k_linux_frame_saved_pc): Use get_frame_base.
+ (m68k_linux_extract_return_value): New function.
+ (m68k_linux_store_return_value): New function.
+ (m68k_linux_extract_struct_value_address): New function.
+ * config/m68k/tm-m68k.h: Declare m68k_get_longjmp_target.
+
+ * c-exp.y (typebase): Remove duplicate occurence of
+ `SIGNED_KEYWORD LONG LONG'. Use builtin_type_long_long instead
+ of lookup_signed_typename.
+
+2003-05-18 Mark Kettenis <kettenis@gnu.org>
+
+ * dwarf2loc.c (find_location_expression): Change type of second
+ argument to `size_t *'.
+ (loclist_read_variable, loclist_tracepoint_var_ref): Use size_t
+ for size variable.
+
+2003-05-18 David Carlton <carlton@bactrian.org>
+
+ * symtab.c (lookup_symbol_aux): Rename 'mangled_name' argument to
+ 'linkage_name'. Add comment.
+ (lookup_symbol_aux_local): Rename 'mangled_name' argument to
+ 'linkage_name'.
+ (lookup_symbol_aux_block, lookup_symbol_aux_symtabs)
+ (lookup_symbol_aux_psymtabs, lookup_symbol_aux_minsyms)
+ (lookup_block_symbol): Ditto.
+
+2003-05-16 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_REGISTER_BYTES): Rename REGISTER_BYTES.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * arm-linux-tdep.c (arm_linux_extract_return_value): Delete reference.
+ * TODO (REGISTER_BYTES): Delete reference.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init_32082): Update.
+ (ns32k_gdbarch_init_32382): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * i386-linux-tdep.c (i386_linux_init_abi): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_pop_frame): Update.
+ * rs6000-tdep.c (rs6000_pop_frame): Update.
+ * remote.c (init_remote_state): Update.
+ (remote_prepare_to_store): Update.
+ * remote-vx.c (vx_prepare_to_store): Update.
+ * remote-sds.c (sds_fetch_registers): Update.
+ (sds_prepare_to_store): Update.
+ * remote-array.c: Update.
+ * regcache.c (init_legacy_regcache_descr): Update.
+ (init_regcache_descr): Update.
+ * mips-tdep.c (mips_eabi_extract_return_value): Update.
+ (mips_o64_extract_return_value): Update.
+ * irix5-nat.c (fetch_core_registers): Update.
+ * irix4-nat.c (fetch_core_registers): Update.
+ * i386-tdep.h: Update.
+ * hppa-tdep.c (pa_do_registers_info): Update.
+ (pa_do_strcat_registers_info): Update.
+ * cris-tdep.c (cris_register_bytes_ok): Update.
+ * config/nm-gnu.h (CHILD_PREPARE_TO_STORE): Update.
+ * config/sparc/tm-sparc.h (DEPRECATED_REGISTER_BYTES): Update.
+ * config/sparc/nm-sun4sol2.h (CHILD_PREPARE_TO_STORE): Update.
+ * config/sparc/nm-sun4os4.h (CHILD_PREPARE_TO_STORE): Update.
+ * config/sparc/nm-nbsd.h (CHILD_PREPARE_TO_STORE): Update.
+ * config/sparc/tm-sp64.h (DEPRECATED_REGISTER_BYTES): Update.
+ * config/s390/tm-s390.h (DEPRECATED_REGISTER_BYTES): Update.
+ * config/pa/tm-hppa64.h (DEPRECATED_REGISTER_BYTES): Update.
+ * config/mips/tm-mips.h (DEPRECATED_REGISTER_BYTES): Update.
+ * config/mips/tm-irix6.h (DEPRECATED_REGISTER_BYTES): Update.
+ * config/mips/tm-irix5.h (DEPRECATED_REGISTER_BYTES): Update.
+ * config/m68k/tm-sun3.h (DEPRECATED_REGISTER_BYTES): Update.
+ (REGISTER_BYTES_OK): Update.
+ * config/m68k/nm-sun3.h (CHILD_PREPARE_TO_STORE): Update.
+ * config/ia64/tm-ia64.h (DEPRECATED_REGISTER_BYTES): Update.
+
+2003-05-16 Ian Lance Taylor <ian@airs.com>
+
+ * vax-tdep.c (INVALID_FLOAT, MAXLEN, NOPCODES): Don't define.
+ (vax_print_insn, print_insn_arg): Remove static functions.
+ (vax_gdbarch_init): Call set_gdbarch_print_insn with
+ print_insn_vax from opcodes library.
+ (_initialize_vax_tdep): Don't set deprecated_tm_print_insn.
+
+2003-05-15 Andrew Cagney <cagney@redhat.com>
+
+ * arch-utils.h (legacy_breakpoint_from_pc): Delete declaration.
+ * target.h (memory_breakpoint_from_pc): Delete declaration.
+ * mem-break.c (memory_breakpoint_from_pc): Delete function.
+ * arch-utils.c (legacy_breakpoint_from_pc): Delete function.
+ * monitor.c (monitor_insert_breakpoint): Use
+ gdbarch_breakpoint_from_pc instead of memory_breakpoint_from_pc.
+ * gdbarch.sh (BREAKPOINT_FROM_PC): Do not provide a default.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * sparc-tdep.c (sparc_breakpoint_from_pc): New function.
+ (sparc_gdbarch_init): Set breakpoint_from_pc to
+ sparc_breakpoint_from_pc.
+ * config/sparc/tm-sparc.h (BREAKPOINT): Delete macro.
+ (BREAKPOINT_FROM_PC): Define.
+ (sparc_breakpoint_from_pc): Declare.
+ * hppa-tdep.c (hppa_breakpoint_from_pc): New function.
+ * config/pa/tm-hppa.h (hppa_breakpoint_from_pc): Declare.
+ (BREAKPOINT_FROM_PC): Define.
+ (BREAKPOINT): Delete macro.
+ * target.h: Update comment.
+ * s390-tdep.c (s390_gdbarch_init): Update comments.
+ * remote.c: Update comments.
+ * remote-mips.c: Update comments.
+ * proc-api.c (write_with_trace): Do not check for a breakpoint.
+ * mem-break.c: Update comment.
+ * ia64-tdep.c (IA64_BREAKPOINT): Rename BREAKPOINT.
+ (ia64_memory_insert_breakpoint): Update.
+ * config/sparc/tm-sparc.h: Update comment.
+ * config/pa/tm-hppa64.h: Update comment.
+ * rs6000-tdep.c (BIG_BREAKPOINT, LITTLE_BREAKPOINT): Delete macro.
+ (rs6000_breakpoint_from_pc): Update.
+ * mips-tdep.c (BIG_BREAKPOINT, LITTLE_BREAKPOINT): Delete macro.
+ (PMON_BIG_BREAKPOINT, PMON_LITTLE_BREAKPOINT): Delete macro.
+ (IDT_LITTLE_BREAKPOINT, IDT_LITTLE_BREAKPOINT): Delete macro.
+ (MIPS16_LITTLE_BREAKPOINT, MIPS16_BIG_BREAKPOINT): Delete macro.
+ (mips_breakpoint_from_pc): Update.
+ (mips_dump_tdep): Update.
+
+ * symtab.h (DEPRECATED_SYMBOL_MATCHES_NAME): Delete macro.
+ * minsyms.c (lookup_minimal_symbol): Inline
+ DEPRECATED_SYMBOL_MATCHES_NAME. Replace STREQ with strcmp.
+
+ * c-lang.c (c_printstr): Delete "extern inspect_it" declaration.
+ * p-valprint.c (pascal_object_print_value_fields): Ditto.
+ * p-lang.c (pascal_printstr): Ditto.
+ * objc-lang.c (objc_printstr): Ditto.
+ * m2-lang.c (m2_printstr): Ditto.
+ * jv-valprint.c (java_print_value_fields): Ditto.
+ * f-lang.c (f_printstr): Ditto.
+ * cp-valprint.c (cp_print_value_fields): Ditto. Include "valprint.h".
+ * ada-valprint.c (inspect_it, repeat_count_threshold): Ditto, and
+ for repeat_count_threshold.
+ * Makefile.in (cp-valprint.o): Update dependencies.
+
+2003-05-15 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-tdep.c: Increase max_skip_non_prologue_insns to 40.
+ (examine_prologue): Support looking through leaf functions, knowing
+ they start with mov r2,r12. Support skipping over indirect stores
+ of the input registers. Upon hitting a non-nop branch instruction
+ or predicated instruction, bail out by setting lim_pc to the current
+ pc value in the loop. At the end, if the lim_pc value is still
+ beyond our calculated value and we have trust_limit set,
+ use the lim_pc value.
+
+2003-05-15 Andrew Cagney <cagney@redhat.com>
+
+ * dummy-frame.h (deprecated_find_dummy_frame_regcache): Rename
+ generic_find_dummy_frame.
+ * dummy-frame.c (deprecated_find_dummy_frame_regcache): Update.
+ (deprecated_generic_find_dummy_frame): Update.
+ (deprecated_read_register_dummy): Update.
+ * frame.c (deprecated_generic_get_saved_register): Update.
+
+2003-05-15 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_breakpoint_from_pc): New function.
+ (avr_gdbarch_init): Set breakpoint_from_pc method.
+
+2003-05-15 Andrew Cagney <cagney@redhat.com>
+
+ * regcache.c (build_regcache): Set deprecated_register_valid
+ directly.
+ (deprecated_grub_regcache_for_register_valid): Delete function.
+ * regcache.h (deprecated_grub_regcache_for_register_valid): Delete
+ declaration.
+
+2003-05-15 David Carlton <carlton@bactrian.org>
+
+ Committed by Elena Zannoni <ezannoni@redhat.com>
+ * symtab.c (lookup_symbol_aux): Delete calls to
+ lookup_symbol_aux_minsyms.
+ (lookup_symbol_aux_minsyms): Comment out function and
+ prototype. Delete lookup by mangled name.
+
+2003-05-14 Kevin Buettner <kevinb@redhat.com>
+
+ * dwarf2expr.c (new_dwarf_expr_context): Set ``stack_len'' to
+ correctly indicate an empty stack and ``stack_allocated'' to the
+ indicate the number of elements initially allocated.
+ (dwarf_expr_grow_stack): Simplify method for computing new
+ stack size. Don't loop infinitely if ``stack_len'' is zero.
+ (execute_stack_op): Move ``ctx->in_reg'' initialization
+ out of loop. Allow DW_OP_reg0 ... DW_OP_reg31 and DW_OP_regx to
+ be used in conjuction with DW_OP_piece. Revise error message
+ accordingly.
+
+2003-05-14 Theodore A. Roth <troth@openavr.org>
+
+ * MAINTAINERS: Update my email address.
+ * avr-tdep.c: Ditto.
+
+2003-05-14 Elena Zannoni <ezannoni@redhat.com>
+
+ * symtab.h (enum domain_enum): Rename from namespace_enum.
+ (UNDEF_DOMAIN, VAR_DOMAIN, STRUCT_DOMAIN, LABEL_DOMAIN,
+ VARIABLES_DOMAIN, FUNCTIONS_DOMAIN, TYPES_DOMAIN, METHODS_DOMAIN):
+ Rename from UNDEF_NAMESPACE, VAR_NAMESPACE, STRUCT_NAMESPACE,
+ LABEL_NAMESPACE, VARIABLES_NAMESPACE, FUNCTIONS_NAMESPACE,
+ TYPES_NAMESPACE, METHODS_NAMESPACE.
+ (SYMBOL_NAMESPACE): Rename to SYMBOL_DOMAIN.
+ (struct symbol, struct partial_symbol): Rename field
+ 'namespace_enum namespace' to 'domain_enum domain'.
+ (PSYMBOL_NAMESPACE): Rename to PSYMBOL_DOMAIN.
+ Delete old define kludge for namespace.
+
+ * ada-exp.y, ada-lang.c, ada-lang.h, alpha-tdep.c, arm-tdep.c,
+ blockframe.c, c-exp.y, c-valprint.c, coffread.c, dbxread.c,
+ dwarf2read.c, dwarfread.c, f-exp.y, gdbtypes.c, gdbtypes.h,
+ gnu-v3-abi.c, hppa-tdep.c, hpread.c, jv-exp.y, jv-lang.c,
+ language.c, linespec.c, m2-exp.y, m3-nat.c, mdebugread.c,
+ mips-tdep.c, nlmread.c, objc-exp.y, objc-lang.c, objfiles.c,
+ p-exp.y, p-valprint.c, parse.c, printcmd.c, scm-lang.c, source.c,
+ stabsread.c, stack.c, symfile.c, symfile.h, symmisc.c, symtab.c,
+ valops.c, values.c, xcoffread.c, xstormy16-tdep.c: Replace all
+ occurrences of the above.
+
+2003-05-14 Ian Lance Taylor <ian@airs.com>
+
+ * Makefile.in (install-only): Use $(SHELL) when running
+ mkinstalldirs.
+
+2003-05-13 Ian Lance Taylor <ian@airs.com>
+
+ * MAINTAINERS (write after approval): Add myself.
+
+ * ser-pipe.c (_initialize_ser_pipe): Correct call to memset--swap
+ second and third arguments.
+ * ser-tcp.c (_initialize_ser_tcp): Likewise.
+ * ser-unix.c (_initialize_ser_hardwire): Likewise.
+
+2003-05-13 Andrew Cagney <cagney@redhat.com>
+
+ * defs.h (store_address): Delete declaration.
+ findvar.c (store_address): Delete function.
+ * arm-tdep.c (arm_push_dummy_call): Replace store_address with
+ store_unsigned_integer.
+ * xstormy16-tdep.c (xstormy16_address_to_pointer): Ditto.
+ * v850-tdep.c (v850_push_arguments): Ditto.
+ * sparc-tdep.c (sparc_get_saved_register): Ditto.
+ * sh-tdep.c (sh64_get_saved_register): Ditto.
+ * rs6000-tdep.c (rs6000_push_arguments): Ditto.
+ * ppc-sysv-tdep.c (ppc_sysv_abi_push_arguments): Ditto.
+ * mips-tdep.c (mips_eabi_push_arguments): Ditto.
+ (mips_get_saved_register): Ditto.
+ * ia64-tdep.c (ia64_get_saved_register): Ditto.
+ (find_func_descr, ia64_push_arguments): Ditto.
+ * i386-tdep.c (i386_push_arguments): Ditto.
+ * hpux-thread.c (hpux_thread_fetch_registers): Ditto.
+ * frv-tdep.c (frv_push_arguments): Ditto.
+ * frame.c (legacy_saved_regs_prev_register): Ditto.
+ (deprecated_generic_get_saved_register): Ditto.
+ * findvar.c (unsigned_address_to_pointer): Ditto.
+ * dwarf2read.c (dwarf2_const_value): Ditto.
+ * arm-linux-tdep.c (arm_linux_push_arguments): Ditto.
+ * alpha-tdep.c (alpha_push_arguments): Ditto.
+
+2003-05-12 J. Brobecker <brobecker@gnat.com>
+
+ * NEWS: Mention that the hppa-hpux port has been partially
+ multiarched (32bit ABIT only, so far).
+
+2003-05-11 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (mi-symbol-cmds.o): Rename mi-cmd-symbol.
+ * config/djgpp/fnchange.lst: Rename include/xtensa-isa-internal.h,
+ include/xtensa-isa.h, sim/testsuite/sim/arm/misaligned1.ms,
+ sim/testsuite/sim/arm/misaligned2.ms, and
+ sim/testsuite/sim/arm/misaligned3.ms.
+ * disasm.h (struct ui_file): Add opaque struct declaration.
+ * config/pa/tm-hppa64.h (struct type, struct frame_info): Ditto.
+ * frame.h (struct ui_file): Ditto.
+
+2003-05-11 Mark Kettenis <kettenis@gnu.org>
+
+ * value.h: Pretty print.
+
+2003-05-10 Mark Kettenis <kettenis@gnu.org>
+
+ * config/i386/tm-linux.h (I386_GNULINUX_TARGET): Remove define.
+
+2003-05-08 Andrew Cagney <cagney@redhat.com>
+
+ * regcache.h (max_register_size): Delete declaration.
+ * regcache.c (max_register_size): Delete function.
+ (struct regcache_descr): Delete field "max_register_size".
+ (init_regcache_descr, init_legacy_regcache_descr): Assert that all
+ registers fit in MAX_REGISTER_SIZE.
+ (regcache_save): Replace max_register_size with MAX_REGISTER_SIZE.
+ (regcache_restore, regcache_xfer_part, regcache_dump): Ditto.
+ * thread-db.c: Replace max_register_size with MAX_REGISTER_SIZE.
+ * sh-tdep.c, rom68k-rom.c, remote-sim.c, remote-mips.c: Ditto.
+ * remote-e7000.c, monitor.c, mipsv4-nat.c, mips-nat.c: Ditto.
+ * m68klinux-nat.c, lynx-nat.c, irix4-nat.c: Ditto.
+ * hpux-thread.c, hppah-nat.c, hppab-nat.c, hppa-tdep.c: Ditto.
+ * dve3900-rom.c, hppa-tdep.c: Ditto.
+
+2003-05-08 David Carlton <carlton@math.stanford.edu>
+
+ * valops.c (push_word): Fix typo.
+
+2003-05-08 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Delete references to MAX_REGISTER_RAW_SIZE.
+ * gdbarch.h: Re-generate.
+ * defs.h (MAX_REGISTER_RAW_SIZE): Delete macro.
+ (legacy_max_register_raw_size): Delete declaration.
+ * regcache.c (legacy_max_register_raw_size): Delete function.
+ * valops.c: Replace MAX_REGISTER_RAW_SIZE with MAX_REGISTER_SIZE.
+ * target.c, stack.c, sparc-tdep.c, sh-tdep.c: Ditto.
+ * rs6000-tdep.c, rs6000-nat.c, remote.c, remote-sim.c: Ditto.
+ * remote-rdp.c, remote-array.c, regcache.c: Ditto.
+ * ppc-linux-nat.c, monitor.c, mn10300-tdep.c: Ditto.
+ * mips-tdep.c, mips-linux-tdep.c, m68klinux-nat.c: Ditto.
+ * infptrace.c, ia64-tdep.c, i386-tdep.c, frame.c: Ditto.
+ * findvar.c, dwarf2cfi.c: Ditto.
+
+2003-05-08 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (read_signed_register): New function, moved to here
+ from "regcache.c".
+ (read_signed_register_pid): Ditto.
+ * regcache.c (read_signed_register_pid): Delete function, moved to
+ "mips-tdep.c".
+ (read_signed_register): Ditto.
+ * regcache.h (read_signed_register): Delete declaration.
+ (read_signed_register_pid): Delete declaration.
+
+2003-05-08 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Add comments on MAX_REGISTER_SIZE.
+ * gdbarch.h: Re-generate.
+ * defs.h (MAX_REGISTER_VIRTUAL_SIZE): Delete macro.
+ (legacy_max_register_virtual_size): Delete declaration.
+ * infcmd.c (default_print_registers_info): Use MAX_REGISTER_SIZE.
+ * d10v-tdep.c (d10v_print_registers_info): Ditto.
+ * tracepoint.c (memrange_sortmerge): Ditto.
+ * sparc-tdep.c (sparc_print_registers): Ditto.
+ * regcache.c (legacy_max_register_virtual_size): Delete function.
+
+2002-05-08 J. Brobecker <brobecker@gnat.com>
+
+ * fork-child.c (escape_bang_in_quoted_argument): New function.
+ (fork_inferior): Escape '!' characters in quoted arguments
+ only when needed.
+
+2003-05-08 J. Brobecker <brobecker@gnat.com>
+
+ * dwarf2read.c (set_cu_language): Set the language to "minimal" if
+ the language of the CU is not currently supported by GDB.
+
+2003-05-08 J. Brobecker <brobecker@gnat.com>
+
+ * defs.h (language): Add language_minimal enum value.
+ * c-lang.c (minimal_language_defn): New language definition.
+ (_initialize_c_language): Add the new minimal language to the list
+ of languages known to GDB.
+
+2003-05-08 Kevin Buettner <kevinb@redhat.com>
+
+ * frame.c (get_frame_type): Don't attempt to lazily initialize
+ frame's unwinder for legacy frames.
+
+2003-05-07 Andrew Cagney <cagney@redhat.com>
+
+ * ia64-tdep.c (ia64_remote_translate_xfer_address): Add "gdbarch"
+ and "regcache" parameters.
+ * avr-tdep.c (avr_remote_translate_xfer_address): Ditto.
+
+2003-05-07 Jeff Johnston <jjohnstn@redhat.com>
+
+ * dwarf2read.c (dwarf_decode_lines): Only use output of
+ check_cu_functions() when calling record_line(). Do not update
+ the current address.
+
+2003-05-07 Andrew Cagney <cagney@redhat.com>
+
+ * fork-child.c (startup_inferior): Delete #ifdef STARTUP_INFERIOR
+ code.
+
+2003-05-07 Jim Blandy <jimb@redhat.com>
+
+ Rename commands 'maint list symtabs' and 'maint list psymtabs' to
+ 'maint info symtabs' and 'maint info psymtabs'.
+ * symmisc.c (maintenance_info_symtabs, maintenance_info_psymtabs):
+ Renamed from maintenance_list_symtabs and maintenance_list_psymtabs.
+ * symtab.h (maintenance_info_symtabs, maintenance_info_psymtabs):
+ Declarations updated.
+ * maint.c (maintenance_list_command): Delete.
+ (_initialize_maint_cmds): Update calls to add_cmd.
+ * gdbcmd.h (maintenancelistlist): Delete declaration.
+ * cli/cli-cmds.c (maintenancelistlist): Delete.
+ (init_cmd_lists): Don't initialize it.
+ * cli/cli-cmds.h (maintenancelistlist): Delete declaration.
+
+2003-05-07 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (remote_d10v_translate_xfer_address): Add
+ "regcache".
+ (d10v_print_registers_info): Update.
+ (d10v_dmap_register, d10v_imap_register): Delete functions.
+ (struct gdbarch_tdep): Add "regcache" parameter to "dmap_register"
+ and "imap_register".
+ (d10v_ts2_dmap_register, d10v_ts2_imap_register): Add "regcache".
+ (d10v_ts3_dmap_register, d10v_ts3_imap_register): Add "regcache".
+ * arch-utils.c (generic_remote_translate_xfer_address): Add
+ "regcache" and "gdbarch" parameters.
+ * gdbarch.sh (REMOTE_TRANSLATE_XFER_ADDRESS): Add "regcache"
+ parameter. Change class to multi-arch.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * remote.c (remote_xfer_memory): Use
+ gdbarch_remote_translate_xfer_address.
+
+2003-05-07 Jeff Johnston <jjohnstn@redhat.com>
+
+ * infrun.c (prev_pc): Move declaration ahead of proceed().
+ (proceed): Refresh prev_pc value before resuming.
+ (stop_stepping): Remove code to refresh prev_pc.
+
+2003-05-06 Kris Warkentin <kewarken@qnx.com>
+
+ * nto-tdep.c: Removed stray comment.
+
+2003-05-06 Kris Warkentin <kewarken@qnx.com>
+
+ * i386-nto-tdep.c: Fix old K&R function definitions.
+ * nto-tdep.c: Likewise and change stat.h include to gdb_stat.h.
+ Also change add_show_from_set() call to add_setshow_cmd().
+ * nto-tdep.h: Remove PARAMS and grep ^func ARI hits.
+
+2003-05-05 Andrew Cagney <cagney@redhat.com>
+
+ * dummy-frame.c: Include "command.h" and "gdbcmd.h".
+ (fprint_dummy_frames): New function.
+ (maintenance_print_dummy_frames): New function.
+ (_initialize_dummy_frame): Add command "maint print dummy-frames".
+ * frame.c (fprint_frame_id): Make global.
+ * frame.h (fprint_frame_id): Declare.
+ * Makefile.in (dummy-frame.o): Update dependencies.
+
+2003-05-05 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_REGISTER_SIZE): Rename REGISTER_SIZE.
+ (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS): Rename
+ SIZEOF_CALL_DUMMY_WORDS.
+ (DEPRECATED_CALL_DUMMY_WORDS): Rename CALL_DUMMY_WORDS.
+ (DEPRECATED_FIX_CALL_DUMMY): Rename FIX_CALL_DUMMY.
+ (DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET): Rename
+ CALL_DUMMY_BREAKPOINT_OFFSET.
+ (DEPRECATED_CALL_DUMMY_START_OFFSET): Rename
+ CALL_DUMMY_START_OFFSET.
+ (DEPRECATED_CALL_DUMMY_LENGTH): Rename CALL_DUMMY_LENGTH.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * alpha-tdep.c, alphafbsd-tdep.c, arm-linux-tdep.c: Update.
+ * arm-tdep.c, avr-tdep.c, breakpoint.c, cris-tdep.c: Update.
+ * dummy-frame.c, dummy-frame.h, frv-tdep.c, gdbarch.c: Update.
+ * gdbarch.h, gdbarch.sh, h8300-tdep.c, hppa-tdep.c: Update.
+ * i386-tdep.c, ia64-tdep.c, infcall.c, inferior.h: Update.
+ * m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c: Update.
+ * mips-tdep.c, mn10300-tdep.c, ns32k-tdep.c: Update.
+ * rs6000-tdep.c, s390-tdep.c, sh-tdep.c, sol-thread.c: Update.
+ * sparc-tdep.c, target.c, v850-tdep.c, valops.c: Update.
+ * vax-tdep.c, x86-64-tdep.c, xstormy16-tdep.c: Update.
+ * config/ia64/tm-ia64.h, config/m68k/tm-vx68.h: Update.
+ * config/mips/tm-mips.h, config/pa/nm-hppah.h: Update.
+ * config/pa/tm-hppa.h, config/pa/tm-hppa64.h: Update.
+ * config/s390/tm-s390.h, config/sparc/tm-sp64.h: Update.
+ * config/sparc/tm-sparc.h: Update.
+
+2003-05-05 Kris Warkentin <kewarken@qnx.com>
+
+ * configure.tgt: Add i[3456]86-*-nto*.
+ * i386-nto-tdep.c: New file. i386 specific support for QNX Neutrino.
+ * nto-tdep.c: New file. Neutrino target support routines.
+ * nto-tdep.h: New file. Neutrino target header.
+ * config/tm-qnxnto.h: New file.
+ * config/i386/i386nto.mt: New file.
+ * config/i386/tm-i386nto.h: New file.
+
+2003-05-04 Andrew Cagney <cagney@redhat.com>
+
+ * gdbthread.h (save_infrun_state): Drop prev_func_name parameter.
+ (load_infrun_state): Ditto.
+ (struct thread_info): Drop "prev_func_name" field.
+ * thread.c (load_infrun_state): Update.
+ (save_infrun_state): Update.
+ * infrun.c (prev_func_name): Delete variable.
+ (init_wait_for_inferior): Do not clear prev_func_name.
+ (stop_stepping, keep_going, context_switch): Do not swap
+ prev_func_name.
+ (handle_inferior_event, check_sigtramp2): Use pc_in_sigtramp
+ instead of PC_IN_SIGTRAMP.
+
+2003-05-04 Andrew Cagney <cagney@redhat.com>
+
+ * sentinel-frame.c (sentinel_frame_prev_register): Replace
+ REGISTER_BYTE with register_offset_hack.
+ * regcache.c (init_regcache_descr): When REGISTER_BYTE_P, check
+ that REGISTER_BYTE is consistent with the regcache.
+ * gdbarch.sh (REGISTER_BYTE): Add a predicate.
+ * gdbarch.h, gdbarch.c: Regenerate.
+
+2003-05-04 Mark Kettenis <kettenis@gnu.org>
+
+ * i387-tdep.c (fxsave_offset): Add entries for %xmm8-%xmm15.
+ (FXSAVE_ADDR, i387_supply_fxsave): Add support for %xmm8-%xmm15.
+
+ * i386-linux-nat.c (supply_gregset): Remove unnecessary casts.
+
+2003-05-03 J. Brobecker <brobecker@gnat.com>
+
+ From Thierry Schneider <tpschneider1@yahoo.com>
+ * Makfile.in (SUBDIR_MI_OBS): Add dependency on mi-cmd-symbol.o.
+ (SUBDIR_MI_SRCS): Add mi-cmd-symbol.c.
+ (mi-cmd-symbol.o): Add rule.
+
+2003-05-03 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (PUSH_DUMMY_CODE): New architecture method, add
+ comments noteing that it replaces the old FIX_CALL_DUMMY code.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * d10v-tdep.c (d10v_push_dummy_code): New function.
+ (d10v_gdbarch_init): Set push_dummy_code.
+ * infcall.c (legacy_push_dummy_code): New function.
+ (generic_push_dummy_code): New function.
+ (push_dummy_code): New function.
+ (call_function_by_hand): Call push_dummy_code. Pass bp_addr,
+ instead of dummy_addr, to push_dummy_call. Move call to
+ generic_save_call_dummy_addr to outside of CALL_DUMMY_LOCATION
+ switch.
+ * sparc-tdep.c (sparc_gdbarch_init): Mention push_dummy_code.
+
+2003-05-03 Andrew Cagney <cagney@redhat.com>
+
+ * disasm.h (print_insn): Declare.
+ * disasm.c (init_gdb_disassemble_info): New function.
+ (gdb_disassembly): Call init_gdb_disassemble_info.
+ (gdb_print_insn): New function.
+ * v850-tdep.c (v850_scan_prologue): Call gdb_print_insn, instead
+ of TARGET_PRINT_INSN. Send debug info to "gdb_stdlog".
+ * mcore-tdep.c: Include "disasm.h"
+ (mcore_dump_insn): Call gdb_print_insn, instead of TARGET_PRINT_INSN.
+ * d10v-tdep.c: Include "disasm.h".
+ (display_trace): Call gdb_print_insn, instead of print_insn.
+ (print_insn): Delete function.
+ * printcmd.c: Include "disasm.h".
+ (print_insn): Delete function.
+ (print_formatted): Call gdb_print_insn, instead of print_insn.
+ * Makefile.in (printcmd.o): Update dependencies.
+ (mcore-tdep.o, d10v-tdep.o): Ditto.
+
+2003-05-02 Andrew Cagney <cagney@redhat.com>
+
+ * std-regs.c (value_of_builtin_frame_pc_reg): Delete #ifdef
+ PC_REGNUM, re-indent.
+ * stack.c (frame_info): Use "pc" for the name of get_frame_pc when
+ PC_REGNUM isn't set.
+
+ * gdbarch.sh (REGISTER_SIZE, REGISTER_BYTES): Make optional.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * d10v-tdep.c (d10v_gdbarch_init): Do not set register_size,
+ register_virtual_size, pc_regnum, or register_bytes.
+ (D10V_PC_REGNUM): Rename _PC_REGNUM.
+ (d10v_register_type): Use D10V_PC_REGNUM.
+ (d10v_print_registers_info, d10v_read_pc): Ditto.
+ (d10v_write_pc, d10v_eva_prepare_to_trace): Ditto.
+ (d10v_unwind_pc, d10v_frame_prev_register): Ditto.
+
+2003-05-02 David Carlton <carlton@bactrian.org>
+
+ * objfiles.c (allocate_objfile): For anonymous objfiles, allocate
+ the name with mstrsave.
+
+2003-05-02 Elena Zannoni <ezannoni@redhat.com>
+
+ * charset.c (GDB_DEFAULT_TARGET_CHARSET,
+ GDB_DEFAULT_HOST_CHARSET): Move to earlier in the file.
+ (host_charset_name, target_charset_name): New vars for use by
+ set/show commands.
+ (host_charset_enum, target_charset_enum): New enums for set/show
+ commands.
+ (set_charset_sfunc, set_host_charset_sfunc,
+ set_target_charset_sfunc): New functions.
+ (set_host_charset, set_target_charset): Make static.
+ (list_charsets, set_host_charset_command,
+ set_target_charset_command): Delete functions.
+ (show_charset_command): Rewrite as....
+ (show_charset): Hook this up with the set/show command mechanism.
+ (_initialize_charset): Change names of charsets to match the
+ set/show enums. Use host_charset_name and target_charset_name.
+ Use set/show mechanism for charset, host-charset, target-charset
+ commands. Do not make 'show host-charset' and 'show
+ target-charset' be aliases of 'show charset'.
+
+ * charset.h (set_host_charset, set_target_charset): Don't export,
+ they are not used outside the file.
+
+2003-05-01 Andrew Cagney <cagney@redhat.com>
+
+ * disasm.c (gdb_disassemble_from_exec): Delete global variable.
+ (gdb_disassembly): Make "di" non static, always initialize and
+ cleanup. Always use dis_asm_read_memory.
+ (gdb_dis_asm_read_memory): Delete function.
+
+2003-05-01 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (d10v_frame_align): Replace d10v_stack_align.
+ (d10v_gdbarch_init): Set frame_align instead of stack_align.
+
+2003-04-30 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (deprecated_tm_print_insn_info): Rename
+ "tm_print_insn_info".
+ (TARGET_PRINT_INSN_INFO): Delete macro.
+ (dis_asm_read_memory): Delete function declaration.
+ (dis_asm_memory_error, dis_asm_print_address): Ditto.
+ (tm_print_insn_info): Delete variable definition.
+ (_initialize_gdbarch): Do not initialize "tm_print_insn_info".
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * d10v-tdep.c (display_trace): Replace "tm_print_insn_info" with
+ "deprecated_tm_print_insn_info".
+ * mcore-tdep.c (mcore_dump_insn): Ditto.
+ * mips-tdep.c (mips_gdbarch_init): Ditto.
+ * sparc-tdep.c (_initialize_sparc_tdep): Ditto.
+ * v850-tdep.c (v850_scan_prologue, v850_gdbarch_init): Ditto.
+ * ia64-tdep.c (_initialize_ia64_tdep): Ditto.
+ * printcmd.c (print_insn): Use "deprecated_tm_print_insn_info"
+ instead of TARGET_PRINT_INSN_INFO, add comment.
+ * s390-tdep.c (s390_get_frame_info): Instead of
+ "dis_asm_read_memory", use "deprecated_tm_print_insn_info".
+ (s390_check_function_end, s390_is_sigreturn): Ditto.
+ * corefile.c (dis_asm_read_memory): Move to "disasm.c".
+ (dis_asm_memory_error, dis_asm_print_address): Ditto.
+ * disasm.c: Include "gdbcore.h".
+ (_initialize_disasm): New function, initialize
+ "deprecated_tm_print_insn_info".
+ (deprecated_tm_print_insn_info): New variable.
+ (dis_asm_read_memory): Moved from "corefile.c", made static.
+ (dis_asm_print_address, dis_asm_memory_error): Ditto.
+ * Makefile.in (disasm.o): Update dependencies.
+
+2003-04-30 Andrew Cagney <cagney@redhat.com>
+
+ * sparc-tdep.c (SPARC_HAS_FPU): When multi-arch, define as 1.
+
+2003-04-29 Adam Fedor <fedor@gnu.org>
+
+ * eval.c (evaluate_subexp_standard): Handle ObjC ops.
+ * infcall.c (find_function_addr): Make non-static.
+ * infcall.h (find_function_addr): Declare.
+ * Makefile.in (eval.o): Update dependencies.
+
+2003-04-28 Adam Fedor <fedor@gnu.org>
+
+ * symtab.c (symbol_find_demangled_name): Check for and demangle
+ ObjC symbols.
+ (symbol_init_demangled_name): Init for language_objc as well.
+
+2003-04-28 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_TARGET_READ_FP): Replace TARGET_READ_FP.
+ (DEPRECATED_FP_REGNUM): Replace FP_REGNUM.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * infcall.c (call_function_by_hand): Use DEPRECATED_FP_REGNUM,
+ DEPRECATED_TARGET_READ_FP, or "sp" to create the dummy frame ID.
+ * inferior.h (deprecated_read_fp): Rename read_fp.
+ (generic_target_read_fp): Delete declaration.
+ * regcache.c (generic_target_read_fp): Delete function.
+ (deprecated_read_fp): Replace read_fp, use
+ DEPRECATED_TARGET_READ_FP or DEPRECATED_FP_REGNUM.
+ * d10v-tdep.c (d10v_read_fp): Delete function.
+ (d10v_gdbarch_init): Do not set deprecated_read_fp.
+
+ * sparc-tdep.c (sparc_gdbarch_init): Do not set
+ deprecated_target_read_fp to generic_target_read_fp.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Set
+ deprecated_fp_regnum.
+ * x86-64-tdep.c (x86_64_init_abi): Ditto.
+ * vax-tdep.c (vax_gdbarch_init): Ditto.
+ * v850-tdep.c (v850_gdbarch_init): Ditto.
+ * sparc-tdep.c (sparc_gdbarch_init): Ditto.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+ * m68k-tdep.c (m68k_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * i386-tdep.c (i386_gdbarch_init): Ditto.
+ * hppa-tdep.c (hppa_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * avr-tdep.c (avr_gdbarch_init): Ditto.
+ * arm-tdep.c (arm_gdbarch_init): Ditto.
+ * alpha-tdep.c (alpha_gdbarch_init): Ditto.
+
+ * x86-64-tdep.c (x86_64_init_abi): Set deprecated_target_read_fp.
+ * v850-tdep.c (v850_gdbarch_init): Ditto.
+ * sparc-tdep.c (sparc_gdbarch_init): Ditto.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * mips-tdep.c (mips_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * hppa-tdep.c (hppa_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * avr-tdep.c (avr_gdbarch_init): Ditto.
+ * arm-tdep.c (arm_gdbarch_init): Ditto.
+
+ * vax-tdep.c (vax_frame_init_saved_regs): Replace FP_REGNUM with
+ DEPRECATED_FP_REGNUM.
+ (vax_push_dummy_frame, vax_pop_frame): Ditto.
+ * std-regs.c (value_of_builtin_frame_fp_reg): Ditto.
+ * sparc-tdep.c (sparc_init_extra_frame_info): Ditto.
+ (sparc_push_dummy_frame, sparc64_read_fp): Ditto.
+ (sparc32_register_virtual_type): Ditto.
+ * sh-tdep.c (sh64_frame_chain): Ditto.
+ (sh64_get_saved_register, sh64_pop_frame): Ditto.
+ (sh_nofp_frame_init_saved_regs): Ditto.
+ (sh64_nofp_frame_init_saved_regs): Ditto.
+ (sh_fp_frame_init_saved_regs): Ditto.
+ * remote-mips.c (mips_wait, mips_fetch_registers): Ditto.
+ * remote-e7000.c (fetch_regs_from_dump): Ditto.
+ * procfs.c (procfs_fetch_registers): Ditto.
+ (procfs_store_registers): Ditto.
+ * ns32knbsd-nat.c (fetch_inferior_registers): Ditto.
+ (store_inferior_registers, fetch_core_registers): Ditto.
+ (fetch_kcore_registers, clear_regs): Ditto.
+ * ns32k-tdep.c (ns32k_frame_init_saved_regs): Ditto.
+ (ns32k_push_dummy_frame, ns32k_pop_frame): Ditto.
+ * nlm/i386.h (DEPRECATED_FP_REGNUM): Ditto.
+ * nlm/i386.c (do_status): Ditto.
+ * mipsv4-nat.c (supply_gregset): Ditto.
+ * mips-tdep.c: Ditto for comments.
+ * mips-nat.c (fetch_inferior_registers): Ditto.
+ (store_inferior_registers, fetch_core_registers): Ditto.
+ * m68k-tdep.c (m68k_push_dummy_frame): Ditto.
+ (m68k_pop_frame, m68k_frame_init_saved_regs): Ditto.
+ * i386-tdep.c (i386_frame_init_saved_regs): Ditto.
+ (i386_do_pop_frame, i386_register_type): Ditto.
+ * hppa-tdep.c (hppa_frame_chain): Ditto.
+ (hppa_push_dummy_frame, find_dummy_frame_regs): Ditto.
+ (hppa_pop_frame, hppa_read_fp): Ditto.
+ (skip_prologue_hard_way, hppa_frame_find_saved_regs): Ditto.
+ * cris-tdep.c (cris_examine, cris_pop_frame): Ditto.
+ * config/vax/nm-vax.h (REGISTER_U_ADDR): Ditto.
+ * config/sparc/tm-sparc.h (DEPRECATED_FP_REGNUM): Ditto.
+ * config/sparc/tm-sp64.h (DEPRECATED_FP_REGNUM): Ditto.
+ * config/s390/tm-s390.h (DEPRECATED_FP_REGNUM): Ditto.
+ * config/pa/tm-hppa64.h (DEPRECATED_FP_REGNUM): Ditto.
+ * config/ia64/tm-ia64.h (DEPRECATED_FP_REGNUM): Ditto.
+ * blockframe.c: Ditto for comments.
+ * arch-utils.h: Ditto for comments.
+ * arch-utils.c (legacy_virtual_frame_pointer): Ditto.
+ * alphanbsd-tdep.c (fetch_core_registers): Ditto.
+ * alphabsd-nat.c (fetch_inferior_registers): Ditto.
+ * alpha-tdep.h: Ditto for comments.
+ * alpha-tdep.c (alpha_cannot_fetch_register): Ditto.
+ (alpha_cannot_store_register): Ditto.
+ (alpha_push_dummy_frame): Ditto.
+ * alpha-nat.c (supply_gregset): Ditto.
+
+ * config/sparc/tm-sp64.h (DEPRECATED_TARGET_READ_FP): Update.
+ * config/pa/tm-hppa64.h (DEPRECATED_TARGET_READ_FP): Update.
+ * config/sparc/tm-sparc.h: Update comment.
+
+ * hppa-tdep.c (hppa_init_extra_frame_info): Use
+ deprecated_read_fp instead of TARGET_READ_FP.
+ (hppa_init_extra_frame_info, hppa_frame_chain): Ditto.
+ (hppa_push_dummy_frame, hppa_read_fp): Ditto.
+ * sparc-tdep.c (sparc_init_extra_frame_info): Use
+ deprecated_read_fp instead of read_fp.
+ * s390-tdep.c (s390_push_arguments): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * frame.h: Ditto in comments.
+ * frame.c (legacy_get_prev_frame): Ditto.
+ * dummy-frame.c (dummy_frame_this_id): Ditto.
+ * arm-tdep.c (arm_init_extra_frame_info): Ditto.
+
+2003-04-28 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (deprecated_tm_print_insn): Rename tm_print_insn.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * xstormy16-tdep.c (_initialize_xstormy16_tdep): Update.
+ * vax-tdep.c (_initialize_vax_tdep): Update.
+ * v850-tdep.c (_initialize_v850_tdep): Update.
+ * sparc-tdep.c (_initialize_sparc_tdep): Update.
+ * s390-tdep.c (_initialize_s390_tdep): Update.
+ * ns32k-tdep.c (_initialize_ns32k_tdep): Update.
+ * mn10300-tdep.c (_initialize_mn10300_tdep): Update.
+ * mips-tdep.c (_initialize_mips_tdep): Update.
+ * mcore-tdep.c (_initialize_mcore_tdep): Update.
+ * m68k-tdep.c (_initialize_m68k_tdep): Update.
+ * ia64-tdep.c (_initialize_ia64_tdep): Update.
+ * hppa-tdep.c (_initialize_hppa_tdep): Update.
+ * h8300-tdep.c (_initialize_h8300_tdep): Update.
+ * frv-tdep.c (_initialize_frv_tdep): Update.
+ * cris-tdep.c (cris_delayed_get_disassembler): Update.
+ (_initialize_cris_tdep): Update.
+ * arch-utils.c (legacy_print_insn): Update.
+ * alpha-tdep.c (_initialize_alpha_tdep): Update.
+
+2003-04-26 Adam Fedor <fedor@gnu.org>
+
+ * linespec.c (decode_objc): New function to decode ObjC calls
+ (decode_line_1): Check for ObjC calls (using decode_objc)
+ * Makefile (linespec.o): Update dependencies.
+
+2003-04-26 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.h (struct breakpoint_ops): New.
+ (struct breakpoint): Add ops member.
+
+ * breakpoint.c (print_bp_stop_message, print_one_breakpoint)
+ (mention): Use new breakpoint ops member.
+ (set_raw_breakpoint): Initialize ops field to NULL.
+ (print_exception_catchpoint, print_one_exception_catchpoint)
+ (print_mention_exception_catchpoint, handle_gnu_v3_exceptions): New.
+ (gnu_v3_exception_catchpoint_ops): New.
+ (catch_exception_command_1): Call handle_gnu_v3_exceptions.
+
+2003-04-25 Adam Fedor <fedor@gnu.org>
+
+ * Makefile.in (COMMON_OBS): Add objc-lang.o
+
+2003-04-25 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (print_insn): Delete function.
+ (display_trace): Use TARGET_PRINT_INSN.
+ (_initialize_d10v_tdep): Do not set tm_print_insn.
+ (d10v_gdbarch_init): Set print_insn.
+
+2003-04-25 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (d10v_extract_return_value): Delete call to printf.
+ (_initialize_d10v_tdep): Use add_setshow_boolean_cmd.
+ (d10v_frame_unwind_cache): Use FRAME_OBSTACK_CALLOC.
+ (NR_DMAP_REGS, A0_REGNUM): Delete, replaced by ...
+ (nr_dmap_regs, a0_regnum): ... new functions.
+ (d10v_print_registers_info): Use a0_regnum, use register_size.
+ (d10v_register_byte): Delete function.
+ (d10v_register_raw_size): Delete function.
+ (d10v_register_type): Use a0_regnum.
+ (d10v_print_registers_info): Use a0_regnum.
+ (D10V_SP_REGNUM): Rename _SP_REGNUM, replace it and SP_REGNUM.
+ (d10v_gdbarch_init): Do not set register_byte or
+ register_raw_size, use D10V_SP_REGNUM to set sp_regnum.
+ (d10v_pointer_to_address): Use extract_unsigned_integer instead of
+ extract_address.
+ (trace_command): Use XCALLOC.
+ (print_insn): Delete reference to tm_print_insn.
+ (saved_regs_unwinder): Use store_unsigned_integer instead of
+ store_address.
+ * frame.h (FRAME_OBSTACK_CALLOC): Define
+
+2003-04-25 David Carlton <carlton@bactrian.org>
+
+ * config/djgpp/fnchange.lst: Add testsuite/gdb.c++/maint.exp.
+
+2003-04-24 Adam Fedor <fedor@gnu.org>
+
+ * objc-lang.c: Include "valprint.h"
+ * Makefile.in (objc-lang.o): Update dependencies.
+
+2003-04-24 Adam Fedor <fedor@gnu.org>
+
+ * objc-lang.c (FETCH_ARGUMENT, CONVERT_FUNCPTR): Remove
+ architecture dependant compilation and mark as unimplemented
+ (until they get put in the gdbarch vector).
+
+2003-04-23 David Carlton <carlton@bactrian.org>
+
+ * cp-support.c (cp_find_first_component): Accept 'operator' in
+ more locations.
+
+2003-04-23 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): Eliminate redundant
+ indentation. Move "saved_async" and "old_cleanups" to where they
+ are needed.
+
+2003-04-23 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): Eliminate the variables "rc"
+ and "buffer". Move the "name" code to where it is needed.
+
+2003-04-23 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): Move variables "start_sp",
+ "dummy", "sizeof_dummy1" and "dummy1" and corresponding dummy call
+ code to ON_STACK switch branch.
+
+2003-04-23 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): Make declaration of "i",
+ "sal", "bpt" and "old_sp" more local to their use. Delete #if
+ lint.
+
+2003-04-23 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): Delete variable
+ "n_method_args". Localize "param_type"'s declaration to the loop
+ that it is used. Reinstate code assigning to said variable -
+ deleted on 2002-06-14. Rationalize calls to value_args_coerce.
+ Rationalize code using "param_type".
+
+2003-04-22 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): Use new variable "bp_addr" to
+ compute the breakpoint address. Only call FIX_CALL_DUMMY when
+ ON_STACK. Eliminate the variable "addr". Do not pass "real_pc"
+ to DEPRECATED_PUSH_RETURN_ADDRESS.
+
+2003-04-22 Kevin Buettner <kevinb@redhat.com>
+
+ * dwarf2loc.c (dwarf2_evaluate_loc_desc): Invoke DWARF2_REG_TO_REGNUM
+ on the DWARF2 register number prior to fetching a register.
+
+2003-04-22 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/tm-hppa.h (SOFT_FLOAT): Delete this macro.
+ Update all the tests using SOFT_FLOAT considering the fact that
+ this macro was always set to 0.
+ * config/pa/tm-hppa64.h: Update all the tests using SOFT_FLOAT
+ considering the fact that this macro was always set to 0.
+ * hppa-tdep.h (hppa_store_return_value): Likewise.
+ (hppa_extract_return_value): Likewise.
+
+2003-04-22 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/tm-hppa.h: Remove obsolete code, was used by
+ the hppa-pro target only.
+
+2003-04-21 J. Brobecker <brobecker@gnat.com>
+
+ Ongoing multi-arch conversion effort for HP/UX:
+ * config/pa/tm-hppa.h: Move all macro that are no longer
+ defined now that GDB_MULTI_ARCH is now set to 1 from here...
+ * config/pa/tm-hppa64.h: ... to here (hppa64 is not multiarch'ed yet).
+
+2003-04-21 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/tm-hppa.h: Obsolete a section that was only used
+ for hppa-pro.
+
+2003-04-21 J. Brobecker <brobecker@gnat.com>
+
+ Ongoing multi-arch conversion for HP/UX.
+ * config/pa/tm-hppa.h (GDB_MULTI_ARCH): Set to 1. Do not define
+ if already defined (allows hppa64 to stay non-multiarched for now).
+ * config/pa/tm-hppa64.h (GDB_MULTI_ARCH): Define.
+
+2003-04-21 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (frame_id_eq): Fail when the code_addr's do not match.
+
+2003-04-21 Andrew Cagney <cagney@redhat.com>
+
+ * i386-tdep.c (i386_gdbarch_init): Replace "mmx_num_regs" with
+ "i386_num_mmx_regs".
+
+2003-04-21 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c: New file.
+ * infcall.h: New file.
+ * valarith.c: Include "infcall.h".
+ * scm-lang.c, objc-lang.cm, hppa-tdep.c, gcore.c: Ditto.
+ * eval.c, ada-valprint.c, ada-lang.c: Ditto.
+ * Makefile.in (valarith.o, scm-lang.o): Update dependencies.
+ (objc-lang.o, hppa-tdep.o, gcore.o): Update dependencies.
+ (eval.o, ada-valprint.o, ada-lang.o): Update dependencies.
+ (SFILES): Add "infcall.c"
+ (COMMON_OBS): Add "infcall.o".
+ (infcall.o): Specify dependencies.
+ * value.h (call_function_by_hand): Delete declaration.
+ * inferior.h (run_stack_dummy): Delete declaration.
+ * infcmd.c (breakpoint_auto_delete_contents): Move to "infcall.c".
+ (run_stack_dummy): Move to "infcall.c", merged into
+ call_function_by_hand.
+ * valops.c (call_function_by_hand): Moved to "infcall.c".
+ (find_function_addr, value_arg_coerce): Ditto.
+ (unwindonsignal_p, coerce_float_to_double): Ditto.
+ (_initialize_valops): Move "set/show coerce-float-to-double", and
+ "set/show unwindonsignal" commands to "infcall.c".
+ * v850-tdep.c, target.h: Update comments.
+ * sparc-tdep.c (sparc_fix_call_dummy): Update comments.
+ * sh-tdep.c (sh_init_extra_frame_info): Update comments.
+ (sh64_init_extra_frame_info): Update comments.
+ * mn10300-tdep.c: Update comments.
+ * mcore-tdep.c (mcore_init_extra_frame_info): Update comments.
+ * config/sparc/tm-sparc.h: Update comments.
+ * breakpoint.h: Update comments.
+ * avr-tdep.c (avr_init_extra_frame_info): Update comments.
+ * arm-tdep.c: Update comment.
+
+2003-04-19 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_num_register_names): New variable.
+ (i386_num_mmx_regs): Renamed from mmx_num_regs.
+ (MM0_REGNUM): Remove redundant parentheses in define.
+ (i386_mmx_regnum_p): Use i386_mmx_regnum instead of mmx_num_regs.
+ (i386_fp_regnum_p, i386_fpc_regnum_p, i386_sse_regnum_p,
+ i386_mxcsr_regnum_p): Remove redundant parentheses.
+ (i386_register_name): Use i386_num_register_names.
+
+ * i386-tdep.c (i386_extract_return_value,
+ i386_store_return_value): Correct check for availability of
+ floating-point registers.
+
+ * i386-tdep.c (i386_frame_num_args): Remove function.
+ (i386_gdbarch_init): Set frame_num_args to frame_num_args_unknown.
+
+ * i386-tdep.c (i386_mmx_regnum_to_fp_regnum): Renamed from
+ mmx_regnum_to_fp_regnum. Adjust all callers.
+
+ * i386-tdep.c (i386_get_longjmp_target): Use
+ TYPE_LENGTH(builtin_type_void_func_ptr) instead of TARGET_PTR_BIT
+ and TARGET_CHAR_BIT. Use extract_typed_address instead of
+ extract_address.
+
+2003-04-19 Mark Kettenis <kettenis@gnu.org>
+
+ * core-regset.c: Update comments to reflect reality. Re-order
+ includes.
+ (fetch_core_registers): Use switch instead of if. Remove
+ redundant prototype.
+
+2003-04-18 Jim Blandy <jimb@redhat.com>
+
+ * s390-tdep.c (s390_frame_align): New function.
+ (s390_gdbarch_init): Register it with the gdbarch object.
+
+2003-04-17 Richard Henderson <rth@redhat.com>
+
+ * remote.c (minitelnet): Don't redeclare escape_count, echo_check.
+
+2003-04-17 Michael Snyder <msnyder@redhat.com>
+ Karen Bennet <bennet@redhat.com>
+
+ Committed by Elena Zannoni <ezannoni@redhat.com>
+ * gdb_gcore.sh: New script to create a core dump of a process.
+
+2003-04-17 Elena Zannoni <ezannoni@redhat.com>
+
+ * values.c (value_being_returned): Don't fetch the return
+ value if the return type is void.
+
+2003-04-17 Jeff Johnston <jjohnstn@redhat.com>
+
+ * thread-db.c: Reindented.
+
+2003-04-17 Jeff Johnston <jjohnstn@redhat.com>
+
+ * gdb_indent.sh: Recognize td_thrhandle_t, td_event_msg_t,
+ td_thr_events_t, td_notify_t, td_thr_iter_f, and td_thrinfo_t
+ as types.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2003-04-16 Kevin Buettner <kevinb@redhat.com>
+
+ * rs6000-tdep.c (rs6000_gdbarch_init): For the SysV ABI, set
+ the size of ``long double'' to 16, instead of 8.
+
+2003-04-16 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-linux-nat.c: Add some whitespace to make things more
+ readable.
+ (fetch_register, store_register, fetch_inferior_registers,
+ store_inferior_registers): Get rid of assignment in if-statement.
+ (store_register): Fix typo in error message.
+
+2003-04-16 Andrew Cagney <cagney@redhat.com>
+
+ * utils.c (xmmalloc): Always allocate something, matches
+ libiberty/xmalloc's semantics.
+ (xmrealloc, xmcalloc): Ditto.
+
+2003-04-16 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_prev_frame): Do not initialize "unwind" or "type",
+ update comments.
+ (get_frame_type): Initialize unwind and type when needed.
+ (get_frame_id, frame_register_unwind): Ditto.
+
+2003-04-16 Andrew Cagney <cagney@redhat.com>
+
+ * NEWS: Mention that sparclet-*-* and sparclite-*-* have been made
+ obsolete.
+ * sparc-tdep.c: Obsolete SPARCLET and SPARCLITE code.
+ * sparcl-stub.c: Obsolete file.
+ * config/sparc/tm-sparclet.h: Obsolete file.
+ * sparclet-stub.c: Obsolete file.
+ * sparclet-rom.c: Obsolete file.
+ * sparcl-tdep.c: Obsolete file.
+ * config/sparc/tm-sparclite.h: Obsolete file.
+ * config/sparc/sparclite.mt: Obsolete file.
+ * config/sparc/sparclet.mt: Obsolete file.
+ * configure.tgt: Make sparclet-*-*, sparclite-*-*, and
+ sparc86x-*-* obsolete.
+
+2003-04-15 David Carlton <carlton@math.stanford.edu>
+
+ * Makefile.in (SFILES): Add cp-namespace.c.
+ (COMMON_OBS): Add cp-namespace.o.
+ (block.o): Depend on gdb_obstack_h and cp_support_h.
+ (buildsym.o): Depend on cp_support_h.
+ (cp-namespace.o): New.
+ (cp-support.o): Depend on gdb_string_h, demangle_h, gdb_assert_h,
+ gdb_obstack_h, symtab_h, symfile_h, and gdbcmd_h.
+ (dwarf2read.o): Depend on cp_support_h.
+ * jv-lang.c (get_java_class_symtab): Set BLOCK_NAMESPACE.
+ * dwarf2read.c (process_die): Set processing_has_namespace_info,
+ processing_current_namespace.
+ (read_namespace): Update processing_current_namespace; check for
+ anonymous namespaces.
+ (dwarf2_name): New function.
+ (dwarf2_extension): Ditto.
+ * cp-support.h: Update copyright, contributors.
+ Add inclusion guards.
+ Add opaque declaration for structs obstack, block, symbol.
+ (struct using_direct): New struct.
+ Add declarations for cp_find_first_component,
+ cp_entire_prefix_len, processing_has_namespace_info,
+ processing_current_namespace, cp_is_anonymous,
+ cp_add_using_directive, cp_initialize_namespace,
+ cp_finalize_namespace, cp_set_block_scope,
+ cp_scan_for_anonymous_namespaces.
+ * cp-namespace.c: New file.
+ * cp-support.c: Update copyright.
+ Include ctype.h, gdb_assert.h, gdbcmd.h.
+ New variable maint_cplus_cmd_list.
+ (cp_find_first_component): New function.
+ (cp_entire_prefix_len, maint_cplus_command)
+ (first_component_command, _initialize_cp_support): Ditto.
+ * buildsym.c: Include cp-support.h.
+ New variable using_list.
+ (add_symbol_to_list): Check for anonymous namespaces.
+ (finish_block): Set block's scope.
+ (start_symtab): Initialize C++ namespace support.
+ (end_symtab): Finalize C++ namespace support.
+ * block.h: Add opaque declarations for structs
+ block_namespace_info, using_direct, and obstack.
+ Add declarations for block_set_scope and block_set_using.
+ (struct block): Add 'language_specific' member.
+ (BLOCK_NAMESPACE): New macro.
+ * block.c: Include gdb_obstack.h and cp-support.h.
+ (struct block_namespace_info): New struct.
+ (block_set_scope): New function.
+ (block_set_using, block_initialize_namespace): Ditto.
+
+2003-04-14 Kevin Buettner <kevinb@redhat.com>
+
+ * solib-svr4.c (svr4_have_link_map_offsets): New function.
+ (locate_base): Return early if there aren't any link map offsets.
+ (svr4_solib_create_inferior_hook): Warn if shared library support
+ is unavailable.
+
+2003-04-14 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.c (symbol_set_names): Add prefix when storing Java names
+ in hash table. Fix for PR java/1039.
+
+2003-04-14 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.c (symbol_set_names): Rename 'name' arg to
+ 'linkage_name', and 'tmpname' variable to 'linkage_name_copy'.
+ * symtab.h: Change 'name' argument in declaration of
+ symbol_set_names to 'linkage_name'.
+ (SYMBOL_SET_NAMES): Change 'name' argument to 'linkage_name'.
+
+2003-04-14 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (mips_read_sp): Do not apply ADDR_BITS_REMOVE,
+ return the fully sign-extended register value.
+ (get_frame_pointer): Ditto.
+ (mips_pop_frame): Initialize "proc_desc" after checking for a
+ dummy frame.
+
+2003-04-14 Andrew Cagney <cagney@redhat.com>
+
+ * mips-tdep.c (mips_push_dummy_frame): Delete function.
+ (MASK, PUSH_FP_REGNUM, GEN_REG_SAVE_MASK): Delete macros.
+ (FLOAT_REG_SAVE_MASK, FLOAT_SINGLE_REG_SAVE_MASK): Delete macro.
+ (mips_push_register): Delete function.
+ (mips_dump_tdep): Delete references to GEN_REG_SAVE_MASK and
+ PUSH_FP_REGNUM.
+
+2003-04-14 Jim Blandy <jimb@redhat.com>
+
+ * symmisc.c: #include "gdb_regex.h".
+ (maintenance_list_symtabs, maintenance_list_psymtabs): New
+ functions.
+ * maint.c (maintenance_list_command): New function.
+ (_initialize_maint_cmds): Register the above as commands.
+ * symtab.h (maintenance_list_symtabs,
+ maintenance_list_psymtabs): New declarations.
+ * cli/cli-cmds.c (maintenancelistlist): New variable.
+ (init_cmd_lists): Initialize it.
+ * cli/cli-cmds.h (maintenancelistlist): New declaration.
+ * gdbcmd.h (maintenancelistlist): New declaration.
+ * Makefile.in (symmisc.o): Update dependencies.
+
+2003-04-14 Elena Zannoni <ezannoni@redhat.com>
+
+ * s390-nat.c: Include asm/types.h for addr_t.
+
+2003-04-14 Corinna Vinschen <vinschen@redhat.com>
+
+ * cp-valprint.c (cp_print_class_method): Call unpack_pointer() with
+ actually incoming type.
+
+2003-04-13 Andrew Cagney <cagney@redhat.com>
+
+ * ppc-linux-tdep.c: Use get_frame_base, get_frame_pc,
+ get_next_frame and get_frame_saved_regs.
+
+2003-04-13 Andrew Cagney <cagney@redhat.com>
+
+ * reggroups.c (default_register_reggroup_p): Use NUM_REGS instead
+ of gdbarch_num_regs.
+
+2003-04-13 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h: Mention what replaced what in "struct frame_info".
+ * hppa-hpux-tdep.c: Use get_frame_base, get_frame_pc and
+ deprecated_update_frame_base_hack and
+ deprecated_update_frame_pc_hack.
+ * hppa-tdep.c: Ditto.
+
+2003-04-13 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2expr.h (struct dwarf_expr_context): Remove extra arguments
+ to read_reg and update its comment. Remove regnum member.
+ * dwarf2expr.c (execute_stack_op): Remove memaddr and expr_lval.
+ Don't call read_reg when setting in_reg. Call read_reg to get
+ the frame base if it's in a register. Return the register number
+ on the stack instead of in the context. Remove extra arguments
+ to read_reg.
+ * dwarf2loc.c (dwarf_expr_read_reg): Remove extra arguments.
+ (dwarf2_evaluate_loc_desc): Call value_from_register. Expect
+ the register number on the expression stack.
+ (needs_frame_read_reg): Remove extra arguments.
+
+2003-04-13 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2expr.c (dwarf2_read_address): Renamed from read_address;
+ made non-static.
+ (execute_stack_op): All callers updated.
+ * dwarf2expr.h: Add prototype for dwarf2_read_address.
+ * dwarf2loc.c (find_location_expression): New function.
+ (dwarf_expr_frame_base): Call it.
+ (dwarf2_evaluate_loc_desc): Handle 0-length location expressions.
+ (dwarf2_tracepoint_var_ref): New function, broken out from
+ locexpr_tracepoint_var_ref.
+ (locexpr_tracepoint_var_ref): Call dwarf2_tracepoint_var_ref.
+ Make static.
+ (loclist_read_variable, loclist_read_needs_frame): New functions.
+ (loclist_describe_location, loclist_tracepoint_var_ref): New
+ functions.
+ (dwarf2_loclist_funcs): New struct location_funcs.
+ * dwarf2loc.h (struct dwarf2_loclist_baton): New type.
+ (struct dwarf2_locexpr_baton): Add comments.
+ (dwarf2_loclist_funcs): New extern.
+ * dwarf2read.c (struct comp_unit_head): Remove DIE member, add
+ base_address and base_known.
+ (dwarf_loc_buffer): New variable.
+ (struct dwarf2_pinfo): Add dwarf_loc_buffer and dwarf_loc_size.
+ (DWARF_LOC_BUFFER, DWARF_LOC_SIZE): New macros.
+ (dwarf2_has_info): Initialize dwarf_loc_offset.
+ (dwarf2_build_psymtabs): Read in .debug_loc.
+ (dwarf2_build_psymtabs_hard): Use DWARF_LOC_BUFFER and
+ DWARF_LOC_SIZE.
+ (psymtab_to_symtab_1): Likewise. Move base address calculation
+ here, from...
+ (dwarf2_get_pc_bounds): ... here. Use the base address from
+ cu_header.
+ (dwarf2_symbol_mark_computed): Handle location lists.
+
+2003-04-13 Daniel Jacobowitz <drow@mvista.com>
+
+ * minsyms.c (install_minimal_symbols): Only switch to gnu-v3 mode
+ if the linkage name demangled successfully.
+
+2003-04-13 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (att_flavour, intel_flavour, valid_flavours,
+ disassmbly_flavour): Removed.
+
+ * x86-64-tdep.c (gdb_print_insn_x86_64): Removed.
+
+2003-04-13 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (x86_64_breakpoint_from_pc): Removed.
+
+2003-04-12 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h (struct frame_info): Move definition from here ...
+ * frame.c (struct frame_info): ... to here.
+
+2003-04-12 Andrew Cagney <cagney@redhat.com>
+
+ * gdbthread.h (save_infrun_state): Delete parameter
+ "prev_func_start".
+ (struct thread_info): Delete field "prev_func_start".
+ (load_infrun_state): Ditto.
+ * thread.c (load_infrun_state, save_infrun_state): Update.
+ * infrun.c (prev_func_start): Delete variable.
+ (context_switch, init_wait_for_inferior): Update.
+ (stop_stepping, keep_going): Update.
+
+2003-04-12 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Add missing opaque declarations.
+ * gdbarch.h: Regnerate.
+ * symtab.h: Add missing opaque declarations.
+ * value.h, target.h, symfile.h, stabsread.h: Ditto.
+ * x86-64-tdep.h, xmodem.h, monitor.h, typeprint.h: Ditto.
+ * srec.h, solib-svr4.h, source.h, inferior.h: Ditto.
+ * ser-unix.h, serial.h, remote-utils.h, gdbcore.h: Ditto.
+ * ppc-tdep.h, ocd.h, mips-tdep.h, gdbtypes.h: Ditto.
+ * buildsym.h, builtin-regs.h, linespec.h, language.h: Ditto.
+ * i387-tdep.h, gdbthread.h, event-top.h, gdb.h: Ditto.
+ * dwarf2cfi.h, doublest.h, disasm.h, cp-abi.h: Ditto.
+ * cli-out.h, c-lang.h, ax-gdb.h, arch-utils.h: Ditto.
+ * ada-lang.h, config/nm-lynx.h, config/nm-linux.h: Ditto.
+ * config/sparc/tm-sp64.h, config/rs6000/tm-rs6000.h: Ditto.
+ * config/pa/tm-hppah.h, config/m68k/tm-delta68.h: Ditto.
+ * cli/cli-setshow.h, cli/cli-script.h: Ditto.
+
+2003-04-11 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_frame_id): Return this frame's "id".
+ (legacy_get_prev_frame): Set prev's frame ID code_addr to the
+ function start.
+ (legacy_saved_regs_this_id): Replace function body with
+ internal-error.
+ (deprecated_frame_xmalloc): Mark the frame ID as valid, use
+ FRAME_OBSTACK_ZALLOC.
+ (create_new_frame): Mark the frame ID as valid.
+
+2003-04-11 Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.in (libbfd_h): Added missing setting.
+ * mips-tdep.c (mips_gdbarch_init): Set disassembler_options
+ according to the selected ABI.
+
+2003-04-11 Jeff Johnston <jjohnstn@redhat.com>
+
+ * gdb_indent.sh: Recognize pid_t and sigset_t as types.
+
+2003-04-11 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_SAVED_PC_AFTER_CALL): Deprecate
+ SAVED_PC_AFTER_CALL.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ (ia64_saved_pc_after_call): Update declaration.
+ * i386ly-tdep.c (i386lynx_init_abi): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+ * ns32knbsd-nat.c (frame_num_args): Update.
+ * ns32k-tdep.c (umax_frame_num_args): Update.
+ * mips-tdep.c (mips_init_frame_pc_first): Update.
+ * infrun.c (step_over_function): Update.
+ * i386-linux-tdep.c (skip_hurd_resolver): Update.
+ * i386-interix-tdep.c (i386_interix_back_one_frame): Update.
+ * config/sparc/tm-sparc.h (DEPRECATED_SAVED_PC_AFTER_CALL): Update.
+ (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
+ * config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
+ * config/pa/tm-hppa.h (DEPRECATED_SAVED_PC_AFTER_CALL): Update.
+ * arm-linux-tdep.c (skip_hurd_resolver): Update.
+ * arch-utils.c (init_frame_pc_default): Update.
+ * alpha-tdep.c (alpha_init_frame_pc_first): Update.
+ * x86-64-tdep.h (x86_64_linux_saved_pc_after_call): Update
+ declaration.
+
+2003-04-11 Andrew Cagney <cagney@redhat.com>
+
+ * i387-tdep.c: Update copyright.
+ (i387_to_double): Delete function.
+ (double_to_i387): Delete function.
+
+2003-04-10 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (d10v_frame_this_id): Set the code addr to the
+ frame's function's address. Simplify.
+ (d10v_frame_unwind_cache): Check that the frame's function is
+ non-zero.
+
+2003-04-10 Jim Blandy <jimb@redhat.com>
+
+ * s390-tdep.c (s390_gdbarch_init): Put back accidentally deleted
+ call to set_gdbarch_deprecated_push_arguments.
+
+2003-04-10 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (fprint_frame_id): New function.
+ (fprint_frame_type, fprint_frame): New function.
+ (frame_pc_unwind, frame_func_unwind): Add/update trace code.
+ (create_sentinel_frame, get_frame_id): Ditto.
+ (frame_id_p, frame_id_eq): Ditto.
+ (frame_id_inner, create_new_frame): Ditto.
+ (legacy_get_prev_frame, get_prev_frame): Ditto.
+ (deprecated_update_frame_pc_hack): Ditto.
+ (frame_register_unwind): Ditto.
+ (deprecated_update_frame_base_hack): Ditto.
+
+2003-04-10 Corinna Vinschen <vinschen@redhat.com>
+
+ * i386-cygwin-tdep.c (i386_cygwin_frame_chain): New function.
+ (i386_cygwin_init_abi): Set i386_cygwin_frame_chain as new
+ frame_chain function.
+ * Makefile.in: Add dependencies due to above change.
+
+2003-04-10 Corinna Vinschen <vinschen@redhat.com>
+
+ * blockframe.c (legacy_frame_chain_valid): Move call to
+ DEPRECATED_FRAME_CHAIN_VALID before calls to inside_entry_func and
+ inside_entry_file.
+
+2003-04-09 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h (struct frame_id): Replace "pc" and "base" with
+ "stack_addr" and "code_addr". Update comments.
+ (frame_id_build): Update parameter names and comment.
+ (struct frame_info): Replace "id_p" and "id" with "this_id".
+ * dummy-frame.c (dummy_frame_this_id): Update.
+ * breakpoint.c (print_one_breakpoint): Update.
+ * frame.c (get_frame_id): Update.
+ (get_frame_base, frame_id_build): Update.
+ (create_sentinel_frame, legacy_get_prev_frame): Update.
+ (deprecated_update_frame_base_hack): Update.
+ (frame_id_p, frame_id_eq): Rework, return 0 when an invalid ID.
+ (frame_id_inner): Ditto.
+
+2003-04-09 Andrew Cagney <cagney@redhat.com>
+
+ * defs.h (gdb_print_host_address): Make "addr" parameter a
+ pointer constant.
+ * utils.c (gdb_print_host_address): Update.
+
+2003-04-09 Kevin Buettner <kevinb@redhat.com>
+
+ * rs6000-tdep.c (frame_get_saved_regs): Don't assume that the
+ register number for R0 is 0.
+
+2003-04-09 J. Brobecker <brobecker@gnat.com>
+
+ * frame.h (struct gdbarch): Add opaque structure definition
+ to avoid a compilation warning on LynxOS 4.0.
+
+2003-04-09 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h (struct frame_info): Delete field "pc". Replace
+ "pc_unwind_cache" and "pc_unwind_cache_p" with "prev_pc"
+ structure.
+ * frame.c (frame_pc_unwind): Update.
+ (create_sentinel_frame): Do not set "pc".
+ (get_prev_frame): Do not set "pc". Use frame_pc_unwind.
+ (get_frame_pc): Call frame_pc_unwind.
+ (deprecated_update_frame_pc_hack): Update.
+ (create_new_frame): Use "pc" not "->pc".
+
+2003-04-09 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_frame_id): Eliminate code updating "frame".
+ (legacy_get_prev_frame): Ditto.
+ (get_frame_base): Return id.base directly.
+ (deprecated_update_frame_base_hack): Update "id.base".
+ * frame.h (struct frame_info): Delete field "frame".
+
+2003-04-09 Andrew Cagney <cagney@redhat.com>
+
+ * NEWS: Mention that the "Sequent family" is obsolete.
+ * configure.tgt: Obsolete i[3456]86-sequent-bsd*,
+ i[3456]86-sequent-sysv4*, and i[3456]86-sequent-sysv*.
+ * configure.host: Obsolete i[3456]86-sequent-bsd*,
+ i[3456]86-sequent-sysv4*, and i[3456]86-sequent-sysv*.
+ * config/i386/tm-ptx4.h: Obsolete file.
+ * config/i386/tm-ptx.h: Obsolete file.
+ * symm-tdep.c: Obsolete file.
+ * config/i386/symmetry.mt: Obsolete file.
+ * config/i386/tm-symmetry.h: Obsolete file.
+ * symm-nat.c: Obsolete file.
+ * config/i386/nm-symmetry.h: Obsolete file.
+ * config/i386/xm-symmetry.h: Obsolete file.
+ * config/i386/symmetry.mh: Obsolete file.
+ * config/i386/nm-ptx4.h: Obsolete file.
+ * config/i386/ptx4.mh: Obsolete file.
+ * config/i386/ptx.mt: Obsolete file.
+ * config/i386/ptx.mh: Obsolete file.
+ * config/i386/xm-ptx4.h: Obsolete file.
+ * config/i386/xm-ptx.h: Obsolete file.
+
+2003-04-09 Andrew Cagney <cagney@redhat.com>
+
+ Obsolete mips*-*-mach3*.
+ * NEWS: Mention that mips*-*-mach3* is obsolete.
+ * m3-nat.c: Obsolete file.
+ * config/nm-m3.h: Obsolete file.
+ * config/mips/tm-mipsm3.h: Obsolete file.
+ * config/mips/mipsm3.mt: Obsolete file.
+ * config/mips/mipsm3.mh: Obsolete file.
+ * config/mips/xm-mipsm3.h: Obsolete file.
+ * mipsm3-nat.c: Obsolete file.
+ * configure.host: Obsolete mips-dec-mach3*.
+ * configure.tgt: Obsolete mips*-*-mach3*.
+
+2003-04-09 Andrew Cagney <cagney@redhat.com>
+
+ * doublest.h: Update copyright.
+ (deprecated_store_floating, deprecated_extract_floating): Rename
+ store_floating and extract_floating. Update comments.
+ * doublest.c: Update copyright.
+ (extract_floating_by_length): Replace extract_floating.
+ (store_floating_by_length): Replace store_floating.
+ (deprecated_extract_floating): New function.
+ (deprecated_store_floating): New function.
+ (extract_typed_floating): Call extract_floating_by_length.
+ (store_typed_floating): Call store_floating_by_length.
+ * x86-64-tdep.c (x86_64_store_return_value): Update.
+ * sh-tdep.c (sh3e_sh4_extract_return_value): Update.
+ (sh64_extract_return_value): Update.
+ (sh_sh4_register_convert_to_virtual): Update.
+ (sh_sh64_register_convert_to_virtual): Update.
+ (sh_sh4_register_convert_to_raw): Update.
+ (sh_sh64_register_convert_to_raw): Update.
+ * rs6000-tdep.c (rs6000_register_convert_to_virtual): Update.
+ (rs6000_register_convert_to_raw): Update.
+ * ia64-tdep.c (ia64_register_convert_to_virtual): Update.
+ (ia64_register_convert_to_raw): Update.
+ * config/i386/tm-symmetry.h (REGISTER_CONVERT_TO_RAW): Update.
+ (REGISTER_CONVERT_TO_VIRTUAL): Update.
+ * arm-linux-tdep.c (arm_linux_push_arguments): Update.
+ * alpha-tdep.c (alpha_register_convert_to_virtual): Update.
+ (alpha_register_convert_to_raw): Update.
+
+2003-04-08 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (SAVED_PC_AFTER_CALL): Add a predicate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * d10v-tdep.c (d10v_saved_pc_after_call): Delete function.
+ (d10v_gdbarch_init): Do not set saved_pc_after_call.
+ * infrun.c (step_over_function): Call SAVED_PC_AFTER_CALL_P
+ conditionally, use frame_pc_unwind as an alternative. Add
+ comments.
+ * arch-utils.c (init_frame_pc_default): Only call
+ SAVED_PC_AFTER_CALL when available.
+
+2003-04-08 Elena Zannoni <ezannoni@redhat.com>
+
+ * infrun.c (stop_soon): Rename from stop_soon_quietly.
+ (struct inferior_status): Rename stop_soon_quietly field to stop_soon.
+ (clear_proceed_status): Rename stop_soon_quietly to stop_soon.
+ (start_remote): Ditto.
+ (handle_inferior_event): Ditto.
+ (save_inferior_status): Ditto.
+ (restore_inferior_status): Ditto.
+ * infcmd.c (attach_command): Ditto.
+ * fork-child.c (startup_inferior): Ditto.
+ * inferior.h (stop_soon): Rename from stop_soon_quietly.
+ * alpha-tdep.c (heuristic_proc_start): Ditto.
+ * mips-tdep.c (heuristic_proc_start): Ditto.
+ * solib-svr4.c (svr4_solib_create_inferior_hook): Ditto.
+ * solib-sunos.c (sunos_solib_create_inferior_hook): Ditto.
+ * solib-osf.c (osf_solib_create_inferior_hook): Ditto.
+ * solib-irix.c (irix_solib_create_inferior_hook): Ditto.
+ * remote-vx.c (vx_create_inferior): Ditto.
+
+2003-04-08 Elena Zannoni <ezannoni@redhat.com>
+
+ * infrun.c (stop_soon_quietly): Make it an enum, to better
+ override the default behavior of handle_inferior_event.
+ (clear_proceed_status): Update uses of stop_soon_quietly to
+ reflect that it is now an enum.
+ (start_remote): Ditto.
+ (handle_inferior_event): Change logic a bit if stop_soon_quietly
+ is set to handle the new GNU/Linux kernel behavior for
+ attach/sigstop. Update uses of stop_soon_quietly.
+ * inferior.h (enum stop_kind): New enum.
+ * infcmd.c (attach_command): Use STOP_QUIETLY_NO_SIGSTOP.
+ Reset normal handle_inferior_event behavior, afterwards.
+ * fork-child.c (startup_inferior): Update.
+ * alpha-tdep.c (heuristic_proc_start): Update.
+ * solib-svr4.c (svr4_solib_create_inferior_hook): Update.
+ * solib-sunos.c (sunos_solib_create_inferior_hook): Update.
+ * solib-osf.c (osf_solib_create_inferior_hook): Update.
+ * solib-irix.c (irix_solib_create_inferior_hook): Update.
+ * remote-vx.c (vx_create_inferior): Update.
+ * mips-tdep.c (heuristic_proc_start): Update.
+
+2003-04-07 Elena Zannoni <ezannoni@redhat.com>
+
+ * disasm.c (dump_insns): Move variables inside loop, or they will
+ be freed more than once, causing wild memory corruptions.
+ (gdb_disassembly): Look for the substring "-thread",
+ instead of "-threads" in the target name, to make sure to find
+ the 'multi-thread' target. Also, make sure we do the right thing
+ with the "core" target.
+
+2003-04-07 Kevin Buettner <kevinb@redhat.com>
+
+ * mips-tdep.c (mips_print_fp_register): New function, created from
+ do_fp_register_row(). Registers are now (also) printed as hex.
+ Only one register is printed per row.
+ (mips_print_register, do_fp_register_row): Print floating point
+ registers with mips_print_fp_register().
+
+2003-04-06 Andrew Cagney <cagney@redhat.com>
+
+ * valprint.h (inspect_it): Add extern declaration.
+ * objc-lang.c (value_nsstring): Avoid assignment inside of "if".
+ (selectors_info, classes_info): Ditto.
+ (find_objc_msgcall): Fix indentation.
+ (objc_printstr): Delete extern declarations.
+
+ * arm-tdep.c (arm_frameless_function_invocation): Fix typo.
+
+2003-04-06 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h (legacy_frame_chain_valid): Rename frame_chain_valid.
+ Update comment.
+ * frame.c (legacy_saved_regs_this_id): Update.
+ (legacy_get_prev_frame): Update.
+ * xstormy16-tdep.c: Update comment.
+ * sparc-tdep.c (sparc_frame_chain): Update comment.
+ * blockframe.c (legacy_frame_chain_valid): Update.
+
+2003-04-06 Andrew Cagney <cagney@redhat.com>
+
+ * valprint.c (val_print_type_code_int): Delete #ifdef
+ PRINT_TYPELESS_INTEGER code.
+
+ * gdbarch.sh (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
+ (CALL_DUMMY_LOCATION, DEPRECATED_PC_IN_CALL_DUMMY): Allow partial
+ multi-arch definition.
+ * gdbarch.h: Re-generate.
+
+2003-04-05 Andrew Cagney <cagney@redhat.com>
+
+ Eliminate FRAME_FIND_SAVED_REGS.
+ * config/pa/tm-hppah.h (hppa_hpux_frame_find_saved_regs_in_sigtramp):
+ Change FSR parameter to a pointer.
+ * config/pa/tm-hppa64.h (FRAME_FIND_SAVED_REGS_IN_SIGTRAMP):
+ Assume FSR parameter is a pointer.
+ * hppa-hpux-tdep.c (hppa_hpux_frame_find_saved_regs_in_sigtramp):
+ Make fsr a pointer.
+ * hppa-tdep.c (hppa_frame_find_saved_regs): New function.
+ (hppa_frame_saved_pc): Call hppa_frame_init_saved_regs. Make
+ saved_regs a pointer.
+ (hppa_frame_saved_pc): Ditto.
+ (find_dummy_frame_regs): Make frame_saved_regs a pointer
+ (hppa_pop_frame): Call hppa_frame_init_saved_regs. Make fsr a
+ pointer.
+ (restore_pc_queue): Make fsr a pointer.
+ (hppa_frame_find_saved_regs): Make frame_saved_regs a pointer.
+ (hppa_frame_chain): Make saved_regs a pointer, call
+ hppa_frame_init_saved_regs.
+ * sparc-tdep.c: Include "gdb_assert.h".
+ (sparc_frame_find_saved_regs): Replace internal_error with
+ gdb_assert.
+ * remote-vxsparc.c (vx_read_register): Delete reference to
+ FRAME_FIND_SAVED_REGS.
+ * gdbarch.sh: Delete check for FRAME_FIND_SAVED_REGS.
+ * gdbarch.h: Regenerate.
+ * frame.h (DEPRECATED_FRAME_INIT_SAVED_REGS): Delete macro.
+ (deprecated_get_frame_saved_regs): Delete declaration.
+ (struct frame_saved_regs): Delete definition.
+ * frame.c (deprecated_get_frame_saved_regs): Delete function.
+ * config/pa/tm-hppa.h (hppa_frame_init_saved_regs): Declare.
+ (hppa_frame_find_saved_regs): Delete declaration.
+ (FRAME_FIND_SAVED_REGS): Delete macro.
+ (DEPRECATED_FRAME_INIT_SAVED_REGS): Define.
+ * config/i386/tm-ptx.h (FRAME_FIND_SAVED_REGS): Delete
+ FRAME_FIND_SAVED_REGS in comment.
+
+2003-04-05 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (frame_func_unwind, get_frame_func): New functions.
+ * frame.h (get_frame_func, frame_func_unwind): Declare.
+ (struct frame_info): Add field "prev_func" for caching the
+ previous frame's function address.
+ * arm-tdep.c (arm_frameless_function_invocation): Combine
+ get_pc_function_start and get_frame_pc into get_frame_func.
+ * sh-tdep.c (sh_nofp_frame_init_saved_regs): Ditto.
+ (sh64_nofp_frame_init_saved_regs): Ditto.
+ * s390-tdep.c (s390_function_start): Ditto.
+ * rs6000-tdep.c (rs6000_pop_frame): Ditto.
+ (rs6000_frameless_function_invocation): Ditto.
+ (rs6000_frame_saved_pc): Ditto.
+ * m68k-tdep.c (m68k_frame_init_saved_regs): Ditto.
+ * ia64-tdep.c (ia64_frame_init_saved_regs): Ditto.
+ * i386-tdep.c (i386_frameless_signal_p): Ditto.
+ (i386_frame_init_saved_regs): Ditto.
+ * hppa-tdep.c (hppa_frame_find_saved_regs): Ditto.
+ * d10v-tdep.c (d10v_frame_unwind_cache): Combine
+ get_pc_function_start and frame_pc_unwind into frame_func_unwind.
+ * cris-tdep.c (cris_frame_init_saved_regs): Ditto.
+ * blockframe.c (frameless_look_for_prologue): Ditto.
+
+2003-04-05 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (legacy_get_prev_frame): Link prev to next at the
+ function start. Update comments.
+
+2003-04-05 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_frame_id): Update comment.
+ (legacy_get_prev_frame): Update comment.
+ * gdbarch.sh: Delete check for EXTRA_FRAME_INFO.
+ * gdbarch.h: Regenerate.
+ * config/sparc/tm-sparc.h (EXTRA_FRAME_INFO): Delete.
+ * frame.h: Delete #ifdef EXTRA_FRAME_INFO code.
+
+2003-04-05 Andrew Cagney <cagney@redhat.com>
+
+ * stack.c (print_frame_info): Use get_frame_pc.
+
+2003-04-04 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_prev_frame): Do not call frame_type_from_pc. Set
+ the frame's type from the unwinder.
+ (get_frame_type): Map UNKNOWN_FRAME onto NORMAL_FRAME.
+ (create_new_frame, legacy_get_prev_frame): When the unwinder's
+ type isn't UNKNOWN_FRAME, initalize "type" from the unwinder.
+ (get_frame_base_address): Use get_frame_type.
+ (get_frame_locals_address, get_frame_args_address): Ditto.
+ (legacy_saved_regs_unwinder): Set the type to UNKNOWN_TYPE.
+ * frame.h (enum frame_type): Add UNKNOWN_FRAME.
+ (struct frame_info): Add comment explaining why the frame contains
+ a "type" field.
+ * dummy-frame.c (dummy_frame_unwind): Set the type to DUMMY_FRAME.
+ * d10v-tdep.c (d10v_frame_unwind): Set the type to NORMAL_FRAME.
+ * sentinel-frame.c (sentinel_frame_unwinder): Set the type to
+ NORMAL_FRAME.
+ * frame-unwind.h: Include "frame.h".
+ (struct frame_unwind): Add "type" field.
+ * Makefile.in (frame_unwind_h): Add $(frame_h).
+
+2003-04-04 Andrew Cagney <cagney@redhat.com>
+
+ * x86-64-tdep.c (x86_64_unwind_dummy_id): Use frame_id_build.
+ * dummy-frame.c (dummy_frame_this_id): Use frame_id_build.
+ * d10v-tdep.c (d10v_frame_this_id): Use get_frame_pc and
+ get_frame_base.
+ (d10v_unwind_dummy_id): Use frame_id_build.
+ * frame.c (find_frame_sal): Use get_frame_pc.
+ (create_new_frame): Use deprecated_update_frame_pc_hack and
+ deprecated_update_frame_base_hack.
+ (create_sentinel_frame): Add comment about ->pc going away.
+ (get_prev_frame): Add comment about ->pc going away.
+ (legacy_get_prev_frame): Use get_frame_base, get_frame_pc,
+ frame_id_build, deprecated_update_frame_pc_hack and
+ deprecated_update_frame_base_hack.
+ (select_frame): Use get_frame_pc.
+ (legacy_saved_regs_this_id): Use frame_id_build.
+
+2003-04-04 Elena Zannoni <ezannoni@redhat.com>
+
+ * x86-64-tdep.c (x86_64_push_arguments): Handle correctly the
+ signed integer case.
+ (classify_argument): Handle enumerations and references.
+
+2003-04-04 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (create_sentinel_frame): Initialize the sentinel frame's
+ ID to NULL.
+
+2003-04-01 Adam Fedor <fedor@gnu.org>
+
+ * gdb/objc-lang.c (selectors_info): Replace calls to
+ SYMBOL_DEMANGLED_NAME and DEPRECATED_SYMBOL_NAME with
+ SYMBOL_NATURAL_NAME.
+ (classes_info, find_methods): Likewise.
+
+2003-04-03 Kevin Buettner <kevinb@redhat.com>
+
+ * rs6000-tdep.c (rs6000_gdbarch_init): For xcoff executables, set
+ ``mach'' to the value determined by bfd_default_set_arch_mach().
+
+2003-04-02 Bob Rossi <bob_rossi@cox.net>
+
+ * Makefile.in (SUBDIR_MI_OBS): Add "mi-cmd-file.o".
+ (SUBDIR_MI_SRCS): Add "mi-cmd-file.c".
+ (mi-cmd-file.o): Update dependencies.
+
+2003-04-01 Kevin Buettner <kevinb@redhat.com>
+
+ * mips-tdep.c (mips_dwarf_dwarf2_ecoff_reg_to_regnum)
+ (mips_stab_reg_to_regnum): Add mappings for HI_REGNUM and LO_REGNUM.
+
+2003-04-01 Adam Fedor <fedor@gnu.org>
+
+ * Makefile.in (c_lang.o, jv_lang.o, language.o): Add $(demangle_h).
+ * language.h (struct language_defn): Add la_demangle.
+ (language_demangle): Declare.
+ * language.c (language_demangle): New function.
+ (unk_lang_demangle): Likewise.
+ (unknown_language_defn, auto_language_defn, local_language_defn):
+ Add ukn_lang_demangle.
+ * ada-lang.c (ada_language_defn): Add NULL for la_demangle element.
+ * f-lang.c, m2-lang.c, p-lang.c, scm-lang.c: Likewise.
+ * c-lang.c (c_language_defn, asm_language_defn): Likewise.
+ (cplus_language_defn): Add cplus_demangle for la_demangle element.
+ * jv-lang.c (java_demangle): New function
+ (java_language_defn): Use it for la_demangle element.
+ * objc-lang.c (objc_demangle): Add options argument
+ (objc_language_defn): Use objc_demangle for la_demangle element.
+ * maint.c (maintenance_demangle): Replace switch with
+ call to language_demangle.
+ * utils.c (fprintf_symbol_filtered): Likewise.
+
+2003-04-01 Andrew Cagney <cagney@redhat.com>
+
+ * printcmd.c (print_frame_nameless_args): Delete #ifdef
+ NAMELESS_ARG_VALUE, PRINT_NAMELESS_INTEGER and
+ PRINT_TYPELESS_INTEGER.
+ * config/sparc/tm-sp64.h (DEPRECATED_PUSH_RETURN_ADDRESS): Rename
+ PUSH_RETURN_ADDRESS.
+
+2003-04-01 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (d10v-tdep.o): Update dependencies.
+ * d10v-tdep.c: Include "frame-base.h".
+ (d10v_frame_unwind): Make constant.
+ (d10v_frame_base_address): New function.
+ (d10v_frame_base): New variable.
+ (d10v_gdbarch_init): Set frame_base default.
+ (struct d10v_unwind_cache): Add the field "prev_sp". Update
+ comment for base.
+ (d10v_frame_unwind_cache): Set and use "prev_sp".
+ (d10v_frame_this_id): Use the previous frame's inner most stack
+ address and this frame's func address for the frame ID. Use
+ frame_id_build. Don't analyze beyond the current instruction.
+
+2003-04-01 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h (get_frame_locals_address, get_frame_args_address):
+ Refer to the base address, instead of the address of the first
+ local or parameter.
+
+2003-04-01 Andrew Cagney <cagney@redhat.com>
+
+ Add frame debug info addresses:
+ * frame-base.c: New file.
+ * frame-base.h: New file.
+ * frame.h (struct frame_base): Add opaque declaration.
+ (get_frame_base): Update comment.
+ (get_frame_base_address): Declare.
+ (get_frame_locals_address): Declare.
+ (get_frame_args_address): Declare.
+ (struct frame_info): Add "base" and "base_cache". Update
+ comments on the unwinder.
+ * frame.c: Include "frame-base.h".
+ (get_frame_locals_address): New function.
+ (get_frame_base_address): New function.
+ (get_frame_args_address): New function.
+ * findvar.c (read_var_value): Use get_frame_locals_address and
+ get_frame_args_address.
+ * stack.c (frame_info): Use get_frame_locals_address and
+ get_frame_args_address.
+ (FRAME_ARGS_ADDRESS_CORRECT): Delete conditionally defined macro,
+ moved to "frame-base.c".
+ * printcmd.c (print_frame_nameless_args): Ditto.
+ * symtab.h (address_class): Update comments.
+ * dwarf2loc.c (dwarf_expr_frame_base): Add note about
+ get_frame_base_address.
+ * dwarf2expr.c (execute_stack_op): Ditto.
+ * Makefile.in (frame_base_h): Define.
+ (frame.o): Update dependencies.
+ (frame-base.o): Add dependencies.
+ (SFILES): Add frame-base.c.
+ (COMMON_OBS): Add frame-base.o.
+
+2003-04-01 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (CALL_DUMMY_START_OFFSET): Default to zero.
+ CALL_DUMMY_LENGTH): Ditto.
+ * gdbarch.c: Re-generate.
+ * inferior.h (CALL_DUMMY_START_OFFSET): Delete macro.
+ (CALL_DUMMY_LENGTH): Delete macro.
+ * alpha-tdep.c (alpha_gdbarch_init): Do not set above when zero.
+ * arm-tdep.c (arm_gdbarch_init): Ditto.
+ * avr-tdep.c (avr_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * hppa-tdep.c (hppa_gdbarch_init): Ditto.
+ * i386-tdep.c (i386_gdbarch_init): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+ * mips-tdep.c (mips_gdbarch_init): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * sparc-tdep.c (sparc_gdbarch_init): Ditto.
+ * v850-tdep.c (v850_gdbarch_init): Ditto.
+ * vax-tdep.c (vax_gdbarch_init): Ditto.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.
+
+2003-04-01 Corinna Vinschen <vinschen@redhat.com>
+
+ * frame.c (get_prev_frame): Disable call to inside_entry_file().
+
+2003-04-01 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (CALL_DUMMY_BREAKPOINT_OFFSET): Default to zero.
+ (CALL_DUMMY_BREAKPOINT_OFFSET_P): Delete.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * config/sparc/tm-sp64.h (CALL_DUMMY_BREAKPOINT_OFFSET_P): Delete.
+ (CALL_DUMMY_BREAKPOINT_OFFSET_P): Delete.
+ * config/pa/tm-hppa64.h (CALL_DUMMY_BREAKPOINT_OFFSET_P): Delete.
+ * inferior.h (CALL_DUMMY_BREAKPOINT_OFFSET_P): Delete.
+ (CALL_DUMMY_BREAKPOINT_OFFSET): Delete.
+ * infcmd.c (run_stack_dummy): Simplify assuming
+ CALL_DUMMY_BREAKPOINT_OFFSET_P.
+ * infrun.c (handle_inferior_event): Ditto.
+ * alpha-tdep.c (alpha_gdbarch_init): Do not set
+ call_dummy_breakpoint_offset or call_dummy_breakpoint_offset_p.
+ * arm-tdep.c (arm_gdbarch_init): Ditto.
+ * avr-tdep.c (avr_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * i386-tdep.c (i386_gdbarch_init): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * m68k-tdep.c (m68k_gdbarch_init): Ditto.
+ * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+ * mips-tdep.c (mips_gdbarch_init): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * sparc-tdep.c (sparc_gdbarch_init): Ditto.
+ * v850-tdep.c (v850_gdbarch_init): Ditto.
+ * vax-tdep.c (vax_gdbarch_init): Ditto.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.
+
+2003-04-01 Daniel Jacobowitz <drow@mvista.com>
+
+ * symfile.c (symfile_relocate_debug_section): Update call to
+ bfd_simple_get_relocated_section_contents.
+
+2003-03-31 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (FIX_CALL_DUMMY): Change to function with predicate.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * inferior.h (FIX_CALL_DUMMY): Delete macro.
+ * valops.c (hand_function_call): Only call FIX_CALL_DUMMY when
+ available.
+ * frame.h (generic_fix_call_dummy): Delete declaration.
+ * dummy-frame.h: Update comment.
+ * dummy-frame.c (generic_fix_call_dummy): Delete function.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
+ fix_call_dummy.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * i386-tdep.c (i386_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * avr-tdep.c (avr_gdbarch_init): Ditto.
+ * arm-tdep.c (arm_gdbarch_init): Ditto.
+
+2003-03-31 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/tm-hppa64.h (FRAME_ARGS_ADDRESS): Delete macro, not useful.
+ (INIT_FRAME_AP): Likewise.
+ (EXTRA_FRAME_INFO): Likewise.
+
+2003-03-31 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Include "symfile.h".
+ (CALL_DUMMY_ADDRESS): Default to entry_point_address.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * inferior.h (CALL_DUMMY_ADDRESS): Delete macro.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
+ call_dummy_address, the default is at entry_point_address.
+ * v850-tdep.c (v850_gdbarch_init): Ditto.
+ * sparc-tdep.c (sparc_gdbarch_init): Ditto.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * i386-tdep.c (i386_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * arm-tdep.c (arm_gdbarch_init): Ditto.
+
+2003-03-31 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (CALL_DUMMY_P): Delete.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * inferior.h (CALL_DUMMY_P): Delete macro.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * d10v-tdep.c (d10v_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * breakpoint.c (deprecated_frame_in_dummy): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * dummy-frame.c (dummy_frame_this_id): Update comments.
+ * rs6000-tdep.c (rs6000_extract_struct_value_address): Ditto.
+ * frame.c (legacy_get_prev_frame): Ditto.
+ * valops.c (call_function_by_hand): Delete function.
+ (hand_function_call): Rename to call_function_by_hand
+
+2003-03-30 Andrew Cagney <cagney@redhat.com>
+
+ 2002-11-10 Klee Dienes <kdienes@apple.com>
+ * value.h (struct value): Update comment.
+
+2003-03-30 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c: Replace _FP_REGNUM and FP_REGNUM with
+ D10V_FP_REGNUM.
+ (d10v_gdbarch_init): Do not set fp_regnum.
+
+ * frame.c (get_frame_base): Force ID initialization.
+ (get_prev_frame): Move computation of the frame ID from here ...
+ (get_frame_id): ... to here.
+ (legacy_get_prev_frame): Mark the frame ID as valid.
+ * frame.h (struct frame_info): Add field "id_p".
+
+2003-03-30 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_store_struct_return): Removed.
+ (i386_gdbarch_init): Don't set deprecated_store_struct_return.
+
+2003-03-30 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_DUMMY_WRITE_SP): Replace TARGET_WRITE_SP.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * v850-tdep.c (v850_gdbarch_init): Set deprecated_dummy_write_sp.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Ditto.
+ * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+ * m68k-tdep.c (m68k_gdbarch_init): Ditto.
+ * i386-tdep.c (i386_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * vax-tdep.c (vax_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * alpha-tdep.c (alpha_gdbarch_init): Ditto.
+ * sparc-tdep.c (sparc_push_dummy_frame, sparc_pop_frame): Update.
+ * config/sparc/tm-sp64.h (DEPRECATED_DUMMY_WRITE_SP): Update.
+ * config/pa/tm-hppa.h (DEPRECATED_DUMMY_WRITE_SP): Define.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * valops.c (hand_function_call): Replace TARGET_WRITE_SP with
+ DEPRECATED_DUMMY_WRITE_SP. Call when the method is available,
+ instead of when push_dummy_call is not available.
+
+2003-03-30 Andrew Cagney <cagney@redhat.com>
+
+ * infttrace.c: Include "gdbthread.h".
+ (parent_attach_all): Fix function signature.
+ (call_ptrace): Update call.
+ * Makefile.in (infttrace.o): Update dependencies.
+
+2003-03-30 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_PUSH_RETURN_ADDRESS): Replace
+ PUSH_RETURN_ADDRESS.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * valops.c (hand_function_call): Update.
+
+2003-03-29 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (d10v_gdbarch_init): Do not set call_dummy_words or
+ sizeof_call_dummy_words.
+ * gdbarch.sh (CALL_DUMMY_WORDS, SIZEOF_CALL_DUMMY_WORDS): Always
+ define.
+ * gdbarch.h: Regenerate.
+
+2003-03-29 Andrew Cagney <cagney@redhat.com>
+
+ * infttrace.h: New file.
+ * hpread.c: Include "gdb_assert.h" and "somsolib.h".
+ (hpread_get_textlow): Detect an uninitialized dn_bufp.
+ (hpread_read_doc_function_type): Detect an initialized type1.
+ (hpread_quick_traverse): Initialize mod_name_string.
+ * somsolib.h: Add #ifdef SOMSOLIB_H wrapper.
+ (som_solib_get_solib_by_pc): Declare.
+ (so_lib_thread_start_addr): Declare.
+ (no_shared_libraries): Declare.
+ * somread.c (init_import_symbols): Make static. Add forward
+ declaration.
+ * config/pa/nm-hppah.h: Include "infttrace.h" for
+ parent_attach_all.
+ (hppa_insert_hw_watchpoint): Declare.
+ (hppa_can_use_hw_watchpoint, hppa_remove_hw_watchpoint): Declare.
+ * hppah-nat.c: Include "gdb_string.h".
+ (parent_attach_all): Delete extern declaration, moved to
+ "infttrace.h".
+ (hppa_can_use_hw_watchpoint): Change type of "type" parameter to
+ int.
+ (hppa_remove_hw_watchpoint, hppa_insert_hw_watchpoint): Ditto.
+ * Makefile.in (infttrace_h): Define.
+ (hpread.o): Update dependencies.
+ (hppah-nat.o, hppa-hpux-tdep.o, hppa-tdep.o): Ditto.
+ * hppa-hpux-tdep.c: Include "gdb_string.h".
+ * hppa-tdep.c (hppa_frame_saved_pc): Initialize "old_pc".
+ * infrun.c (handle_inferior_event): Always initialize
+ stepped_after_stopped_by_watchpoint. Add default and remove
+ fallthrough in switch statement.
+ * infttrace.c (hppa_can_use_hw_watchpoint): Change type of "type"
+ parameter to int.
+ (hppa_remove_hw_watchpoint): Ditto.
+
+2003-03-29 Andrew Cagney <cagney@redhat.com>
+
+ * ns32k-tdep.c (ns32k_gdbarch_init): Set the call dummy breakpoint
+ offset.
+
+2003-03-29 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm-tdep.c (arm_push_arguments): Delete.
+ (struct stack_item): New type.
+ (push_stack_item, pop_stack_item, arm_push_dummy_call): New functions.
+ (arm_store_struct_return): Delte.
+ (arm_gdbarch_init): Register arm_push_dummy_call. Don't register
+ arm_push_arguments or arm_store_struct_return.
+
+2003-03-28 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (d10v-tdep.o): Update dependencies.
+ * remote.h (target_resume_hook, target_wait_loop_hook): Declare.
+ * d10v-tdep.c: Include "remote.h".
+ (target_resume_hook): Delete extern declaration.
+ (target_wait_loop_hook): Ditto.
+ (tdisassemble_command): Eliminate assignment in "if" conditional.
+ (d10v_ts2_register_sim_regno): Eliminate call to
+ legacy_register_sim_regno.
+ (d10v_ts3_register_sim_regno): Ditto.
+
+2003-03-28 Jeff Johnston <jjohnstn@redhat.com>
+
+ * thread.c: Reindented.
+ * lin-lwp.c: Ditto.
+ * linux-proc.c: Ditto.
+
+2003-03-28 Bob Rossi <bob_rossi@cox.net>
+
+ * MAINTAINERS (write after approval): Add myself.
+
+2003-03-27 Theodore A. Roth <troth@openavr.org>
+
+ * objc-exp.y: Add missing semi-colons.
+
+2003-03-27 Andrew Cagney <cagney@redhat.com>
+
+ * regcache.c (write_sp): Delete function and references.
+ * inferior.h (write_sp): Delete declaration.
+ * valops.c (hand_function_call): Replace write_sp with
+ TARGET_WRITE_SP.
+ * sparc-tdep.c (sparc_push_dummy_frame): Ditto.
+ (sparc_pop_frame): Ditto.
+
+2003-03-27 Andrew Cagney <cagney@redhat.com>
+
+ * NEWS: Mention removal of support for hppa*-*-bsd* and
+ hppa*-*-osf* natives, and hppa*-*-pro* target.
+ * config/pa/xm-hppah.h: Do not include "pa/xm-pa.h".
+ * config/pa/xm-pa.h: Obsolete file.
+ * config/pa/xm-hppab.h: Obsolete file.
+ * config/pa/nm-hppab.h: Obsolete file.
+ * config/pa/tm-hppab.h: Obsolete file.
+ * config/pa/tm-hppao.h: Obsolete file.
+ * config/pa/nm-hppao.h: Obsolete file.
+ * config/pa/tm-pro.h: Obsolete file.
+ * config/pa/hppaosf.mt: Obsolete file.
+ * config/pa/hppaosf.mh: Obsolete file.
+ * config/pa/hppapro.mt: Obsolete file.
+ * config/pa/hppabsd.mt: Obsolete file.
+ * config/pa/hppabsd.mh: Obsolete file.
+ * configure.host: Disable hppa*-*-bsd* and hppa*-*-osf*.
+ * configure.tgt: Disable hppa*-*-bsd*, hppa*-*-pro* and
+ hppa*-*-osf*.
+
+2003-03-27 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (d10v_gdbarch_init): Set push_dummy_call instead of
+ push_arguments. Don't set push_return_address or write_sp.
+ (d10v_push_dummy_call): Replace d10v_push_arguments.
+ (d10v_push_return_address, d10v_write_sp): Delete function,
+ handled by push_dummy_call.
+
+2003-03-26 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_PUSH_ARGUMENTS): Rename PUSH_ARGUMENTS.
+ (push_dummy_call): New pure multi-arch replacement with gdbarch,
+ regcache and dummy_addr parameters.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * valops.c (hand_function_call): Use gdbarch_push_dummy_call when
+ available; assume it will handle stack alignment and return
+ address issues. Fall back to DEPRECATED_PUSH_ARGUMENTS and
+ legacy_push_arguments.
+ (legacy_push_arguments): Rename default_push_arguments.
+ * value.h (legacy_push_arguments): Rename default_push_arguments.
+ * i386-tdep.c (i386_push_arguments): Call legacy_push_arguments.
+ * config/sparc/tm-sparc.h (DEPRECATED_PUSH_ARGUMENTS): Update.
+ * config/sparc/tm-sp64.h (DEPRECATED_PUSH_ARGUMENTS): Update.
+ * config/pa/tm-hppa.h (DEPRECATED_PUSH_ARGUMENTS): Update.
+ * config/i386/tm-symmetry.h: Update.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * d10v-tdep.c (d10v_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * arm-linux-tdep.c (arm_linux_init_abi): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+
+2003-03-26 Daniel Jacobowitz <drow@mvista.com>
+
+ * signals/signals.c (do_target_signal_to_host): Correct realtime
+ signal range test.
+
+2003-03-26 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (handle_gnu_4_16_catch_command, get_catch_sals)
+ (struct sal_chain, map_catch_names): Remove.
+ (catch_exception_command_1): Don't call
+ handle_gnu_4_16_catch_command.
+
+2003-03-26 Daniel Jacobowitz <drow@mvista.com>
+
+ From Mark Dettinger <dettinge@de.ibm.com>:
+ * dwarf2cfi.c (read_2u): Increment pointer by two.
+
+2003-03-26 Daniel Jacobowitz <drow@mvista.com>
+
+ * signals/signals.c: Fix typos in last change.
+
+2003-03-26 Daniel Jacobowitz <drow@mvista.com>
+
+ * signals/signals.c (REALTIME_LO, REALTIME_HI): Define if
+ not already defined. Use __SIGRTMIN if available.
+ (target_signal_from_host): Remove SIGRTMIN block.
+ (do_target_signal_to_host): Remove SIGRTMIN block; check that
+ the signal is within the realtime range.
+
+2003-03-25 Adam Fedor <fedor@gnu.org>
+
+ * Makefile.in (infrun.o): Add $(language_h)
+ * infrun.c (handle_inferior_event): Use skip_language_trampoline
+ for language specific trampolines.
+ * language.h (struct language_defn): Add skip_trampoline.
+ (skip_language_trampoline): Declare.
+ * language.c (unk_lang_trampoline, skip_language_trampoline):
+ New functions.
+ (unknown_language_defn, auto_language_defn, local_language_defn):
+ Add ukn_lang_trampoline.
+ * ada-lang.c (ada_language_defn): Add NULL for language
+ specific skip_trampoline.
+ * c-lang.c, f-lang.c, jv-lang.c, m2-lang.c, p-lang.c,
+ scm-lang.c: Likewise.
+ * objc-lang.c (objc_skip_trampoline): New function.
+ (objc_language_defn): Add objc_skip_trampoline.
+
+2003-03-25 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_prev_frame): Delay validating a frame's ID -
+ non-NULL, didn't go backwards - until an attempt to unwind it to
+ the previous frame.
+
+2003-03-25 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED): Replace
+ EXTRA_STACK_ALIGNMENT_NEEDED. Default to 0 not 1.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * config/sparc/tm-sparc.h
+ (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED): Define.
+ * sparc-tdep.c (sparc_gdbarch_init): Set
+ deprecated_extra_stack_alignment_needed.
+ * config/pa/tm-hppa.h (EXTRA_STACK_ALIGNMENT_NEEDED): Delete.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Do not clear
+ extra_stack_alignment_needed.
+ * v850-tdep.c (v850_gdbarch_init): Ditto.
+ * hppa-tdep.c (hppa_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * m68k-tdep.c (m68k_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+
+2003-03-25 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_STORE_STRUCT_RETURN): Replace
+ STORE_STRUCT_RETURN.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * d10v-tdep.c (d10v_store_struct_return): Delete function.
+ (d10v_push_arguments): Set the struct return register.
+ (d10v_gdbarch_init): Update.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+
+2003-03-25 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (CALL_DUMMY_STACK_ADJUST_P): Delete.
+ (DEPRECATED_CALL_DUMMY_STACK_ADJUST): Replace
+ CALL_DUMMY_STACK_ADJUST with a predicate variable.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set
+ call_dummy_stack_adjust_p.
+ * vax-tdep.c (vax_gdbarch_init): Ditto.
+ * v850-tdep.c (v850_gdbarch_init): Ditto.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * mips-tdep.c (mips_gdbarch_init): Ditto.
+ * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+ * m68k-tdep.c (m68k_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * i386-tdep.c (i386_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * avr-tdep.c (avr_gdbarch_init): Ditto.
+ * arm-tdep.c (arm_gdbarch_init): Ditto.
+ * alpha-tdep.c (alpha_gdbarch_init): Ditto.
+ * config/sparc/tm-sp64.h (CALL_DUMMY_STACK_ADJUST): Update.
+ * config/sparc/tm-sparc.h (CALL_DUMMY_STACK_ADJUST): Update.
+ * config/sparc/tm-sp64.h (CALL_DUMMY_STACK_ADJUST): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update. Do not set
+ call_dummy_stack_adjust_p.
+ * inferior.h (CALL_DUMMY_STACK_ADJUST_P): Delete macro.
+ (CALL_DUMMY_STACK_ADJUST): Delete macro.
+ * sparc-tdep.c (sparc32_push_arguments): Update.
+ * valops.c (hand_function_call): Update.
+
+2003-03-25 Corinna Vinschen <vinschen@redhat.com>
+
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Add call to
+ set_gdbarch_char_signed.
+
+2003-03-25 Richard Earnshaw <rearnsha@arm.com>
+
+ PR cli/548
+ * arm-tdep.c (_initialize_arm_tdep): Command is "set arm disassembler".
+
+2003-03-25 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm-tdep.c (arm_gdbarch_init): Register the disassembler function.
+ (_initialize_arm_tdep): Don't set tm_print_insn.
+
+2003-03-24 Adam Fedor <fedor@gnu.org>
+
+ * Makefile.in (YYOBJ): Add objc-exp.tab.o
+ * objc-lang.h: Add multiple inclusion protection.
+ (start_msglist, add_msglist, end_msglist): Additional declarations.
+
+2003-03-24 Richard Earnshaw <rearnsha@arm.com>
+
+ * armnbsd-tdep.c (arm_netbsd_aout_init_abi): ARM_FLOAT_SOFT enum
+ value was renamed to ARM_FLOAT_SOFT_FPA.
+
+2003-03-23 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_FRAME_CHAIN): Replace FRAME_CHAIN.
+ (DEPRECATED_FRAME_CHAIN_VALID): Replace FRAME_CHAIN_VALID.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * valops.c (hand_function_call): Update.
+ * objfiles.h (DEPRECATED_FRAME_CHAIN_VALID): Update.
+ * frame.c (legacy_saved_regs_this_id): Update.
+ (legacy_get_prev_frame, get_prev_frame, legacy_frame_p): Update.
+ * dummy-frame.h: Update.
+ * config/sparc/tm-sparc.h (DEPRECATED_FRAME_CHAIN): Update.
+ * config/pa/tm-hppa.h (DEPRECATED_FRAME_CHAIN_VALID): Update.
+ * config/m68k/tm-vx68.h (DEPRECATED_FRAME_CHAIN): Update.
+ * config/m68k/tm-os68k.h (DEPRECATED_FRAME_CHAIN): Update.
+ * config/m68k/tm-sun3.h: Update.
+ * blockframe.c (inside_main_func, frame_chain_valid): Update.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_frame_chain, sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_frame_saved_pc): Update.
+ (rs6000_gdbarch_init, rs6000_frame_saved_pc): Update.
+ (frame_get_saved_regs): Update.
+ * ppc-linux-tdep.c (ppc_linux_init_abi): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_frame_num_args, i386_gdbarch_init): Update.
+ * i386-interix-tdep.c (i386_interix_init_abi): Update.
+ (i386_interix_back_one_frame): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ (hppa_init_extra_frame_info): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+
+2003-03-22 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm-tdep.h (arm_float_model): Add AUTO and LAST values.
+ (arm_get_fp_model): Declare.
+ * arm-tdep.c (fp_model_strings): New string array.
+ (arm_fp_model, current_fp_model): New variables.
+ (arm_get_fp_model): New function.
+ (arm_set_fp): New function.
+ (set_fp_model_sfunc): New function.
+ (show_fp_model): New function.
+ (_initialize_arm_tdep): Add new command to set/show the FPU.
+ (arm_extract_return_value): Use arm_get_fp_model.
+ (arm_store_return_value): Likewise.
+ (arm_gdbarch_init): Default fpa model is softfpa. Call arm_set_fp
+ to initialize the floating-point data types.
+ * arm-linux-tdep.c (arm_linux_init_abi): The default floating point
+ model is FPA.
+
+2003-03-22 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm-tdep.c (show_arm_command): Don't print out help. Instead, show
+ the current setting of each value.
+ (_initialize_arm_tdep): Delete variable new_cmd and add new vars
+ new_set and new_show. Use add_setshow_cmd_full and
+ add_setshow_boolean_cmd as appropriate. Deprecate "set/show apcs32"
+ commands and add new version as subcommands of "set/show arm".
+
+2003-03-22 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm-tdep.c (setarmcmdlist, showarmcmdlist): New command lists.
+ (set_arm_command, show_arm_command): New functions.
+ (_initialize_arm_tdep): Add them.
+ (num_disassembly_options): Renamed from num_flavor_options.
+ (valid_disassembly_styles): Renamed from valid_flavors.
+ (disassembly_style): Renamed from disassembly_flavor.
+ (set_disassembly_style_sfunc): Renamed from
+ set_disassembly_flavor_sfunc.
+ (set_disassembly_style): Renamed from set_disassembly_flavor.
+ (arm_othernames): Updated.
+ (_initialize_arm_tdep): Deprecate "set/show disassembly-flavor"
+ command. Add "set/show arm disassembly" commands. Deprecate
+ "othernames" command.
+
+2003-03-22 Richard Earnshaw <rearnsha@arm.com>
+
+ * Makefile.in (elf_reloc_macros_h, elf_arm_h): Define.
+ (arm-tdep.o): Depend on elf_arm_h.
+
+2003-03-22 Richard Earnshaw <rearnsha@arm.com>
+
+ * Makefile.in (coff_internal_h): Define.
+ (arm-tdep.o): Update dependencies.
+
+2003-03-22 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm-tdep.c (prologue_cache): Delete.
+ (check_prologue_cache, save_prologue_cache): Delete.
+ (arm_scan_prologue): Don't check or update the prologue_cache.
+ (arm_gdb_arch_init): Don't initialize it.
+ (_initialize_arm_tdep): Likewise.
+
+2003-03-21 Stephane Carrez <stcarrez@nerim.fr>
+
+ * MAINTAINERS (tui): Maintainer of tui code.
+
+2003-03-21 Corinna Vinschen <vinschen@redhat.com>
+
+ * Makefile.in (ALLDEPFILES): Add i386-cygwin-tdep.c.
+ (i386-cygwin-tdep.o): Add dependencies.
+ * defs.h (enum gdb_osabi): Add GDB_OSABI_CYGWIN.
+ * i386-cygwin-tdep.c: New file.
+ * osabi.c (gdb_osabi_name): Add string for GDB_OSABI_CYGWIN.
+ * config/i386/cygwin.mt (TDEPFILES): Add i386-cygwin-tdep.o.
+
+2003-03-20 Andrew Cagney <cagney@redhat.com>
+
+ * infrun.c (DYNAMIC_TRAMPOLINE_NEXTPC): Delete macro.
+ (handle_inferior_event): Remove code calling
+ DYNAMIC_TRAMPOLINE_NEXTPC.
+
+ * Makefile.in (init.c): Don't add $(srcdir) prefix when a file
+ already has a full path.
+
+ * main.c (gdb_main): Return 1.
+ (captured_main): Call error to report an invalid interpreter.
+
+ * Makefile.in (alpha-osf1-tdep.o): Update dependencies.
+ * alpha-osf1-tdep.c: Include "gdb_string.h".
+
+2003-03-19 J. Brobecker <brobecker@gnat.com>
+
+ Continuing work to convert the hppa targets to multiarch partial.
+
+ * hppa-tdep.c (hppa_gdbarch_init): Set the push_dummy_frame gdbarch
+ method, now that hppa_push_dummy_frame has a conformant prototype.
+ * config/pa/tm-hppa.h (DEPRECATED_PUSH_DUMMY_FRAME): Wrap macro
+ inside "#if !GDB_MULTI_ARCH ... #endif" conditional, in preparation
+ for the switch to multiarch partial.
+
+2003-03-19 Kevin Buettner <kevinb@redhat.com>
+
+ * mdebugread.c (parse_symbol): For stEnd, we're done counting
+ when iss is issNull.
+
+2003-03-18 Kevin Buettner <kevinb@redhat.com>
+
+ * mips-tdep.c (mips_register_name): Fix fencepost error involving
+ NUM_REGS bounds check.
+
+2003-03-18 Kevin Buettner <kevinb@redhat.com>
+
+ * Makefile.in (mips-tdep.o): Add dependency on $(gdb_assert_h).
+ * mips-tdep.c (gdb_assert.h): Include.
+ (mips_generic_reg_names, mips_processor_reg_names): Make static.
+ (mips_register_name): Handle integer registers explicitly. Add
+ bounds checking.
+ (mips_r3041_reg_names, mips_r3051_reg_names, mips_r3081_reg_names)
+ (mips_lsi33k_reg_names): Don't list integer registers; they're
+ handled by mips_register_name() now.
+ * config/mips/tm-irix3.h (MIPS_REGISTER_NAMES): Likewise.
+ * config/mips/tm-irix6.h (MIPS_REGISTER_NAMES): Likewise.
+ * config/mips/tm-mips.h (MIPS_REGISTER_NAMES): Likewise.
+ * config/mips/tm-tx39.h (MIPS_REGISTER_NAMES): Likewise.
+ * config/mips/tm-tx39l.h (MIPS_REGISTER_NAMES): Likewise.
+
+2003-03-18 Andrew Cagney <cagney@redhat.com>
+
+ * printcmd.c (print_scalar_formatted): Change VALADDR parameter to
+ a void pointer.
+ * gdbtypes.h (print_scalar_formatted): Update declaration.
+ * expression.h (enum exp_opcode): Remove non-ISO C trailing comma.
+
+2003-03-18 J. Brobecker <brobecker@gnat.com>
+
+ * infrun.c (observer.h): Add #include.
+ (normal_stop): Add call to observer_notify_normal_stop.
+ * Makefile.in (infrun.o): Add dependency on observer.h.
+
+2003-03-18 J. Brobecker <brobecker@gnat.com>
+
+ Continuing work to convert the hppa targets to multiarch partial.
+ * hppa-tdep.c (hppa_push_dummy_frame): Remove unused function
+ parameter. Reformat comment.
+ * config/pa/tm-hppa.h (hppa_push_dummy_frame): Update profile.
+ (DEPRECATED_PUSH_DUMMY_FRAME): Update call to hppa_push_dummy_frame()
+ to match new profile.
+
+2003-03-18 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-tdep.c (hppa_push_dummy_frame): Remove hack which does not
+ appear to be working in any case.
+
+2003-03-18 J. Brobecker <brobecker@gnat.com>
+
+ * observer.c (observer_test_first_observer): New static variable.
+ (observer_test_second_observer): Likewise.
+ (observer_test_third_observer): Likewise.
+ (observer_test_first_notification_function): New static function.
+ (observer_test_second_notification_function): Likewise.
+ (observer_test_third_notification_function): Likewise.
+
+2003-03-17 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-tdep.c (gdb_assert.h): Add missing #include.
+ * somsolib.c (gdb_assert.h): Likewise.
+ * Makefile.in (hppa-tdep.o): Add dependency on gdb_assert.h.
+ (somsolib.o): Likewise.
+
+2003-03-17 Andrew Cagney <cagney@redhat.com>
+
+ * disasm.c (gdb_disassembly): Set di.mach using the architecture's
+ BFD. Simplify setting of di.endian.
+
+2003-03-17 Andrew Cagney <cagney@redhat.com>
+
+ * rs6000-tdep.c (ppc_floating_point_unit_p): New function.
+ * ppc-tdep.h (ppc_floating_point_unit_p): Declare.
+
+ From Elena Zannoni <ezannoni@redhat.com>
+ * ppc-sysv-tdep.c (ppc_sysv_abi_push_arguments): Handle e500
+ vector and floating-point parameters.
+ (ppc_sysv_abi_use_struct_convention): Handle e500 struct return
+ convention.
+ (ppc_sysv_abi_broken_use_struct_convention): Ditto.
+
+2003-03-17 Fernando Nasser <fnasser@redhat.com>
+
+ * MAINTAINERS: Remove my name from several maintainership roles.
+
+2003-03-17 Andrew Cagney <cagney@redhat.com>
+
+ Fix frame off-by-one bug.
+ * frame-unwind.h (frame_this_id_ftype): Replace
+ frame_unwind_id_ftype.
+ (frame_prev_register_ftype): Replace frame_unwind_reg_ftype.
+ (struct frame_unwind): Replace "id" with "this_id". Replace "reg"
+ with "prev_register".
+ * frame-unwind.c (frame_unwind_find_by_pc): Return
+ legacy_saved_regs_unwind instead of trad_frame_unwind. Update
+ comment.
+ * dummy-frame.c (cached_find_dummy_frame): Delete function.
+ (dummy_frame_this_id): Replace dummy_frame_id_unwind.
+ (dummy_frame_prev_register): Replace dummy_frame_register_unwind.
+ (dummy_frame_unwind): Update.
+ * sentinel-frame.c (sentinel_frame_prev_register): Replace
+ sentinel_frame_register_unwind.
+ (sentinel_frame_this_id): Replace sentinel_frame_id_unwind.
+ (sentinel_frame_unwinder): Update.
+ * frame.h (legacy_saved_regs_unwind): Replace trad_frame_unwind.
+ (struct frame_info): Rename "unwind_cache" to "prologue_cache".
+ * frame.c (create_sentinel_frame): Update. Initialize
+ "prologue_cache" instead of "unwind_cache".
+ (frame_register_unwind): Call this frame's prev_register with the
+ next frame and this frame's prologue cache.
+ (get_prev_frame): Simplify. Always call prev frame's this_id with
+ this frame and prev frame's prologue cache. Document that this
+ call is shifted one to the left when compared to the
+ frame_register_unwind call.
+ (legacy_saved_regs_prev_register): Replace
+ frame_saved_regs_register_unwind.
+ (legacy_saved_regs_this_id): Replace frame_saved_regs_id_unwind.
+ (legacy_saved_regs_unwinder): Replace trad_frame_unwinder.
+ (legacy_saved_regs_unwind): Replace trad_frame_unwind.
+ * d10v-tdep.c (d10v_frame_this_id): Replace d10v_frame_id_unwind.
+ (d10v_frame_unwind): Update.
+ (d10v_frame_prev_register): Replace d10v_frame_register_unwind.
+ (d10v_frame_unwind_cache): Replace this "fi" with "next_frame".
+ (saved_regs_unwinder): Replace this "frame" with "next_frame", and
+ "saved_regs" with "this_saved_regs".
+
+2003-03-16 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (frame_pop): Don't call target_store_registers. Fix
+ problem reported by Mark Kettenis.
+
+2003-03-16 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_register_type): Renamed from
+ i386_register_virtual_type. Adjust function signature.
+ (i386_gdbarch_init): Set register_type instead of
+ deprecated_max_register_raw_size,
+ deprecated_max_register_virtual_size and register_virtual_type.
+
+2003-03-14 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_prev_frame): When a legacy frame, always call
+ legacy_get_prev_frame. Simplify unwind code using assumption that
+ the unwinder is new.
+ (legacy_get_prev_frame): Handle legacy sentinel frame unwind here.
+ (legacy_frame_p): When no gdbarch_unwind_dummy_id, or
+ SAVED_DUMMY_FRAME_TOS, assume a legacy frame.
+
+2003-03-14 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_saved_register): Delete function.
+ * frame.h (get_saved_register): Delete declaration.
+ * xstormy16-tdep.c: Update comment.
+ * regcache.h: Update comments.
+ * sparc-tdep.c (sparc_init_extra_frame_info): Instead of
+ get_saved_register and extract_address, use
+ frame_read_unsigned_register.
+ (sparc_frame_saved_pc): Ditto.
+ (sparc_get_saved_register): Instead of get_saved_register, use
+ frame_register.
+ (sparc_pop_frame): Ditto.
+ * findvar.c: Update comments.
+ (value_of_register): Call frame_register instead of
+ get_saved_register.
+ (value_from_register): Ditto.
+ * config/sparc/tm-sparc.h: Update comment.
+ * breakpoint.c: Update comment.
+
+2003-03-14 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_GET_SAVED_REGISTER): Replace
+ GET_SAVED_REGISTER.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * frame.h: Update comments.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * frame.c (frame_register): Update.
+ (get_saved_register): Update.
+ * config/sparc/tm-sparc.h (DEPRECATED_GET_SAVED_REGISTER): Update.
+
+2003-03-13 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_POP_FRAME): Replace POP_FRAME.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * valops.c (hand_function_call): Update comment.
+ * stack.c (return_command): Update comment.
+ * config/sparc/tm-sparc.h (DEPRECATED_POP_FRAME): Update.
+ * config/pa/tm-hppa.h (DEPRECATED_POP_FRAME): Update.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+
+2003-03-13 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (legacy_frame_p): New function.
+ (get_prev_frame): Use legacy_frame_p.
+ * frame.h (legacy_frame_p): Declare.
+
+2003-03-13 D. Venkatasubramanian <dvenkat@noida.hcltech.com>
+
+ * MAINTAINERS (write after approval): Alphabetically
+ listing corrected.
+
+2003-03-13 D. Venkatasubramanian <dvenkat@noida.hcltech.com>
+
+ * MAINTAINERS (write after approval): Add myself.
+
+2003-03-12 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_prev_frame): Rename the frame parameter to
+ "this_frame".
+ (get_next_frame, legacy_get_prev_frame): Ditto.
+
+2003-03-12 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_current_frame): Check target_has_registers before
+ checking target_has_stack.
+ * eval.c (evaluate_subexp_standard): Use get_selected_frame,
+ instead of deprecated_selected_frame.
+ * findvar.c (value_of_register): Pass "frame", not
+ deprecated_selected_frame, to value_of_builtin_reg.
+
+2003-03-12 Andrew Cagney <cagney@redhat.com>
+
+ * regcache.c (regcache_cooked_write_signed): New function.
+ (regcache_cooked_write_unsigned): New function.
+ (regcache_cooked_read_unsigned): Fix regnum in range assertion.
+ (regcache_cooked_read_signed): Fix regnum in range assertion.
+ * regcache.h (regcache_cooked_write_signed): Declare.
+ (regcache_cooked_write_unsigned): Declare.
+
+2003-03-12 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_FRAME_SAVED_PC): Replace FRAME_SAVED_PC.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.h: Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ppc-linux-tdep.c (ppc_linux_init_abi): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * i386-interix-tdep.c (i386_interix_init_abi): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+ * sh-tdep.c (sh_init_extra_frame_info): Update.
+ (sh64_init_extra_frame_info): Update.
+ * ns32knbsd-nat.c (frame_num_args): Update.
+ * m68hc11-tdep.c (m68hc11_init_extra_frame_info): Update.
+ * xstormy16-tdep.c (xstormy16_pop_frame): Update.
+ (xstormy16_frame_chain_valid): Update.
+ * vax-tdep.c (vax_saved_pc_after_call): Update.
+ * v850-tdep.c (v850_frame_chain): Update.
+ (v850_pop_frame): Update.
+ (v850_init_extra_frame_info): Update.
+ * sparc-tdep.c (setup_arbitrary_frame): Update.
+ * ns32k-tdep.c (umax_frame_num_args): Update.
+ * s390-tdep.c (s390_pop_frame_regular): Update.
+ * mn10300-tdep.c (mn10300_frame_chain): Update.
+ (mn10300_pop_frame_regular): Update.
+ (mn10300_init_extra_frame_info): Update.
+ * mips-tdep.c (mips_init_frame_pc_first): Update.
+ (mips_frame_chain): Update.
+ (mips_pop_frame): Update.
+ * mcore-tdep.c (mcore_frame_chain): Update.
+ (mcore_pop_frame): Update.
+ (mcore_init_extra_frame_info): Update.
+ * arch-utils.c (init_frame_pc_default): Update.
+ * m68k-tdep.c (isi_frame_num_args): Update.
+ (delta68_frame_num_args): Update.
+ (news_frame_num_args): Update.
+ * ia64-tdep.c (ia64_pop_frame_regular): Update.
+ * alpha-tdep.c (alpha_init_frame_pc_first): Update.
+ (alpha_frame_chain): Update.
+ (alpha_pop_frame): Update.
+ * hppa-tdep.c (hppa_saved_pc_after_call): Update.
+ (hppa_init_extra_frame_info): Update.
+ (hppa_frame_chain): Update.
+ (hppa_frame_chain_valid): Update.
+ * cris-tdep.c (cris_init_extra_frame_info): Update.
+ * avr-tdep.c (avr_init_extra_frame_info): Update.
+ * arm-tdep.c (arm_frame_chain_valid): Update.
+ (arm_init_extra_frame_info): Update.
+ (arm_pop_frame): Update.
+ * frame.c (frame_pc_unwind): Update.
+ * config/sparc/tm-sparc.h (DEPRECATED_FRAME_SAVED_PC): Update.
+ (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
+ * config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
+ * config/pa/tm-hppa.h (DEPRECATED_FRAME_SAVED_PC): Update.
+ * config/m68k/tm-delta68.h (DEPRECATED_FRAME_SAVED_PC): Update.
+ * config/m68k/tm-linux.h (DEPRECATED_FRAME_SAVED_PC): Update.
+
+2003-03-12 Andrew Cagney <cagney@redhat.com>
+
+ Eliminate the need for POP_FRAME.
+ * frame.c (do_frame_unwind_register): New function.
+ (frame_pop): When no POP_FRAME, pop the frame using register
+ unwind and a scratch regcache.
+ (frame_saved_regs_pop): Delete function.
+ (trad_frame_unwinder): Update.
+ * d10v-tdep.c (d10v_frame_pop): Delete function.
+ (d10v_frame_unwind): Update.
+ * sentinel-frame.c (sentinel_frame_pop): Delete function.
+ (sentinel_frame_unwinder): Update.
+ * dummy-frame.c (dummy_frame_pop): Delete function.
+ (dummy_frame_unwind): Update.
+ * frame-unwind.h (frame_unwind_pop_ftype): Delete definition.
+ (struct frame_unwind): Update.
+
+2003-03-11 Kevin Buettner <kevinb@redhat.com>
+
+ * mips-tdep.c (mips_ecoff_reg_to_regnum): Rename to
+ mips_dwarf_dwarf2_ecoff_reg_to_regnum().
+ (mips_dwarf_dwarf2_ecoff_reg_to_regnum, mips_stab_reg_to_regnum):
+ Do range checks on register number obtained from debugging info.
+ (mips_gdbarch_init): Call set_gdbarch_dwarf_reg_to_regnum() and
+ set_gdbarch_dwarf2_reg_to_regnum(). Adjust call of
+ set_gdbarch_ecoff_reg_to_regnum() to account for new name of
+ mapping function.
+ (do_fp_register_row): Fix typo which caused double type to be
+ used when attempting to unpack a float.
+
+2003-03-11 J. Brobecker <brobecker@gnat.com>
+
+ * breakpoint.c (bpstat_stop_status): Fix a small memory leak.
+
+2003-03-11 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (deprecated_update_frame_pc_hack): Don't assume a next
+ frame. Problem found by Corinna Vinschen.
+
+2003-03-11 Pierre Muller <muller@ics.u-strasbg.fr>
+
+ * doublest.c (floatformat_from_length): Accept also
+ the real size of 'long double' type.
+
+2003-03-10 Daniel Jacobowitz <drow@mvista.com>
+
+ From Klee Dienes <kdienes@apple.com>:
+ * breakpoint.c (bpstat_copy): Copy the command lines as well
+ as the old value, to match what is freed in bpstat_clear.
+
+2003-03-10 David Carlton <carlton@math.stanford.edu>
+
+ * minsyms.c (add_minsym_to_hash_table): Replace
+ DEPRECATED_SYMBOL_NAME by SYMBOL_LINKAGE_NAME.
+ (compare_minimal_symbols, compact_minimal_symbols)
+ (install_minimal_symbols, find_solib_trampoline_target): Ditto.
+ (lookup_minimal_symbol_text): Use strcmp on linkage names instead
+ of DEPRECATED_SYMBOL_MATCHES_NAME.
+ (lookup_minimal_symbol_solib_trampoline): Ditto.
+
+2003-03-10 Andrew Cagney <cagney@redhat.com>
+
+ * regcache.h (regcache_cooked_read_ftype): Define.
+ (regcache_save, regcache_restore): Add a cooked_read parameter.
+ * regcache.c (regcache_save, regcache_restore): Update.
+ (do_cooked_read): New function.
+ (regcache_cpy): Pass do_cooked_read to regcache_save and
+ regcache_restore.
+
+2003-03-10 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_FRAME_SAVED_PC): Replace FRAME_SAVED_PC.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.h: Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ppc-linux-tdep.c (ppc_linux_init_abi): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * i386-interix-tdep.c (i386_interix_init_abi): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+ * sh-tdep.c (sh_init_extra_frame_info): Update.
+ (sh64_init_extra_frame_info): Update.
+ * ns32knbsd-nat.c (frame_num_args): Update.
+ * m68hc11-tdep.c (m68hc11_init_extra_frame_info): Update.
+ * xstormy16-tdep.c (xstormy16_pop_frame): Update.
+ (xstormy16_frame_chain_valid): Update.
+ * vax-tdep.c (vax_saved_pc_after_call): Update.
+ * v850-tdep.c (v850_frame_chain): Update.
+ (v850_pop_frame): Update.
+ (v850_init_extra_frame_info): Update.
+ * sparc-tdep.c (setup_arbitrary_frame): Update.
+ * ns32k-tdep.c (umax_frame_num_args): Update.
+ * s390-tdep.c (s390_pop_frame_regular): Update.
+ * mn10300-tdep.c (mn10300_frame_chain): Update.
+ (mn10300_pop_frame_regular): Update.
+ (mn10300_init_extra_frame_info): Update.
+ * mips-tdep.c (mips_init_frame_pc_first): Update.
+ (mips_frame_chain): Update.
+ (mips_pop_frame): Update.
+ * mcore-tdep.c (mcore_frame_chain): Update.
+ (mcore_pop_frame): Update.
+ (mcore_init_extra_frame_info): Update.
+ * arch-utils.c (init_frame_pc_default): Update.
+ * m68k-tdep.c (isi_frame_num_args): Update.
+ (delta68_frame_num_args): Update.
+ (news_frame_num_args): Update.
+ * ia64-tdep.c (ia64_pop_frame_regular): Update.
+ * alpha-tdep.c (alpha_init_frame_pc_first): Update.
+ (alpha_frame_chain): Update.
+ (alpha_pop_frame): Update.
+ * hppa-tdep.c (hppa_saved_pc_after_call): Update.
+ (hppa_init_extra_frame_info): Update.
+ (hppa_frame_chain): Update.
+ (hppa_frame_chain_valid): Update.
+ * cris-tdep.c (cris_init_extra_frame_info): Update.
+ * avr-tdep.c (avr_init_extra_frame_info): Update.
+ * arm-tdep.c (arm_frame_chain_valid): Update.
+ (arm_init_extra_frame_info): Update.
+ (arm_pop_frame): Update.
+ * frame.c (frame_pc_unwind): Update.
+ * config/sparc/tm-sparc.h (DEPRECATED_FRAME_SAVED_PC): Update.
+ (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
+ * config/rs6000/tm-rs6000.h (DEPRECATED_INIT_FRAME_PC_FIRST): Update.
+ * config/pa/tm-hppa.h (DEPRECATED_FRAME_SAVED_PC): Update.
+ * config/m68k/tm-delta68.h (DEPRECATED_FRAME_SAVED_PC): Update.
+ * config/m68k/tm-linux.h (DEPRECATED_FRAME_SAVED_PC): Update.
+
+2003-03-10 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (gdbarch_unwind_pc): New method.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * frame.c (frame_pc_unwind): Rewrite. Prefer gdbarch_unwind_pc,
+ but use read_pc and FRAME_SAVED_PC as fall backs.
+ (frame_saved_regs_pc_unwind): Delete function.
+ (trad_frame_unwinder): Update.
+ * frame-unwind.h (frame_unwind_pc_ftype): Delete declaration.
+ (struct frame_unwind): Update.
+ * dummy-frame.c (dummy_frame_pc_unwind): Delete function.
+ (dummy_frame_unwind): Update.
+ * sentinel-frame.c (sentinel_frame_pc_unwind): Delete function.
+ (sentinel_frame_unwinder): Update.
+ * d10v-tdep.c (d10v_frame_pc_unwind): Delete function.
+ (d10v_frame_unwind): Update.
+ (d10v_unwind_pc): New function.
+ (d10v_gdbarch_init): Set unwind_pc.
+
+2003-03-10 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.h: Re-generate.
+
+ * d10v-tdep.c (d10v_frame_register_unwind): Correctly unwind the
+ PC.
+ (d10v_frame_pop): Unwind the PC, and not the LR, when restoring
+ the PC register.
+
+2003-03-08 Mark Kettenis <kettenis@gnu.org>
+
+ * gdbarch.sh (save_dummy_frame_tos): Add comment.
+
+2003-03-08 Andrew Cagney <cagney@redhat.com>
+
+ * cli-out.c: Update copyright.
+ (cli_out_data): Define typedef. Use instead of ui_out_data.
+
+2003-03-08 Andrew Cagney <cagney@redhat.com>
+
+ * valarith.c (value_subscripted_rvalue): Copy the array's REGNO to
+ the result.
+
+2003-03-07 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Don't generate two macro definitions when an
+ undefined macro taking no arguments.
+ * gdbarch.h: Regenerate.
+
+2002-03-07 Michal Ludvig <mludvig@suse.cz>
+
+ * x86-64-tdep.c (x86_64_save_dummy_frame_tos)
+ (x86_64_unwind_dummy_id): New functions.
+ (x86_64_init_abi): Register these two new functions.
+
+2003-03-07 Michal Ludvig <mludvig@suse.cz>
+
+ * x86-64-tdep.c (x86_64_function_has_prologue): New function.
+ (x86_64_skip_prologue): Move prologue detection to
+ separate function.
+ * x86-64-tdep.h (x86_64_function_has_prologue): New prototype.
+
+2003-03-05 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (d10v_unwind_dummy_id): New function.
+ (d10v_gdbarch_init): Set unwind_dummy_id and save_dummy_frame_tos.
+ * frame.c (get_prev_frame): Restructure the frame ID unwind code
+ to use unwind_dummy_id when a dummy frame.
+ * gdbarch.sh (unwind_dummy_id): New multi-arch method with
+ predicate.
+ * gdbarch.h, gdbarch.c: Regneerate.
+
+2003-03-05 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (struct d10v_unwind_cache): Add field "base".
+ (d10v_frame_unwind_cache): Rewrite code computing the base and SP.
+ Do not use d10v_read_sp or d10v_read_fp when obtaining register
+ values.
+
+2003-03-05 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (struct frame_extra_info): Delete unused structure.
+ (struct d10v_unwind_cache): Delete field "frameless". Replace
+ "next_addr" with "sp_offset". Add "r11_offset".
+ (d10v_frame_unwind_cache): Update.
+ (prologue_find_regs): Update. When "mv r11, sp", save the
+ "sp_offset" in "r11_offset". Recognize "st rn, @r11", note that
+ RN was saved in r11_offset.
+
+2003-03-05 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (deprecated_update_frame_pc_hack): Also update the the
+ cached PC value in the next frame.
+
+2003-03-05 Andrew Cagney <cagney@redhat.com>
+
+ * frame.h (struct frame_info): Replace "id_unwind_cache_p" and
+ "id_unwind_cache" with "id".
+ (frame_id_unwind): Delete declaration.
+ * frame.c (frame_id_unwind): Delete function.
+ (get_prev_frame): Call the frame id unwind method directly. Store
+ the returned next frame's ID value in NEXT_FRAME. Note that there
+ is a problem with the wrong unwind ID being called with the wrong
+ unwind cache.
+
+2003-03-05 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (FLAGS_TO_PASS): Add LDFLAGS.
+
+2003-03-05 James Ingham <jingham@apple.com>
+ Daniel Jacobowitz <drow@mvista.com>
+
+ * cp-abi.c: Include "command.h", "gdbcmd.h", and "ui-out.h".
+ (auto_cp_abi): New variable.
+ (current_cp_abi, num_cp_abis): Make static.
+ (CP_ABI_MAX): Define.
+ (cp_abis): Turn into an array.
+ (value_virtual_fn_field): Fix formatting.
+ (switch_to_cp_abi, register_cp_abi): Update. register_cp_abi now
+ takes a pointer.
+ (set_cp_abi_as_auto_default, set_cp_abi_cmd, show_cp_abi_cmd)
+ (list_cp_abis, _initialize_cp_abi): New functions.
+ * cp-abi.h: Add prototype for set_cp_abi_as_auto_default. Remove
+ declarations for cp_abis, num_cp_abis, current_cp_abi, and
+ switch_to_cp_abi. Update prototype for register_cp_abi.
+ * Makefile.in (cp-abi.o): Update dependencies.
+ * minsyms.c (install_minimal_symbols): Call set_cp_abi_as_auto_default
+ instead of switch_to_cp_abi.
+ * gnu-v2-abi.c (_initialize_gnu_v2_abi): Likewise. Update call to
+ register_cp_abi.
+ * gnu-v3-abi.c (_initialize_gnu_v3_abi): Update call to
+ register_cp_abi.
+ * hpacc-abi.c (_initialize_hpacc_abi): Likewise.
+
+2003-03-05 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2expr.c (new_dwarf_expr_context): Add (void) to definition.
+ * dwarf2loc.c: Include "regcache.h".
+ (dwarf_expr_read_reg): Rename regnum argument to dwarf_regnum. Use
+ register_size.
+ * Makefile.in (dwarf2loc.o): Update dependencies.
+
+2003-03-04 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_io_reg_read_command): Fix to handle case when the
+ number of io registers reported by remote target is not a multiple of
+ step.
+
+2003-03-04 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.c (lookup_partial_symbol): Add linkage_name argument.
+ (lookup_symbol_aux_psymtabs): Update call to
+ lookup_partial_symbol.
+ (lookup_transparent_type, find_main_psymtab)
+ (make_symbol_overload_list): Ditto.
+
+2003-03-04 Kazu Hirata <kazu@cs.umass.edu>
+
+ * MAINTAINERS (Write after approval): Update my email address.
+
+2003-03-03 Andrew Cagney <cagney@redhat.com>
+
+ Make MAX_REGISTER_RAW_SIZE and MAX_REGISTER_VIRTUAL_SIZE optional.
+ * gdbarch.sh (DEPRECATED_MAX_REGISTER_RAW_SIZE): Variable with
+ predicate. Replace MAX_REGISTER_RAW_SIZE.
+ (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Ditto for
+ MAX_REGISTER_VIRTUAL_SIZE.
+ * regcache.c (legacy_max_register_raw_size): New function.
+ (legacy_max_register_virtual_size): New function.
+ * defs.h (MAX_REGISTER_VIRTUAL_SIZE): Define.
+ (MAX_REGISTER_RAW_SIZE): Define.
+ (legacy_max_register_raw_size): Declare.
+ (legacy_max_register_virtual_size): Declare.
+ * config/sparc/tm-sparc.h (DEPRECATED_MAX_REGISTER_RAW_SIZE)
+ (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Update.
+ * config/sparc/tm-sp64.h (DEPRECATED_MAX_REGISTER_RAW_SIZE)
+ (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Ditto.
+ * config/pa/tm-hppa.h (DEPRECATED_MAX_REGISTER_RAW_SIZE)
+ (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE): Ditto.
+ * config/pa/tm-hppa64.h (DEPRECATED_MAX_REGISTER_RAW_SIZE): Ditto.
+ * config/ia64/tm-ia64.h (DEPRECATED_MAX_REGISTER_RAW_SIZE): Ditto.
+ * config/i386/tm-ptx.h (DEPRECATED_MAX_REGISTER_RAW_SIZE): Ditto.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * h8300-tdep.c (h8300_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * cris-tdep.c (cris_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+ * d10v-tdep.c (d10v_gdbarch_init): Do not set
+ max_register_raw_size or max_register_virtual_size.
+
+2003-03-03 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.h (DEPRECATED_SYMBOL_MATCHES_NAME): Rename from
+ SYMBOL_MATCHES_NAME, add comment.
+ (SYMBOL_MATCHES_NATURAL_NAME): New.
+ * minsyms.c (lookup_minimal_symbol_solib_trampoline): Replace
+ SYMBOL_MATCHES_NAME with DEPRECATED_SYMBOL_MATCHES_NAME.
+ (lookup_minimal_symbol, lookup_minimal_symbol_text): Ditto.
+ * symtab.c (lookup_partial_symbol): Use
+ SYMBOL_MATCHES_NATURAL_NAME, not SYMBOL_MATCHES_NAME. Delete
+ unhelpful comment.
+ (lookup_block_symbol): Use SYMBOL_MATCHES_NATURAL_NAME, not
+ SYMBOL_MATCHES_NAME.
+ Fix for PR c++/33.
+
+2003-03-03 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.h (SYMBOL_MATCHES_REGEXP): Delete.
+ * symtab.c (search_symbols): Replace uses of SYMBOL_MATCHES_REGEXP
+ by regexp matching against SYMBOL_NATURAL_NAME.
+
+2003-03-03 David Carlton <carlton@math.stanford.edu>
+
+ * linespec.c (find_method): Extract code into collect_methods.
+ (collect_methods): New.
+
+2003-03-02 Mark Kettenis <kettenis@gnu.org>
+
+ * i386bsd-tdep.c (i386bsd_sigcontext_addr): Use get_next_frame and
+ get_frame_base.
+
+ * i386-tdep.c (i386_pe_skip_trampoline_code): Replace usage of
+ DEPRECATED_SYMBOL_NAME with SYMBOL_LINKAGE_NAME.
+
+2003-03-02 Stephane Carrez <stcarrez@nerim.fr>
+
+ * arch-utils.c (generic_register_byte): Fix to use the loop index
+ and not regnum when summing the size of all registers up to regnum.
+
+2003-03-01 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename
+ FRAME_INIT_SAVED_REGS.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * stack.c (frame_info): Update.
+ * sh-tdep.c (sh_find_callers_reg, sh64_get_saved_pr): Update.
+ (sh_init_extra_frame_info, sh64_init_extra_frame_info): Update.
+ (sh64_get_saved_register, sh_pop_frame, sh64_pop_frame): Update.
+ * ns32k-tdep.c (ns32k_pop_frame): Update.
+ * mips-tdep.c (mips_pop_frame): Update.
+ * m68hc11-tdep.c (m68hc11_pop_frame): Update.
+ * ia64-tdep.c (ia64_frame_chain): Update.
+ (ia64_frame_saved_pc, ia64_get_saved_register): Update.
+ (ia64_frameless_function_invocation): Update.
+ (ia64_init_extra_frame_info): Update.
+ (ia64_pop_frame_regular): Update.
+ * frame.h (struct frame_info): Update comment.
+ (DEPRECATED_FRAME_INIT_SAVED_REGS): Rename macro.
+ * frame.c (frame_saved_regs_register_unwind): Update.
+ (frame_saved_regs_register_unwind): Update.
+ (deprecated_generic_get_saved_register): Update.
+ * cris-tdep.c: Update comment.
+ * config/sparc/tm-sparc.h (DEPRECATED_FRAME_INIT_SAVED_REGS):
+ Rename macro.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
+ * x86-64-tdep.c (x86_64_init_abi): Update.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * v850-tdep.c (v850_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * sh-tdep.c (sh_gdbarch_init): Update.
+ * s390-tdep.c (s390_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ppc-linux-tdep.c (ppc_linux_init_abi): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Update.
+ * mips-tdep.c (mips_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * i386-tdep.c (i386_gdbarch_init): Update.
+ * frv-tdep.c (frv_gdbarch_init): Update.
+ * avr-tdep.c (avr_gdbarch_init): Update.
+ * arm-tdep.c (arm_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+
+2003-03-01 Andrew Cagney <cagney@redhat.com>
+
+ * main.c (captured_main): Add OPT_WINDOWS and OPT_NOWINDOWS to
+ option enum and switch. When no windows, set the interpreter to
+ INTERP_CONSOLE.
+
+2003-03-01 Andrew Cagney <cagney@redhat.com>
+
+ * main.c (captured_main): Replace magic option characters with an
+ enum.
+
+2003-03-01 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename
+ INIT_EXTRA_FRAME_INFO.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * arm-tdep.c: Update comments.
+ * sh-tdep.c, mcore-tdep.c, m68hc11-tdep.c: Ditto.
+ * i386-interix-tdep.c, hppa-tdep.c, h8300-tdep.c: Ditto.
+ * frame.h, avr-tdep.c: Ditto.
+ * frame.c (get_prev_frame): DEPRECATED_INIT_EXTRA_FRAME_INFO.
+ (create_new_frame, legacy_get_prev_frame): Ditto.
+ * config/sparc/tm-sparc.h (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename.
+ * config/pa/tm-hppa.h (DEPRECATED_INIT_EXTRA_FRAME_INFO): Rename.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Initialize
+ deprecated_init_extra_frame_info instead of init_extra_frame_info.
+ * x86-64-tdep.c (x86_64_init_abi): Ditto.
+ * v850-tdep.c (v850_gdbarch_init): Ditto.
+ * sparc-tdep.c (sparc_gdbarch_init): Ditto.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * ppc-linux-tdep.c (ppc_linux_init_abi): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * mips-tdep.c (mips_gdbarch_init): Ditto.
+ * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * i386-interix-tdep.c (i386_interix_init_abi): Ditto.
+ * hppa-tdep.c (hppa_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * avr-tdep.c (avr_gdbarch_init): Ditto.
+ * arm-tdep.c (arm_gdbarch_init): Ditto.
+ * alpha-tdep.c (alpha_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+
+2003-03-01 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (register_type): New function with predicate.
+ (REGISTER_VIRTUAL_TYPE): Change to function with predicate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * arch-utils.c (generic_register_byte): Use generic_register_size.
+ (generic_register_size): When available, use
+ gdbarch_register_type.
+ * regcache.c (init_regcache_descr): When available, initialize the
+ register type array using gdbarch_register_type. If the
+ architecture supplies gdbarch_register_type, do not use the legacy
+ regcache layout.
+ * d10v-tdep.c (d10v_register_type): Replace
+ d10v_register_virtual_type.
+ (d10v_gdbarch_init): Set register_type instead of
+ register_virtual_type.
+
+2003-03-01 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (ax-gdb.o): Update dependencies.
+ * ax-gdb.c: Include "regcache.h".
+ (gen_expr): Use register_type instead of REGISTER_VIRTUAL_TYPE.
+ * findvar.c (value_of_register): Ditto.
+ * infcmd.c (default_print_registers_info): Ditto.
+
+2003-03-01 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-linux-tdep.c (find_minsym_and_objfile): Replace usage of
+ DEPRECATED_SYMBOL_NAME with SYMBOL_LINKAGE_NAME.
+
+2003-03-01 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-linux-tdep.c (find_minsym_and_objfile): Use strcmp instead
+ of STREQ.
+
+2003-02-28 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (dwarf2loc.o): Update dependencies.
+ * ax-gdb.c (gen_var_ref): Handle LOC_COMPUTED and LOC_COMPUTED_ARG.
+ * dwarf2expr.c (read_uleb128, read_sleb128): Make non-static.
+ * dwarf2expr.h (read_uleb128, read_sleb128): Add prototypes.
+ * dwarf2loc.c: Include "ax.h" and "ax-gdb.h".
+ (locexpr_tracepoint_var_ref): New function.
+ (dwarf2_locexpr_funcs): Add locexpr_tracepoint_var_ref.
+
+2003-02-28 Andrew Cagney <cagney@redhat.com>
+
+ * regcache.c (register_size): New function.
+ * regcache.h (register_size): Declare
+ * d10v-tdep.c: Use register_size instead of REGISTER_RAW_SIZE, use
+ max_register_size instead of MAX_REGISTER_RAW_SIZE.
+
+2003-02-28 David Carlton <carlton@math.stanford.edu>
+
+ * linespec.c (decode_compound): Extract code into find_method.
+ (find_method): New.
+
+2003-02-28 J. Brobecker <brobecker@gnat.com>
+
+ * Makefile.in: Add rules to build and link in observer.o.
+
+2003-02-27 J. Brobecker <brobecker@gnat.com>
+
+ * observer.c: Minor comments edits.
+
+2003-02-27 J. Brobecker <brobecker@gnat.com>
+
+ * observer.h, observer.c: New file.
+
+2003-02-27 Andrew Cagney <cagney@redhat.com>
+
+ * arm-tdep.c (gdb_print_insn_arm): Rename _bfd to just bfd.
+
+2003-02-27 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (M6811_OP_LDX_EXT, M6811_OP_STS_EXT): New defines.
+ (M6812_OP_STS_EXT): Likewise.
+ (m6811_prologue): Use the above to recognize prologue.
+ (m6812_prologue): Likewise.
+
+2003-02-27 David Carlton <carlton@math.stanford.edu>
+
+ * symfile.c (compare_symbols): Use SYMBOL_NATURAL_NAME, not
+ SYMBOL_PRINT_NAME.
+ (compare_psymbols): Ditto.
+ * symtab.c (lookup_partial_symbol, lookup_block_symbol): Ditto.
+
+2003-02-27 Michael Snyder <msnyder@redhat.com>
+
+ * f-lang.c (build_fortran_types): New function.
+ (_initialize_f_language): Gdbarch-register built-in fortran types.
+ * doublest.c (extract_floating): Fix warning text.
+
+2003-02-27 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (DEPRECATED_PUSH_DUMMY_FRAME): Procedure with
+ predicate. Replaces PUSH_DUMMY_FRAME.
+ * gdbarch.h, gdbarch.c: Regnerate.
+ * valops.c (hand_function_call): Update. Call
+ generic_push_dummy_frame directly.
+ * vax-tdep.c (vax_gdbarch_init): Update.
+ * sparc-tdep.c (sparc_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * m68k-tdep.c (m68k_gdbarch_init): Update.
+ * hppa-tdep.c (hppa_gdbarch_init): Update.
+ * alpha-tdep.c (alpha_gdbarch_init): Update.
+ * config/sparc/tm-sparc.h (DEPRECATED_PUSH_DUMMY_FRAME): Update.
+ * config/pa/tm-hppa.h (DEPRECATED_PUSH_DUMMY_FRAME): Update.
+ * inferior.h (PUSH_DUMMY_FRAME): Delete definition.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Don't set
+ push_dummy_frame to generic_push_dummy_frame.
+ * v850-tdep.c (v850_gdbarch_init): Ditto.
+ * sh-tdep.c (sh_gdbarch_init): Ditto.
+ * s390-tdep.c (s390_gdbarch_init): Ditto.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Ditto.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Ditto.
+ * mips-tdep.c (mips_gdbarch_init): Ditto.
+ * mcore-tdep.c (mcore_gdbarch_init): Ditto.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto.
+ * ia64-tdep.c (ia64_gdbarch_init): Ditto.
+ * i386-tdep.c (i386_gdbarch_init): Ditto.
+ * h8300-tdep.c (h8300_gdbarch_init): Ditto.
+ * frv-tdep.c (frv_gdbarch_init): Ditto.
+ * d10v-tdep.c (d10v_gdbarch_init): Ditto.
+ * cris-tdep.c (cris_gdbarch_init): Ditto.
+ * avr-tdep.c (avr_gdbarch_init): Ditto.
+ * arm-tdep.c (arm_gdbarch_init): Ditto.
+
+2003-02-26 Kevin Buettner <kevinb@redhat.com>
+
+ * mips-tdep.c (show_mips_abi): New function.
+ (_initialize_mips_tdep): Use show_mips_abi() to implement the
+ command ``show mips abi''.
+
+2003-02-26 Jeff Johnston <jjohnstn@redhat.com>
+
+ 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.
+
+2003-02-26 Michael Chastain <mec@shout.net>
+
+ * configure: Regenerate with autoconf 000227.
+
+2003-02-26 Michael Chastain <mec@shout.net>
+
+ Close PR build/660.
+ * PROBLEMS (i[3456]86-*-linux*): Note explicit error message
+ for old libc5/glibc.
+ * gdb_thread_db.h: Die if not HAVE_UINTPTR_T.
+
+2003-02-26 Kris Warkentin <kewarken@qnx.com>
+
+ * defs.h (gdb_osabi): Add GDB_OSABI_QNXNTO.
+ * osabi.c (gdb_osabi_names): Add "QNX Neutrino".
+
+2003-02-26 Michael Chastain <mec@shout.net>
+
+ * configure.in: New variable HAVE_UINTPTR_T.
+ * configure, config.in: Regenerated.
+
+2003-02-26 Daniel Jacobowitz <drow@mvista.com>
+
+ Fix PR build/1097.
+ * utils.c (gdb_realpath): Move closing brace outwards one #endif.
+
+2003-02-25 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (get_prev_frame): Add comment on check for
+ inside_entry_func. Only check for inside_entry_file when not a
+ dummy and not a sentinel. Check that the new frame is not inner
+ to the old frame.
+
+2003-02-25 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (frame_debug): New variable.
+ (_initialize_frame): Add "set/show debug frame" command.
+ (get_prev_frame): When frame_debug, print reason why unwind
+ failed.
+
+2003-02-25 Michael Chastain <mec@shout.net>
+
+ * PROBLEMS (i[3456]86-*-linux*): Require glibc 2.1.3 or later
+ to avoid uintptr_t definition problems.
+
+2003-02-25 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.h (SYMBOL_NATURAL_NAME): New macro.
+ (SYMBOL_LINKAGE_NAME): Ditto.
+ (SYMBOL_PRINT_NAME): Use SYMBOL_NATURAL_NAME and
+ SYMBOL_LINKAGE_NAME.
+ (struct general_symbol_info): Expand comment.
+ (DEPRECATED_SYMBOL_NAME): Rename from SYMBOL_NAME.
+ (SYMBOL_MATCHES_NAME): Use DEPRECATED_SYMBOL_NAME.
+ (SYMBOL_MATCHES_REGEXP): Ditto.
+ * symtab.c (symbol_natural_name): New function.
+ * objfiles.h: Replace all uses of SYMBOL_NAME by
+ DEPRECATED_SYMBOL_NAME.
+ * xcoffread.c, valops.c, typeprint.c, tracepoint.c: Ditto.
+ * symtab.c, symmisc.c, symfile.c, stack.c, stabsread.c: Ditto.
+ * somsolib.c, sol-thread.c, rs6000-tdep.c, p-valprint.c: Ditto.
+ * printcmd.c, objfiles.c, objc-lang.c, mipsread.c: Ditto.
+ * minsyms.c, mdebugread.c, linespec.c, jv-lang.c: Ditto.
+ * i386-tdep.c, i386-linux-tdep.c, hpread.c, hppa-tdep.c: Ditto.
+ * gnu-v2-abi.c, f-valprint.c, findvar.c, expprint.c: Ditto.
+ * dwarfread.c, dwarf2read.c, dbxread.c, c-valprint.c: Ditto.
+ * cp-valprint.c, coffread.c, buildsym.c, breakpoint.c: Ditto.
+ * blockframe.c, ax-gdb.c, arm-linux-tdep.c, ada-lang.c: Ditto.
+ * ada-exp.y: Ditto.
+ * ada-exp.y: Update copyright.
+ * sol-thread.c, mipsread.c, jv-lang.c, f-valprint.c: Ditto.
+ * cp-valprint.c: Ditto.
+
+2003-02-25 Jeff Johnston <jjohnstn@redhat.com>
+
+ * infptrace.c (detach): Do not flag error if ptrace detach fails
+ and errno is set to ESRCH.
+
+2003-02-24 Andrew Cagney <cagney@redhat.com>
+
+ * infptrace.c (udot_info): Change type of udot_off to long. Use
+ paddr when printing udot_off's value.
+
+2003-02-24 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.c (make_symbol_overload_list): Only read in partial
+ symtabs containing a matching partial symbol.
+
+2003-02-24 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.c (lookup_partial_symbol): Use strcmp_iw_ordered to
+ do the comparison, not strcmp.
+ * symfile.c (compare_psymbols): Ditto.
+ * defs.h: Declare strcmp_iw_ordered.
+ * utils.c (strcmp_iw_ordered): New function.
+
+2003-02-24 Jim Blandy <jimb@redhat.com>
+
+ * MAINTAINERS (GNU/Linux/x86, linespec, breakpoints, Scheme
+ support, shared libs): Remove my name from here, to better reflect
+ reality.
+
+2003-02-24 Kris Warkentin <kewarken@qnx.com>
+
+ * target.h: (HAVE_CONTINUABLE_WATCHPOINT): Define.
+ (target_ops): Add to_have_continuable_watchpoint.
+ * target.c (update_current_target): Add INHERIT line for
+ to_have_continuable_watchpoint.
+ * infrun.c: Remove HAVE_CONTINUABLE_WATCHPOINT defines.
+ * config/i386/nm-i386.h, config/i386/nm-i386sco5.h,
+ config/i386/nm-i386sol2.h, config/s390/nm-linux.h,
+ config/sparc/nm-sun4sol2.h: HAVE_CONTINUABLE_WATCHPOINT defined as 1.
+
+2003-02-24 Elena Zannoni <ezannoni@redhat.com>
+
+ * MAINTAINERS (Core): Drop main.c and top.c. Clarify event loop
+ maintainership.
+
+2003-02-24 Kris Warkentin <kewarken@qnx.com>
+
+ * solib.c (solib_open): Call target defined search function after
+ failing with solib-search-path.
+ * solist.h (target_so_ops): Add find_and_open_solib function hook and
+ create define TARGET_SO_FIND_AND_OPEN_SOLIB.
+
+2003-02-24 Kris Warkentin <kewarken@qnx.com>
+
+ * MAINTAINERS: Add myself to Write After section.
+
+2003-02-23 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): long double is 64-bit wide.
+
+2003-02-22 Stephane Carrez <stcarrez@nerim.fr>
+
+ * m68hc11-tdep.c (m68hc11_init_reggroups): New function.
+ (m68hc11_add_reggroups): New function.
+ (m68hc11_register_reggroup_p): New to register hard/soft reggroups.
+ (m68hc11_gdbarch_init): Install the reggroups.
+ (_initialize_m68hc11_tdep): Initialize them.
+
+2003-02-21 James E Wilson <wilson@tuliptree.org>
+
+ * MAINTAINERS: Update my email address.
+
+2003-02-21 David Carlton <carlton@math.stanford.edu>
+
+ * arm-tdep.c (arm_gdbarch_init): Add break after default label.
+
+2003-02-21 Daniel Jacobowitz <drow@mvista.com>
+
+ Based on a patch from Daniel Berlin (dberlin@dberlin.org).
+ * symtab.h: Add opaque declarations of struct axs_value and
+ struct agent_expr.
+ (enum address_class): Add LOC_COMPUTED and LOC_COMPUTED_ARG.
+ (struct location_funcs): New type.
+ (struct symbol): Add "loc" to aux_value.
+ (SYMBOL_LOCATION_BATON, SYMBOL_LOCATION_FUNCS): New macros.
+ * dwarf2read.c: Include "dwarf2expr.h".
+ (dwarf2_symbol_mark_computed): New function.
+ (read_func_scope): Use it.
+ (var_decode_location): New function.
+ (new_symbol): Use it.
+ * dwarf2expr.c, dwarf2expr.h, dwarf2loc.c, dwarf2loc.h: New files.
+
+ * Makefile.in (SFILES): Add dwarf2loc.c and dwarf2expr.c.
+ (dwarf2expr_h, dwarf2loc_h): New variables.
+ (COMMON_OBS): Add dwarf2expr.o and dwarf2loc.o.
+ (dwarf2expr.o, dwarf2loc.o): New rules.
+ (dwarf2read.o): Add $(dwarf2expr_h) and $(dwarf2loc_h).
+ * buildsym.c (finish_block): Handle LOC_COMPUTED and
+ LOC_COMPUTED_ARG.
+ * findvar.c (symbol_read_needs_frame, read_var_value): Likewise.
+ * m2-exp.y (yylex): Likewise.
+ * printcmd.c (address_info, print_frame_args): Likewise.
+ * stack.c (print_block_frame_locals, print_frame_arg_vars): Likewise.
+ * symmisc.c (print_symbol, print_partial_symbols): Likewise.
+ * ada-lang.c (ada_resolve_subexp, symtab_for_sym)
+ (ada_add_block_symbols, fill_in_ada_prototype): Likewise.
+ * symtab.c (lookup_block_symbol): Likewise.
+
+2003-02-20 Adam Fedor <fedor@gnu.org>
+
+ * symtab.h: Remove objc_specific struct
+ (SYMBOL_OBJC_DEMANGLED_NAME): Remove.
+ * symtab.c (symbol_init_language_specific, symbol_demangled_name):
+ Have language_objc use cplus_specific struct.
+
+2003-02-20 Tom Tromey <tromey@redhat.com>
+
+ * jv-valprint.c (java_value_print): Look at TYPE_TAG_NAME, not
+ TYPE_NAME, when printing a String value. PR java/1075.
+
+2003-02-20 Adam Fedor <fedor@gnu.org>
+
+ * objc-lang.h (find_methods): Remove declaration.
+ * objc-lang.c (find_methods): Make static.
+
+2003-02-20 Christopher Faylor <cgf@redhat.com>
+
+ * win32-nat.c (get_image_name): Check return value from
+ ReadProcessMemory.
+ (child_xfer_memory): Ditto.
+
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (TARGET_SYSTEM_ROOT): Set default to
+ ${exec_prefix}/${target_alias}/sys-root. Match explicit
+ '${exec_prefix}' (in addition to the expansion thereof) as
+ relocatable.
+ * configure: Rebuilt.
+
+2003-02-20 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.c (search_symbols): Revert the search_symbols part of my
+ 2002-12-23 patch. Add comment.
+
+2002-02-20 Daniel Jacobowitz <drow@mvista.com>
+
+ * coffread.c (coff_symfile_read): Clean up minimal symbols earlier.
+ * dbxread.c (elfstab_build_psymtabs): Don't call
+ install_minimal_symbols.
+ (stabsect_build_psymtabs): Likewise.
+ * elfread.c (elf_symfile_read): Call install_minimal_symbols
+ earlier.
+ * somread.c (som_symfile_read): Call install_minimal_symbols
+ and do_cleanups earlier.
+ * nlmread.c (nlm_symfile_read): Likewise.
+ * mdebugread.c (elfmdebug_build_psymtabs): Call
+ install_minimal_symbols and make appropriate cleanups.
+
+2003-02-20 Kevin Buettner <kevinb@redhat.com>
+
+ * solib.c (reload_shared_libraries): New function.
+ (_initialize_solib): Add callbacks for ``set solib-search-path''
+ and ``set solib-absolute-prefix''.
+
+2003-02-20 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.h (SYMBOL_PRINT_NAME): Rename from SYMBOL_SOURCE_NAME;
+ expand comment.
+ * ada-lang.c (user_select_syms, ada_finish_decode_line_1): Replace
+ SYMBOL_PRINT_NAME with SYMBOL_SOURCE_NAME.
+ * ada-typeprint.c (ada_typedef_print): Ditto.
+ * ax-gdb.c (gen_var_ref): Ditto.
+ * breakpoint.c (print_one_breakpoint): Ditto.
+ * buildsym.c (finish_block): Ditto.
+ * c-valprint.c (c_val_print): Ditto.
+ * expprint.c (print_subexp): Ditto.
+ * findvar.c (locate_var_value): Ditto.
+ * infcmd.c (jump_command): Ditto.
+ * linespec.c (decode_line_2, decode_compound): Ditto.
+ * maint.c (maintenance_translate_address): Ditto.
+ * objc-lang.c (compare_selectors, compare_classes): Ditto.
+ * printcmd.c (build_address_symbolic, sym_info, print_frame_args):
+ Ditto.
+ * p-valprint.c (pascal_val_print): Ditto.
+ * stabsread.c (define_symbol): Ditto.
+ * stack.c (print_frame, frame_info, print_block_frame_locals)
+ (print_frame_arg_vars, return_command): Ditto.
+ * symfile.c (compare_symbols, compare_psymbols): Ditto.
+ * symmisc.c (print_symbol): Ditto.
+ * symtab.c (lookup_partial_symbol, lookup_block_symbol)
+ (compare_search_syms, print_symbol_info, print_msymbol_info)
+ (rbreak_command): Ditto.
+ * tracepoint.c (tracepoints_info): Ditto.
+ * typeprint.c (typedef_print): Ditto.
+ * valops.c (value_of_variable, hand_function_call): Ditto.
+ * cli/cli-cmds.c (edit_command, list_command): Ditto.
+ * ada-typeprint.c: Update Copyright.
+ * infcmd.c, objc-lang.c, p-valprint.c, symmisc.c: Ditto.
+ * tracepoint.c, cli/cli-cmds.c: Ditto.
+
+2003-02-20 Kevin Buettner <kevinb@redhat.com>
+
+ * frame.c (generic_unwind_get_saved_register): Make non-static.
+ * frame.h (generic_unwind_get_saved_register): Declare.
+ * mips-tdep.c (read_next_frame_reg): Fetch register from
+ current regcache when frame is NULL.
+ (mips_init_extra_frame_info): Pass NULL explicitly for parameter
+ that must be NULL.
+ (mips_get_saved_register): Call generic_unwind_get_saved_register()
+ instead of frame_register_unwind().
+
+2003-02-20 Andrew Cagney <ac131313@redhat.com>
+
+ * remote-sim.c (gdbsim_insert_breakpoint)
+ (gdbsim_remove_breakpoint): Delete #ifdef SIM_HAS_BREAKPOINTS
+ code.
+
+2003-02-20 Andrew Cagney <ac131313@redhat.com>
+
+ * remote.c (_initialize_remote): Add commands "set/show remote
+ hardware-watchpoint-limit" and "set/show remote
+ hardware-breakpoint-limit".
+ (remote_hw_watchpoint_limit): Initialize to -1.
+ (remote_hw_breakpoint_limit): Ditto.
+ (remote_check_watch_resources): Treat a limit of -1 as unlimited.
+
+2003-02-19 Raoul Gough <RaoulGough@yahoo.co.uk>
+
+ * coff-pe-read.c: New file - support reading of minimal symbols from a
+ portable executable using the export table.
+ * coff-pe-read.h: New file.
+ * coffread.c: Include coff-pe-read.h.
+ (coff_symtab_read): Call read_pe_exported_syms iff no recognized
+ debugging symbols found.
+ * Makefile.in (SFILES): Add coff-pe-read.o.
+ (coff_pe_read_h): Define.
+ (COMMON_OBS): Add coff-pe-read.o.
+ (coffread.o): Add coff_pe_read_h dependency.
+ (coff-pe-read.o): New target.
+
+2003-02-19 David Carlton <carlton@math.stanford.edu>
+
+ * Makefile.in (SFILES): Add block.c.
+ (block_h): New.
+ (COMMON_OBS): Add block.o.
+ (block.o): New.
+ (x86-64-tdep.o): Add $(block_h).
+ (values.o, valops.o, tracepoint.o, symtab.o, symmisc.o, symfile.o)
+ (stack.o, printcmd.o, p-exp.tab.o, parse.o, objfiles.o)
+ (objc-exp.tab.o, objc-lang.o, nlmread.o, mips-tdep.o, mdebugread.o)
+ (m2-exp.tab.o, linespec.o, jv-lang.o, jv-exp.tab.o, infcmd.o)
+ (f-valprint.o, findvar.o, f-exp.tab.o, expprint.o, coffread.o)
+ (c-exp.tab.o, buildsym.o, breakpoint.o, blockframe.o, ax-gdb.o)
+ (alpha-tdep.o, ada-lang.o, ada-exp.tab.o, mi-cmd-stack.o): Ditto.
+ * value.h: Add opaque declaration for struct block.
+ * parser-defs.h, objc-lang.h, buildsym.h, breakpoint.h: Ditto.
+ * ada-lang.h: Ditto.
+ * x86-64-tdep.c: #include "block.h"
+ * values.c, valops.c, tracepoint.c, symtab.c, symmisc.c: Ditto.
+ * symfile.c, stack.c, printcmd.c, p-exp.y, parse.c: Ditto.
+ * objfiles.c, objc-exp.y, objc-lang.c, nlmread.c: Ditto.
+ * mips-tdep.c, mdebugread.c, m2-exp.y, linespec.c: Ditto.
+ * jv-lang.c, jv-exp.y, infcmd.c, f-valprint.c: Ditto.
+ * findvar.c, f-exp.y, expprint.c, coffread.c, c-exp.y: Ditto.
+ * buildsym.c, breakpoint.c, blockframe.c, ax-gdb.c: Ditto.
+ * alpha-tdep.c, ada-lang.c, ada-exp.y: Ditto.
+ * blockframe.c (blockvector_for_pc_sect): Move to "block.c".
+ (blockvector_for_pc, block_for_pc_sect, block_for_pc): Ditto.
+ * symtab.c (block_function): Ditto.
+ (contained_in): Ditto.
+ * frame.h: Move block_for_pc and block_for_pc_sect declarations to
+ block.h. Add opaque declaration for struct block.
+ * symtab.h: Move block_function and contained_in declarations to
+ block.h. Add opaque declarations for struct block, struct
+ blockvector.
+ (struct block): Move to block.h.
+ (struct blockvector): Ditto.
+ (BLOCK_START, BLOCK_END, BLOCK_FUNCTION, BLOCK_SUPERBLOCK)
+ (BLOCK_GCC_COMPILED, BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM)
+ (BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE)
+ (ALL_BLOCK_SYMBOLS, BLOCK_SHOULD_SORT, BLOCKVECTOR_NBLOCKS)
+ (BLOCKVECTOR_BLOCK, GLOBAL_BLOCK, STATIC_BLOCK, FIRST_LOCAL_BLOCK):
+ Ditto.
+ * block.c: New file.
+ * block.h: New file.
+
+2003-02-19 Theodore A. Roth <troth@openavr.org>
+
+ * avr-tdep.c (avr_extract_return_value): Remove function.
+ (avr_store_return_value): Remove function.
+ (avr_extract_struct_value_address): Remove function.
+ (avr_gdbarch_init): Remove set_gdbarch_deprecated_*() calls.
+
+2003-02-19 Andrew Cagney <ac131313@redhat.com>
+
+ * rs6000-tdep.c: Include "gdb_assert.h".
+ (registers_e500): Add "acc" and "spefscr".
+ (PPC_GPRS_PSEUDO_REGS): Remove trailing comma.
+ (rs6000_gdbarch_init): Update initialization of ppc_gp0_regnum,
+ ppc_gplast_regnum, sp_regnum and fp_regnum. Check that gp0_regnum
+ really is "r0".
+ (registers_e500): Mark the "acc" as a 64 bit (from Jim Willson).
+
+2003-02-18 Keith Seitz <keiths@redhat.com>
+
+ * Makefile.in: Add gdbtk-interps.c.
+
+2003-02-18 Kevin Buettner <kevinb@redhat.com>
+
+ * sparc-tdep.c (sparc_frame_chain): Adjust return value.
+ * config/sparc/tm-sparc.h (init_frame_pc_noop): Declare.
+
+2003-02-18 Andrew Cagney <cagney@redhat.com>
+
+ * symtab.h (struct objfile): Add opaque declaration.
+
+2003-02-18 Elena Zannoni <ezannoni@redhat.com>
+
+ 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.
+
+2003-02-17 Andrew Cagney <cagney@redhat.com>
+
+ * configure.in: Revert ${target} != ${host}.
+
+2003-02-17 Andrew Cagney <ac131313@redhat.com>
+
+ * configure.in (Makefile): Use the test ${target} != ${host},
+ instead of the absence of the "nm.h" file, to determine of the
+ configuration non-native.
+ * configure: Regenerate.
+
+2003-02-14 Elena Zannoni <ezannoni@redhat.com>
+
+ From Brian Ford <ford@vss.fsi.com>
+
+ * cli/cli-decode.c (lookup_cmd_composition) [TUI]: Properly
+ conditionalize tui_active test.
+ (lookup_cmd_1): Ditto.
+
+2003-02-14 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Add check for _etext.
+ * maint.c (maintenance_set_profile_cmd): Use etext if _etext isn't
+ available.
+ * config.in, configure: regenerated.
+
+2003-02-14 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2read.c (dwarf2_get_pc_bounds): Offset addresses by base.
+
+2003-02-14 Andrew Cagney <ac131313@redhat.com>
+
+ * main.c (tui_version): Delete variable.
+ (captured_main): When --tui, set interpreter_p to "tui" instead of
+ enabling tui_version.
+ * printcmd.c (display_command) [TUI]: Test tui_active instead of
+ tui_version.
+ * cli/cli-decode.c (lookup_cmd_composition): Ditto.
+ * cli/cli-cmds.c (disassemble_command): Ditto.
+ * defs.h (tui_version): Delete declaration.
+ * Makefile.in (SUBDIR_TUI_SRCS): Add "tui/tui-interp.c".
+ (tui-interp.o): Add rules.
+ (SUBDIR_TUI_OBS): Add "tui-interp.o".
+
+2003-02-14 Christopher Faylor <cgf@redhat.com>
+
+ * win32-nat.c (register_loaded_dll): Correctly set address range for
+ just-loaded dll.
+
+2003-02-12 Jason Molenda (jmolenda@apple.com)
+
+ * symmisc.c (print_objfile_statistics): Include information about
+ the number of psymtabs and symtabs in each object file.
+
+2003-02-13 Keith R Seitz <keiths@redhat.com>
+
+ * main.h (struct captured_main_args): Add interpreter_p.
+ * main.c (captured_main): Initialize interpreter_p from context.
+ * gdb.c (main): Set interpreter_p argument.
+ * Makefile.in (gdb.o): Add dependency for interps.h.
+
+2003-02-12 Andrew Cagney <ac131313@redhat.com>
+
+ * event-top.c (cli_command_loop): Delete declaration.
+ (_initialize_event_loop): Delete function setting event_loop_hook.
+ * event-top.h (cli_command_loop): Declare. Update copyright.
+ (EVENT_TOP_H): Define. Wrap header in #ifdef EVENT_TOP_H.
+ * interps.c (current_interp_command_loop): When event_loop_p, call
+ cli_command_loop.
+
+2003-02-12 Andrew Cagney <ac131313@redhat.com>
+
+ * interps.h (interp_command_loop_ftype): Change return type to
+ void.
+
+2003-02-12 Michal Ludvig <mludvig@suse.cz>
+
+ * x86-64-tdep.c (x86_64_extract_return_value)
+ (x86_64_store_return_value): Use regcache instead of regbuf.
+ (x86_64_gdbarch_init): Change related set_gdbarch_* functions.
+ * x86-64-linux-nat.c (fill_gregset): Use regcache.
+
+2003-02-11 Andrew Cagney <ac131313@redhat.com>
+
+ * acinclude.m4 (no_tcl): SUBST TCL_CC_SEARCH_FLAGS.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+ * Makefile.in (TCL): Use TCL_CC_SEARCH_FLAGS instead of
+ TCL_LD_SEARCH_FLAGS.
+
+2003-02-10 Michal Ludvig <mludvig@suse.cz>
+
+ * dwarf2cfi.c: Reindented.
+
+2003-02-09 Andrew Cagney <ac131313@redhat.com>
+
+ * interps.c (clear_interpreter_hooks): Convert function definition
+ to ISO C.
+
+2003-02-07 David Carlton <carlton@math.stanford.edu>
+
+ * gdb_mbuild.sh: Delete extra shift after parsing '-f'.
+
+2003-02-07 Kevin Buettner <kevinb@redhat.com>
+
+ * gdbtypes.h (struct main_type): Move ``length'' field from here...
+ (struct type): ...to here.
+ (TYPE_LENGTH): Adjust to reflect different location of ``length''
+ field.
+ * gdbtypes.c (make_qualified_type): Set length on newly created type.
+ (replace_type): Set length on all type variants for a given type.
+
+2003-02-07 Andrew Cagney <ac131313@redhat.com>
+
+ * sol-thread.c, hpux-thread.c: Include "gdb_stat.h" instead of
+ <sys/stat.h>.
+ * Makefile.in (sol-thread.o, hpux-thread.o): Update dependencies.
+
+2003-02-06 Andrew Cagney <ac131313@redhat.com>
+
+ * Makefile.in (symm-nat.o): Update dependencies.
+ (sparc-nat.o, procfs.o, proc-api.o, ppc-linux-nat.o): Ditto.
+ (lynx-nat.o, ia64-linux-nat.): Ditto.
+ * symm-nat.c, sparc-nat.c, procfs.c, proc-api.c: Include
+ "gdb_wait.h" instead of <wait.h> or <sys/wait.h>.
+ * ppc-linux-nat.c, lynx-nat.c, ia64-linux-nat.c: Ditto.
+
+ * Makefile.in (inflow_h): Define.
+ (procfs.o, inflow.o, procfs.o): Update dependencies.
+ * inftarg.c (child_stop): Delete extern declaration of
+ inferior_process_group. Include "inflow.h".
+ * procfs.c (procfs_stop): Ditto. Include "inflow.h".
+ * inflow.c (PROCESS_GROUP_TYPE): Move definitions from here ...
+ * inflow.h (PROCESS_GROUP_TYPE): ... to here. New file.
+ (our_process_group, inferior_process_group): Extern declarations.
+
+ * procfs.c: Include "gdb_assert.h".
+
+ * linux-proc.c: Include "gdb_stat.h" instead of <sys/stat.h>.
+ * cp-valprint.c (cp_print_value_fields): Eliminate STREQN.
+ * jv-typeprint.c (java_type_print_base): Ditto.
+ * typeprint.c (typedef_print): Eliminate STREQ.
+ * cli/cli-script.c (define_command, define_command): Ditto.
+ * main.c (captured_main): Ditto.
+ * values.c (lookup_internalvar): Ditto.
+ * utils.c (safe_strerror, parse_escape): Eliminate assignment
+ within `if' conditional.
+ * linespec.c (decode_line_2): Ditto.
+ * cli/cli-dump.c (bfd_openr_with_cleanup): Ditto.
+ (bfd_openw_with_cleanup): Ditto.
+
+2003-02-07 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (x86_64_init_abi): Set extract_return_value to
+ legacy_extract_return_value and store_return_value to
+ legacy_return_value.
+
+2003-02-06 Raoul Gough <RaoulGough@yahoo.co.uk>
+
+ * win32-nat.c (get_relocated_section_addrs): New function. Find
+ section load addresses for symbol handling in relocated DLLs.
+ (solib_symbols_add): Open a bfd and call get_relocated_section_addrs.
+
+2003-02-05 Fred Fish <fnf@intrinsity.com>
+
+ * remote-e7000.c (e7000_drain_command): Fix precedence problem with
+ '=' and '!='.
+ * rdi-share/ardi.c (wait_for_debug_message): Fix precedence problem
+ with '&' and '=='.
+ (angel_RDI_info): Ditto.
+ * infttrace.c (threads_continue_all_but_one): Fix precedence problem
+ with '&' and '!='.
+ (threads_continue_all_with_signals): Ditto.
+
+2003-02-05 Jim Ingham <jingham@apple.com>
+ Keith Seitz <keiths@redhat.com>
+ Elena Zannoni <ezannoni@redhat.com>
+ Andrew Cagney <ac131313@redhat.com>
+
+ * Makefile.in (SUBDIR_CLI_OBS): Add "cli-interp.o".
+ (SUBDIR_CLI_SRCS): Add "cli/cli-interp.c".
+ (SUBDIR_MI_OBS): Add "mi-interp.o".
+ (SUBDIR_MI_SRCS): Add "mi/mi-interp.c".
+ (SFILES): Add "interps.c".
+ (COMMON_OBS): Add "interps.o".
+ (interps_h, mi_main_h): Define.
+ (interps.o, cli-interp.o, mi-interp.o): Add dependencies.
+ (mi-main.o, main.o, event-top.o): Update dependencies.
+ * cli/cli-interp.c: New file.
+ * interps.h, interps.c: New files.
+ * top.c: (gdb_init): Don't install the default interpreter, handed
+ by captured_main.
+ * main.c: Include "interps.h".
+ (interpreter_p): Note that it should malloc'ed.
+ (captured_command_loop): Call current_interp_command_loop.
+ (captured_main): Initialize interpreter_p to INTERP_CONSOLE. Use
+ xfree and xstrdup when updating interpreter_p. Install the
+ default interpreter. Add hack to stop mi1's copyright notice
+ being encoded.
+ * event-top.h (gdb_setup_readline): Declare.
+ (gdb_disable_readline): Declare.
+ * event-top.c: Include "interps.h".
+ (display_gdb_prompt): Call current_interp_display_prompt_p.
+ (gdb_setup_readline): Initialize gdb_stdout, gdb_stderr,
+ gdb_stdlog, and gdb_stdtarg.
+ (_initialize_event_loop): Don't call gdb_setup_readline.
+ * cli-out.c (cli_out_set_stream): New function.
+ * cli-out.h (cli_out_set_stream): Declare.
+
+2003-02-06 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.tgt (i[3456]86-*-sysv4.2*, i[3456]86-*-sysv4*,
+ i[3456]86-*-sysv5*, i[3456]86-*-sco3.2v5*): Remove. These are all
+ handled fine by i[3456]86-*sco* and i[3456]86-sysv*.
+ * config/i386/i386sco5.mt, config/i386/i386v4.mt,
+ config/i386/i386v42mp.mt: Removed.
+
+2003-02-05 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.tgt (*-*-solaris*): Set gdb_osabi to
+ GDB_OSABI_SOLARIS.
+
+2003-02-05 Michael Chastain <mec@shout.net>
+
+ * PROBLEMS (i[3456]86-*-linux*): Warn about binutils
+ 2.12.1 and earlier versions.
+
+2003-02-05 Andrew Cagney <ac131313@redhat.com>
+
+ Remove orphaned hosts, targets and files.
+ * config/i386/gdbserve.mt, config/m68k/nm-apollo68b.h: Delete.
+ * config/m68k/nm-hp300bsd.h, config/m68k/tm-apollo68b.h: Delete.
+ * config/m68k/tm-es1800.h, config/m68k/tm-hp300bsd.h: Delete.
+ * config/m68k/tm-mac.h, config/m68k/xm-apollo68b.h: Delete.
+ * config/pa/hpux1020.mt, config/pa/hpux11.mt: Delete.
+ * config/pa/hpux11w.mt, config/powerpc/gdbserve.mt: Delete.
+ * config/powerpc/ppcle-eabi.mt, config/powerpc/ppcle-sim.mt: Delete.
+ * config/powerpc/tm-ppc-sim.h, config/sparc/sp64sim.mt: Delete.
+ * config/sparc/tm-sp64sim.h: Delete.
+ * configure.host: Delete strongarm-*-*, xscale-*-*, and arm*-*-*
+ hosts.
+ * configure.tgt: Delete i[3456]86-*-sco3.2v4*, and
+ mips*-dec-mach3* targets.
+
+2003-02-04 Michael Chastain <mec@shout.net>
+
+ * NEWS: Fix typo: sepcifying -> specifying.
+
+2003-02-04 Michael Chastain <mec@shout.net>
+
+ * dwarfread.c: Add documentation on the state of dwarf-1,
+ looking towards obsoletion.
+
+2003-02-03 Michael Chastain <mec@shout.net>
+
+ * config/djgpp/fnchange.lst: Add gdb/testsuite/gdb.c++/pr-1023.cc,
+ gdb/testsuite/gdb.c++/pr-1023.exp.
+
+2003-02-04 Andrew Cagney <ac131313@redhat.com>
+
+ * values.c: Delete code conditional on IS_TRAPPED_INTERNALVAR.
+ * TODO: Delete reference to IS_TRAPPED_INTERNALVAR.
+
+ * utils.c (init_page_info): Delete reference to MPW in comments.
+ * main.c (captured_main): Delete #ifdef MPW.
+
+2003-02-04 Andrew Cagney <ac131313@redhat.com>
+
+ * NEWS: Note that the m32r-*-elf* is obsolete.
+ * monitor.c (monitor_expect): Obsolete reference to m32r.
+ * configure.tgt: Mark m32r-*-elf* as obsolete.
+ * MAINTAINERS: Mark m32k as obsolete.
+ * m32r-rom.c: Obsolete file.
+ * config/m32r/m32r.mt: Obsolete file.
+ * config/m32r/tm-m32r.h: Obsolete file.
+ * m32r-stub.c: Obsolete file.
+ * m32r-tdep.c: Obsolete file.
+
+2003-02-04 Andrew Cagney <ac131313@redhat.com>
+
+ * NEWS: Mention that the z8k-zilog-none is obsolete.
+ * MAINTAINERS: Mark z8k as obsolete.
+ * configure.tgt: Obsolete the z8k-*-coff* target.
+ * config/z8k/z8k.mt: Obsolete file.
+ * config/z8k/tm-z8k.h: Obsolete file.
+ * z8k-tdep.c: Obsolete file.
+
+2003-02-04 Andrew Cagney <ac131313@redhat.com>
+
+ * NEWS: Mention that the mn10200-elf is obsolete.
+ * configure.tgt: Obsolete mn10200-*-* target.
+ * breakpoint.c (update_breakpoints_after_exec): Update comment to
+ mention that the mn10200 is obsolete.
+ * breakpoint.h: Ditto.
+ * MAINTAINERS: Mark the mn10200-elf as obsolete.
+ * config/mn10200/mn10200.mt: Obsolete file.
+ * config/mn10200/tm-mn10200.h: Obsolete file.
+ * mn10200-tdep.c: Obsolete file.
+
+2003-02-04 Andrew Cagney <ac131313@redhat.com>
+
+ * MAINTAINERS: Mark h8500 as obsolete.
+ * configure.tgt (h8500-*-*): Mark h8500 code as obsolete.
+ * findvar.c (value_from_register): Ditto.
+ * h8500-tdep.c: Mark file as obsolete.
+ * config/h8500/h8500.mt: Ditto.
+ * config/h8500/tm-h8500.h: Ditto.
+ * NEWS: Mention that h8500 is obsolete.
+
+2003-02-04 David Carlton <carlton@math.stanford.edu>
+
+ * objfiles.c (allocate_objfile): Always set name. Add comment at
+ start of function.
+ * jv-lang.c (get_dynamics_objfile): Add comment.
+
+2003-02-04 David Carlton <carlton@math.stanford.edu>
+
+ * symtab.h (SYMBOL_LINKAGE_NAME): Delete.
+ * printcmd.c (build_address_symbolic): Replace uses of
+ SYMBOL_LINKAGE_NAME by equivalent uses of SYMBOL_SOURCE_NAME,
+ SYMBOL_NAME, and asm_demangle.
+ Update copyright.
+
+2003-02-04 David Carlton <carlton@math.stanford.edu>
+
+ * linespec.c (decode_compound): Extract code into
+ lookup_prefix_sym.
+ (lookup_prefix_sym): New function.
+
+2003-02-04 David Carlton <carlton@math.stanford.edu>
+
+ * gdbtypes.h: Delete INTEGER_COERCION_BADNESS,
+ FLOAT_COERCION_BADNESS.
+ * gdbtypes.c (rank_one_type): Replace all uses of
+ INTEGER_COERCION_BADNESS by INTEGER_CONVERSION_BADNESS.
+
+2003-02-04 Jim Blandy <jimb@redhat.com>
+
+ * dwarf2read.c (dwarf2_locate_sections): When we find a macro info
+ section, let dwarf_macinfo_section point to it, not
+ dwarf_loc_section.
+
+2003-02-04 Daniel Jacobowitz <drow@mvista.com>
+
+ Pointed out by Anton Blanchard <anton@samba.org>.
+ * ppc-linux-tdep.c (insn_is_sigreturn): New function.
+ (ppc_linux_at_sigtramp_return_path): Use it.
+
+2003-02-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * defs.h (streq): Add prototype.
+ * utils.c (streq): New function.
+
+ * dwarf2read.c (new_symbol): Use SYMBOL_SET_NAMES instead of
+ SYMBOL_NAME and SYMBOL_INIT_DEMANGLED_NAME.
+ * mdebugread.c (new_symbol): Likewise.
+ * stabsread.c (define_symbol): Likewise.
+ * coffread.c (process_coff_symbol): Likewise.
+ * dwarfread.c (new_symbol): Likewise.
+
+ * minsyms.c (prim_record_minimal_symbol_and_info): Use
+ SYMBOL_SET_NAMES instead of setting SYMBOL_NAME. Set the language
+ here.
+ (install_minimal_symbols): Don't set SYMBOL_LANGUAGE or call
+ SYMBOL_INIT_DEMANGLED_NAME.
+ * objfiles.c: Include "hashtab.h".
+ (allocate_objfile): Call htab_set_functions_ex for the
+ demangled_names_hash.
+ (free_objfile): Call htab_delete for the demangled_names_hash.
+ * objfiles.h (struct htab): Add declaration.
+ (struct objfile): Add demangled_names_hash.
+ * symfile.c: Include "hashtab.h".
+ (reread_symbols): Call htab_delete for the demangled_names_hash.
+ (add_psymbol_to_list): Use SYMBOL_SET_NAMES instead of putting
+ SYMBOL_NAME in the bcache.
+ * symtab.c: Include "hashtab.h". Update comments.
+ (create_demangled_names_hash, symbol_set_names): New functions.
+ (symbol_find_demangled_name): New function, broken out from
+ symbol_init_demangled_names.
+ (symbol_init_demangled_names): Use it.
+ * symtab.h (SYMBOL_INIT_DEMANGLED_NAME): Add missing parentheses.
+ (SYMBOL_SET_NAMES): New macro.
+ (symbol_set_names): Add prototype.
+
+2003-02-03 Jim Blandy <jimb@redhat.com>
+
+ Use a single, consistent representation for an empty minimal
+ symbol table in an objfile.
+ * objfiles.c (terminate_minimal_symbol_table): New function.
+ (allocate_objfile): Call it.
+ * objfiles.h (terminate_minimal_symbol_table): New declaration.
+ (ALL_MSYMBOLS): No need to test whether (objfile)->msymbols is
+ non-NULL.
+ * minsyms.c (lookup_minimal_symbol_by_pc_section): To see whether
+ objfile has minimal symbols, compare minimal_symbol_count to zero,
+ instead of comparing msymbols with NULL.
+ * objfiles.c (have_minimal_symbols): Same.
+ * solib-sunos.c (solib_add_common_symbols): Call
+ terminate_minimal_symbol_table.
+ * symfile.c (reread_symbols): Same.
+
+2003-02-03 Kevin Buettner <kevinb@redhat.com>
+
+ * s390-tdep.c (s390_address_class_type_flags)
+ (s390_address_class_type_flags_to_name)
+ (s390_address_class_name_to_type_flags): New functions.
+ (s390_gdbarch_init): Define ADDRESS_CLASS_TYPE_FLAGS_TO_NAME,
+ ADDRESS_CLASS_NAME_TO_TYPE_FLAGS, and ADDRESS_CLASS_TYPE_FLAGS.
+
+2003-02-03 Michael Snyder <msnyder@redhat.com>
+
+ * arm-tdep.c: Fix spell-o in comment.
+
+2003-02-03 Michal Ludvig <mludvig@suse.cz>
+
+ * dwarf2cfi.c (pointer_encoding): Added new parameter.
+ * dwarf2cfi.c, dwarf2read.c: Changed all warnings and
+ error messages to contain BFD filename.
+
+2003-02-02 Elena Zannoni <ezannoni@redhat.com>
+
+ Fix PR gdb/742 gdb/743 gdb/877
+ * disasm.c (dump_insns): Use make_cleanup_ui_out_tuple_begin_end.
+ (do_mixed_source_and_assembly): Use
+ make_cleanup_ui_out_tuple_begin_end and
+ make_cleanup_ui_out_tuple_begin_end.
+ (do_mixed_source_and_assembly): Ditto.
+ * thread.c (do_captured_list_thread_ids): Ditto.
+ * ui-out.h (ui_out_table_begin, ui_out_list_begin,
+ ui_out_tuple_begin, ui_out_table_end, ui_out_list_end,
+ ui_out_tuple_end): Delete prototypes.
+ * ui-out.c (ui_out_list_begin, ui_out_tuple_begin,
+ ui_out_list_end, ui_out_tuple_end): Delete.
+
+ From Kevin Buettner <kevinb@redhat.com>:
+ * ui-out.h (make_cleanup_ui_out_table_begin_end): New function.
+ * ui-out.c (make_cleanup_ui_out_table_begin_end)
+ (do_cleanup_table_end): New functions.
+ * breakpoint.c (print_it_typical, print_one_breakpoint, mention):
+ Use cleanups to invoke_ui_out_tuple_end().
+ (breakpoint_1): Use cleanup to invoke ui_out_table_end().
+ * cli/cli-setshow.c (cmd_show_list): Use
+ make_cleanup_ui_out_tuple_begin_end.
+
+2003-02-02 Andrew Cagney <ac131313@redhat.com>
+
+ * frame.c (frame_unwind_register): New function.
+ (frame_unwind_unsigned_register): Use.
+ (frame_unwind_signed_register): Use.
+ (frame_read_register): New function.
+ * frame.h (frame_unwind_register): Declare.
+ (frame_read_register): Declare.
+
+ * d10v-tdep.c (d10v_frame_pop): Rewrite. Use regcache_cooked_write
+ and frame_unwind_register instead of read_memory, write_register
+ and deprecated_write_register_bytes.
+
+2003-02-02 Andrew Cagney <ac131313@redhat.com>
+
+ * frame.h: Note that namelen can be negative.
+ * frame.c (frame_map_name_to_regnum): When LEN is negative, use
+ NAME's length.
+
+ * NEWS: Mention that the d10v's `regs' command is deprecated.
+ * d10v-tdep.c (d10v_gdbarch_init): Set print_registers_info.
+ (d10v_print_registers_info): New function.
+ (show_regs): Call d10v_print_registers_info.
+ (_initialize_d10v_tdep): Mark "show regs" command as deprecated.
+
+2003-02-02 Mark Kettenis <kettenis@gnu.org>
+
+ * stack.c (print_frame_info): Restore call to annotate_frame_begin
+ lost in the previous patch.
+
+2003-02-01 Andrew Cagney <ac131313@redhat.com>
+
+ From 2002-11-09 Jason Molenda (jason-cl@molenda.com)
+ * stack.c (print_frame_info_base): Output complete FRAME tuple
+ for synthesized frames.
+
+2003-02-02 Andrew Cagney <ac131313@redhat.com>
+
+ * mips-nat.c (zerobuf): Delete.
+ (fetch_inferior_registers): Alloc local zerobuf.
+ (fetch_core_registers): Alloc local zerobuf.
+ * d10v-tdep.c (show_regs): Don't allocate a dynamic array using
+ MAX_REGISTER_RAW_SIZE or MAX_REGISTER_VIRTUAL_SIZE.
+ * thread-db.c (thread_db_store_registers): Ditto.
+ * sh-tdep.c (sh_do_register): Ditto.
+ * rom68k-rom.c (rom68k_supply_one_register): Ditto.
+ * remote-sim.c (gdbsim_store_register): Ditto.
+ * remote-mips.c (mips_wait, mips_fetch_registers): Ditto.
+ * remote-e7000.c (fetch_regs_from_dump): Ditto.
+ * monitor.c (monitor_supply_register): Ditto.
+ * mipsv4-nat.c (supply_gregset, supply_fpregset): Ditto.
+ * mips-nat.c (fetch_inferior_registers): Ditto.
+ * m68klinux-nat.c (fetch_register): Ditto.
+ * lynx-nat.c (fetch_inferior_registers): Ditto.
+ (fetch_inferior_registers): Ditto.
+ * irix4-nat.c (supply_gregset, supply_fpregset): Ditto.
+ * hpux-thread.c (hpux_thread_fetch_registers): Ditto.
+ (hpux_thread_store_registers): Ditto.
+ * hppah-nat.c (fetch_register): Ditto.
+ * hppab-nat.c (fetch_register): Ditto.
+ * hppa-tdep.c (pa_register_look_aside): Ditto.
+ (pa_print_fp_reg, pa_strcat_fp_reg): Ditto.
+ * dve3900-rom.c (fetch_bitmapped_register): Ditto.
+
+2003-02-01 Andrew Cagney <ac131313@redhat.com>
+
+ * gdbarch.sh: Explictly specify all method levels. When a
+ variable with an empty level, provide a non-multi-arch default.
+ (BELIEVE_PCC_PROMOTION_TYPE): Set level to empty.
+ * gdbarch.h: Re-generate.
+ * stabsread.c (BELIEVE_PCC_PROMOTION_TYPE): Delete. Always defined.
+ * config/m68k/tm-sun3.h (BELIEVE_PCC_PROMOTION_TYPE): Define as 1
+
+2003-02-01 Andrew Cagney <ac131313@redhat.com>
+
+ * defs.h (host_pointer_to_address): Delete declaration.
+ (address_to_host_pointer): Delete declaration.
+ * utils.c (host_pointer_to_address): Delete function.
+ (address_to_host_pointer): Delete function.
+ * procfs.c (procfs_address_to_host_pointer): New function.
+ * procfs.c (proc_set_watchpoint): Use.
+ (procfs_can_use_hw_breakpoint): Update comments.
+ * somsolib.c (hpux_address_to_host_pointer_hack): New function.
+ (som_solib_add): Use.
+ * hppa-tdep.c (hppa_pointer_to_address_hack): New function.
+ * hppa-tdep.c (unwind_command): Use.
+
+2003-02-01 Andrew Cagney <ac131313@redhat.com>
+
+ * gdb_dirent.h: Mark up valid uses of <dirent.h>, d_namelen and
+ strlen d_name.
+
+ * main.c (captured_main): Delete #ifdef ADDITIONAL_OPTIONS,
+ ADDITIONAL_OPTION_CASES, and ADDITIONAL_OPTION_HANDLER code.
+ (print_gdb_help): Delete #ifdef ADDITIONAL_OPTION_HELP code.
+ * stabsread.c (DBX_PARM_SYMBOL_CLASS): Delete macro.
+ (define_symbol): Update.
+ * symfile.c (generic_load): Remove references to nindy.
+ * symtab.c: Remove references to nindy.
+
+2003-02-01 Andrew Cagney <ac131313@redhat.com>
+
+ * infcmd.c (print_float_info): Delete code conditional on
+ FLOAT_INFO.
+ * config/nm-lynx.h: Delete #undef FLOAT_INFO. Update copyright.
+ * config/m68k/nm-apollo68b.h: Ditto.
+ * config/i386/tm-ptx.h (FLOAT_INFO): Delete. Update copyright.
+ * config/ns32k/nm-nbsd.h (FLOAT_INFO): Ditto.
+ * config/i386/tm-symmetry.h (FLOAT_INFO): Ditto.
+
+2003-02-01 Mark Kettenis <kettenis@gnu.org>
+
+ * config/i386/tm-i386os9k.h: Removed.
+
+ * configure.host (i[3456]86-*-isc*): Set gdb_host to i386v.
+ Remove i[3456]86-*-sysv3.2* and i[3456]86-*-sysv32* entries since
+ they're identical to i[3456]86-*-sysv* now.
+ * config/i386/i386v32.mh: Removed.
+ * config/i386/xm-i386v32.h: Removed.
+ * config/i386/xm-i386sco.h (U_FPSTATE): Remove macro.
+
+ * config/i386/i386mk.mt, config/i386/i386mk.mh: Removed.
+
+ * config/i386/i386dgux.mh: Removed.
+ * configure.host (i[3456]86-*-dgux): Set gdb_host to i386v4.
+
+ * configure.in: Fix typo.
+ * configure: Regenerated.
+
+2003-01-31 David Carlton <carlton@math.stanford.edu>
+
+ * dwarf2read.c (dwarf2_locate_sections): Set
+ dwarf_ranges_section.
+
+2003-01-31 Andrew Cagney <ac131313@redhat.com>
+
+ * objc-exp.y, c-exp.y, f-exp.y: Remove PTR casts.
+ * utils.c: Update comments documenting legitimate uses of PTR.
+
+ * utils.c: Re-indent.
+
+ * config/djgpp/fnchange.lst: Delete nindy files.
+ * nindy-share/ttyflush.c, nindy-share/stop.h: Delete files.
+ * nindy-share/nindy.c, nindy-share/env.h: Delete files.
+ * nindy-share/coff.h, nindy-share/block_io.h: Delete files.
+ * nindy-share/b.out.h, nindy-share/VERSION: Delete files.
+ * nindy-share/README, nindy-share/Onindy.c: Delete files.
+ * nindy-tdep.c, nindy-share/Makefile: Delete files.
+ * Makefile.in (init.c): Remove nindy references.
+ (saber_gdb): Delete rule.
+ (ALLDEPFILES): Delete hp300ux-nat.c, nindy-tdep.c,
+ nindy-share/Onindy.c, nindy-share/nindy.c, nindy-share/ttyflush.c,
+ and a68v-nat.c.
+ (hp300ux-nat.o, a68v-nat.o, ptx4-nat.o): Delete rules.
+ (Onindy.o, nindy.o, ttyflush.o, nindy-tdep.o): Delete rules.
+ (HFILES_NO_SRCDIR): Delete nindy-share/b.out.h,
+ nindy-share/block_io.h, nindy-share/coff.h, nindy-share/env.h, and
+ nindy-share/stop.h.
+ * hp300ux-nat.c, a68v-nat.c, ptx4-nat.c: Delete files.
+ * saber.suppress: Delete file.
+
+2003-01-31 Daniel Jacobowitz <drow@mvista.com>
+
+ * dbxread.c (stabs_data): New static variable.
+ (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.
+
+2003-01-31 Richard Henderson <rth@redhat.com>
+
+ * alpha-nat.c (REGISTER_PTRACE_ADDR): Merge into ...
+ (register_addr): ... here. Support ALPHA_UNIQUE_REGNUM.
+ (fetch_elf_core_registers): Support ALPHA_UNIQUE_REGNUM.
+ * alpha-tdep.c (alpha_register_name): Add "unique".
+ * alpha-tdep.h (ALPHA_NUM_REGS): Increment.
+ (ALPHA_UNIQUE_REGNUM): New.
+ * config/alpha/nm-linux.h (ALPHA_UNIQUE_PTRACE_ADDR): New.
+
+2003-01-31 Andrew Cagney <ac131313@redhat.com>
+
+ * README: Remove reference to Ericsson 1800 monitor.
+ * Makefile.in (remote-es.o): Delete rule.
+ (ALLDEPFILES): Delete remote-es.c.
+ * remote-es.c: Delete file.
+ * config/m68k/es1800.mt: Delete file.
+ * config/djgpp/fnchange.lst: Update.
+ * configure.tgt: Delete m68*-ericsson-* target.
+
+2003-01-31 Adam Fedor <fedor@gnu.org>
+
+ * infrun.c (handle_inferior_event): Rename 'tmp' to real_stop_pc.
+ Remove duplicate/shadowing variable of same name.
+
+2003-01-30 Jim Blandy <jimb@redhat.com>
+
+ * symfile.c (find_separate_debug_file): Assert that the objfile's
+ directory name we compute ends with a slash, and then assume that
+ that's so everywhere we use it.
+
+2003-01-30 Daniel Jacobowitz <drow@mvista.com>
+
+ * valops.c (value_assign): Flush frame cache after stores to memory
+ also.
+
+2003-01-30 Andrew Cagney <ac131313@redhat.com>
+
+ * Makefile.in (mon960-rom.o): Delete rule.
+ * mon960-rom.c: Delete file.
+
+2003-01-30 Andrew Cagney <ac131313@redhat.com>
+
+ * d10v-tdep.c: Include "frame-unwind.h".
+ (d10v_gdbarch_init): Append d10v_frame_p to the unwind predicate
+ list.
+ (next_addr, uses_frame): Delete.
+ (struct d10v_unwind_cache): Define.
+ (prologue_find_regs): Add struct d10v_unwind_cache info parameter.
+ Use info instead of next_addr and uses_frame globals.
+ (d10v_frame_init_saved_regs): Delete function.
+ (d10v_init_extra_frame_info): Delete function.
+ (d10v_gdbarch_init): Do not initialize init_extra_frame_info,
+ frame_init_saved_regs or pop_frame, frame_chain, frame_chain_valid,
+ init_frame_pc or frame_saved_pc.
+ (d10v_pop_frame): Delete function.
+ (do_d10v_pop_frame): Delete function.
+ (d10v_frame_chain): Delete function.
+ (d10v_frame_chain_valid): Delete function.
+ (d10v_frame_pc_unwind): New function.
+ (d10v_frame_id_unwind): New function.
+ (saved_regs_unwinder): New function.
+ (d10v_frame_register_unwind): New function.
+ (d10v_frame_pop): New function.
+ (d10v_frame_unwind): New variable.
+ (d10v_frame_p): New function.
+ (d10v_frame_saved_pc): Delete function.
+ * Makefile.in (d10v-tdep.o): Update dependencies.
+
+2003-01-30 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/tm-hppa64.h (CALL_DUMMY_LOCATION): Remove #undef
+ causing some regressions due to a change in the default value
+ for this macro.
+
+2003-01-29 Richard Henderson <rth@redhat.com>
+ Elena Zannoni <ezannoni@redhat.com>
+ Daniel Jacobowitz <drow@mvista.com>
+
+ Fix PR gdb/961.
+ * dwarf2read.c (dwarf_ranges_offset, dwarf_ranges_size): New
+ variables.
+ (RANGES_SECTION): New.
+ (dwarf_ranges_buffer): New variable.
+ (struct comp_unit_head): Add member "die".
+ (struct dwarf2_pinfo): Add dwarf_ranges_buffer, dwarf_ranges_size.
+ (DWARF_RANGES_BUFFER, DWARF_RANGES_SIZE): New.
+ (dwarf2_has_info): Init dwarf_ranges_offset and dwarf_ranges_size.
+ (dwarf2_locate_sections): Likewise.
+ (dwarf2_build_psymtabs): Read .debug_ranges.
+ (dwarf2_build_psymtabs_hard): Swap dwarf_ranges out.
+ (psymtab_to_symtab_1): Swap dwarf_ranges in. Set cu_header.die.
+ (dwarf2_get_pc_bounds): New cu_header argument; adjust all callers.
+ Look for DW_AT_ranges and return the bounding box.
+
+2003-01-29 Brian Ford <ford@vss.fsi.com>
+
+ * win32-nat.c (cygwin_pid): Removed as unused.
+ (child_attach): Try fall back to Cygwin pid.
+
+2003-01-29 Jim Blandy <jimb@redhat.com>
+
+ * objfiles.h (struct objfile): Doc fix.
+
+2003-01-29 Andrew Cagney <ac131313@redhat.com>
+
+ * frame.c (frame_saved_regs_id_unwind): Assert FRAME_CHAIN_P.
+ (legacy_get_prev_frame): Assert FRAME_CHAIN_P.
+ (get_prev_frame): When FRAME_CHAIN_P, call legacy_get_prev_frame.
+ (frame_saved_regs_pc_unwind): Assert FRAME_SAVED_PC_P.
+ * gdbarch.sh (FRAME_CHAIN): Change to a function with predicate.
+ (FRAME_SAVED_PC): Change to a function with predicate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+2003-01-28 Andrew Cagney <ac131313@redhat.com>
+
+ * hppah-nat.c (child_pid_to_exec_file): Don't use boolean.
+
+ * complaints.c (complain): Delete function.
+ * complaints.h (struct deprecated_complaint): Delete definition.
+ (complain): Delete declaration.
+
+2003-01-28 Kevin Buettner <kevinb@redhat.com>
+
+ * mips-tdep.c (mips_init_extra_frame_info): Return early for
+ dummy frames.
+
+2003-01-27 Andrew Cagney <ac131313@redhat.com>
+
+ * sentinel-frame.h, sentinel-frame.c: New files.
+ * Makefile.in (frame.o): Update dependencies.
+ (SFILES): Add sentinel-frame.c.
+ (sentinel_frame_h): Define.
+ (COMMON_OBS): Add sentinel-frame.o.
+ (sentinel-frame.o): Specify dependencies.
+ * frame.c: Include "sentinel-frame.h".
+ (frame_register_unwind): Rewrite assuming that there is always a a
+ ->next frame.
+ (frame_register, generic_unwind_get_saved_register): Ditto.
+ (frame_read_unsigned_register, frame_read_signed_register): Ditto.
+ (create_sentinel_frame, unwind_to_current_frame): New functions.
+ (get_current_frame): Rewrite using create_sentinel_frame and
+ unwind_to_current_frame. When possible, always create a frame.
+ (create_new_frame): Set next to the sentinel frame.
+ (get_next_frame): Rewrite. Don't go below the level 0 frame.
+ (deprecated_update_frame_pc_hack): Update the next frame's PC and
+ ID cache when necessary.
+ (frame_saved_regs_id_unwind): Use frame_relative_level.
+ (deprecated_generic_get_saved_register): Use frame_relative_level,
+ get_frame_saved_regs, get_frame_pc, get_frame_base and
+ get_next_frame.
+ (frame_saved_regs_register_unwind): Use get_frame_saved_regs and
+ frame_register.
+
+2003-01-27 Daniel Jacobowitz <drow@mvista.com>
+
+ * gdb_indent.sh: Add -T bfd and -T asection to the indent arguments.
+
+2003-01-27 Daniel Jacobowitz <drow@mvista.com>
+
+ * maint.c [! (HAVE_MONSTARTUP && HAVE__MCLEANUP)]
+ (maintenance_set_profile_cmd): Use error () instead of warning ().
+
+2003-01-27 Daniel Jacobowitz <drow@mvista.com>
+
+ * configure.in: Check that -pg works if using --enable-profiling.
+ Check for monstartup and _mcleanup regardless of --enable-profiling.
+ * maint.c: Check for monstartup and _mcleanup before using them.
+ * config.in: Regenerated.
+ * configure: Regenerated.
+
+2003-01-24 Nick Clifton <nickc@redhat.com>
+
+ * Add sh2e support:
+
+ 2002-04-02 Elena Zannoni <ezannoni@redhat.com>
+
+ * gdb/sh-tdep.c (sh_sh2e_register_name): New.
+ (sh2e_show_regs): New.
+ (sh_gdbarch_init): Handle bfd_mach_sh2e.
+ * config/sh/tm-sh.h: Added sh2e to comments.
+
+2003-01-23 Jim Blandy <jimb@redhat.com>
+
+ * symfile.c (syms_from_objfile): Don't print the "(no debugging
+ symbols found)" message here; we haven't checked for a separate
+ debug info file yet, so we don't know yet.
+ (symbol_file_add_with_addrs_or_offsets): Print it here, after
+ we've looked everywhere. Also, there's no need to print a special
+ message when we're loading the separate debug info file: the one
+ symbol_file_add prints is fine.
+
+2003-01-23 Alexander Larsson <alexl@redhat.com>
+ Jim Blandy <jimb@redhat.com>
+
+ Add support for executables whose debug info has been separated
+ out into a separate file, leaving only a link behind.
+ * objfiles.h (struct objfile): New fields: separate_debug_objfile
+ and separate_debug_objfile_backlink.
+ (put_objfile_before): New declaration.
+ * symfile.c: #include "filenames.h".
+ (symbol_file_add_with_addrs_or_offsets): If this objfile has its
+ debug info in a separate file, read that, too. Save the addrs
+ argument, so we can use it again to read the separated debug info;
+ syms_from_objfile modifies the table we pass it.
+ (reread_symbols): After re-reading an objfile, call
+ reread_separate_symbols to refresh its separate debug info
+ objfile, if it has one.
+ (reread_separate_symbols, find_separate_debug_file,
+ get_debug_link_info, separate_debug_file_exists): New functions.
+ (debug_file_directory): New global var.
+ (_initialize_symfile): Initialize debug_file_directory, and
+ provide the new `set debug-file-directory' command to let the user
+ change it.
+ * objfiles.c (free_objfile): If this objfile has its debug info in
+ a separate objfile, free that one too. If this is itself a
+ separate debug info objfile, clear our parent's backlink.
+ (put_objfile_before): New function.
+ * utils.c (gnu_debuglink_crc32): New function.
+ * defs.h (gnu_debuglink_crc32): New declaration.
+ * Makefile.in (symfile.o): Note dependency on "filenames.h".
+ * configure.in: Handle --with-separate-debug-dir config option.
+ * acinclude.m4 (AC_DEFINE_DIR): New macro.
+ * acconfig.h (DEBUGDIR): New macro.
+ * configure, aclocal.m4, config.in: Regenerated.
+
+2003-01-22 Jim Blandy <jimb@redhat.com>
+
+ * symfile.c (symbol_file_add_with_addrs_or_offsets): New function,
+ like the old symbol_file_add, but taking new arguments: you can
+ now pass in either a `struct section_addr_info' list to say where
+ each section is loaded, or a `struct section_offsets' table. Pass
+ these new arguments through to syms_from_objfile as appropriate.
+ (symbol_file_add): Just call symbol_file_add_with_addrs_or_offsets,
+ with the appropriate quiescent values for the new arguments.
+
+ * symfile.c: #include "gdb_assert.h".
+ (syms_from_objfile): Add the ability to pass in a section offset
+ table directly, as an alternative to the section_addr_info table.
+ Document arguments better.
+ (symbol_file_add): Pass extra arguments to syms_from_objfile.
+ * symfile.h (syms_from_objfile): Update declaration.
+ * rs6000-nat.c (objfile_symbol_add): Pass new arguments to
+ syms_from_objfile.
+ * Makefile.in (symfile.o): List dependency on $(gdb_assert_h).
+
+2003-01-22 Daniel Jacobowitz <drow@mvista.com>
+
+ Original patch by Tom Tromey <tromey@cygnus.com> and
+ Jason Molenda <jmolenda@apple.com>.
+ * Makefile.in (PROFILE_CFLAGS): Substitute from configure.
+ (INTERNAL_LDFLAGS): Don't include PROFILE_CFLAGS.
+ * NEWS: Mention profiling.
+ * configure.in (--enable-gdbtk): Fix typo.
+ (--enable-profiling): New. Set PROFILE_CFLAGS.
+ * maint.c (maintenance_set_profile_cmd): Remove NOTYET.
+ Fill in function.
+ (profiling_state): New variable.
+ (mcleanup_wrapper): New function.
+ (_initialize_maint): Remove NOTYET, fix call to
+ add_setshow_boolean_cmd for "maint set profile".
+ * configure: Regenerated.
+
+2003-01-21 Martin M. Hunt <hunt@redhat.com>
+
+ * Makefile.in (install-gdbtk): Install PNG images too.
+
+2003-01-21 Andrew Cagney <ac131313@redhat.com>
+
+ * exec.c (text_start): Delete global variable.
+ (exec_file_attach): Make text_start local to the function.
+ * inferior.h (BEFORE_TEXT_END, AFTER_TEXT_END): Delete macros.
+ * valops.c (hand_function_call): Delete code that handles
+ BEFORE_TEXT_END and AFTER_TEXT_END.
+ * gdbarch.sh (CALL_DUMMY_LENGTH): Test call_dummy_length instead
+ of CALL_DUMMY_LOCATION.
+ * gdbarch.c: Regenerate.
+ * inferior.h (deprecated_pc_in_call_dummy_before_text_end)
+ (deprecated_pc_in_call_dummy_after_text_end): Delete declaration.
+ * blockframe.c (deprecated_pc_in_call_dummy_before_text_end)
+ (deprecated_pc_in_call_dummy_after_text_end): Delete functions.
+ (text_end): Delete extern declaration.
+
+2003-01-21 Andrew Cagney <ac131313@redhat.com>
+
+ * frame.h (FRAME_OBSTACK_ZALLOC): Define.
+ * blockframe.c (backtrace_below_main): Move to "frame.c".
+ (frame_chain_valid): Delete check for backtrace_below_main.
+ (_initialize_blockframe): Delete initialization, move ``set
+ backtrace-below-main'' command to "frame.c".
+ (do_flush_frames_sfunc): Delete function.
+ * frame.c: Include "command.h" and "gdbcmd.h".
+ (frame_type_from_pc): New function.
+ (create_new_frame): Use frame_type_from_pc.
+ (legacy_get_prev_frame): New function.
+ (get_prev_frame): Rewrite. When an old style frame, call
+ legacy_get_prev_frame. Otherwize, unwind the PC first.
+ (_initialize_frame): Add ``set backtrace-below-main'' command.
+ * Makefile.in (frame.o): Update dependencies.
+
+2003-01-19 Andrew Cagney <ac131313@redhat.com>
+
+ * config/pa/tm-hppa.h (DEPRECATED_DO_REGISTERS_INFO): Rename
+ DEPRECATED_REGISTERS_INFO.
+
+2003-01-19 Andrew Cagney <ac131313@redhat.com>
+
+ * MAINTAINERS: Replace `Blanket Write Privs' with `Global
+ Maintainers'. Update `Various Maintainers'.
+
+2003-01-19 Andrew Cagney <ac131313@redhat.com>
+
+ * frame.c (frame_saved_regs_pop): Assert POP_FRAME_P.
+ * gdbarch.sh (POP_FRAME): Change to function with predicate.
+ Suppress actual parameters when `-'.
+ * gdbarch.h, gdbarch.c: Regenerate.
+
+2003-01-19 Andrew Cagney <ac131313@redhat.com>
+
+ * d10v-tdep.c (d10v_frame_saved_pc, d10v_frame_chain): Restore
+ code handling dummy frames.
+
+2003-01-19 Andrew Cagney <ac131313@redhat.com>
+
+ * frame-unwind.h (frame_unwind_pop_ftype): Declare.
+ (struct frame_unwind): Add field pop.
+ * frame.h (frame_pop): Declare.
+ * frame.c (frame_saved_regs_pop): New function.
+ (trad_frame_unwinder): Add frame_saved_regs_pop.
+ (frame_pop): New function.
+ * dummy-frame.c (dummy_frame_pop): New function.
+ (discard_innermost_dummy): New function.
+ (generic_pop_dummy_frame): Use discard_innermost_dummy.
+ (dummy_frame_unwind): Add dummy_frame_pop.
+ * infrun.c (normal_stop): Call frame_pop instead of POP_FRAME.
+ * valops.c (hand_function_call): Ditto.
+ * stack.c (return_command): Ditto.
+
+2003-01-18 Andrew Cagney <ac131313@redhat.com>
+
+ * cris-tdep.c: Fix function declaration indentation.
+ * dwarfread.c, gdbcore.h, gdbtypes.h, i386v-nat.c: Ditto.
+ * mips-tdep.c, monitor.h, parse.c, proc-utils.h: Ditto.
+ * rs6000-nat.c, ser-go32.c, somread.c, stabsread.c: Ditto.
+ * symfile.h, symtab.h, target.c, target.h, value.h: Ditto.
+ * xcoffread.c, config/pa/tm-hppa.h: Ditto.
+ * config/sparc/tm-sp64.h, config/sparc/tm-sparc.h: Ditto.
+
+2003-01-18 Michael Chastain <mec@shout.net>
+
+ * README (Unpacking and Installation -- quick overview):
+ Warn against ".../gdb-5.3/gdb/configure".
+
+2003-01-18 Andrew Cagney <ac131313@redhat.com>
+
+ * dummy-frame.h (dummy_frame_id_unwind): Delete declaration.
+ (dummy_frame_pc_unwind, dummy_frame_register_unwind): Ditto.
+ (struct frame_unwind): Declare opaque.
+ (dummy_frame_p): Declare function.
+ * dummy-frame.c (dummy_frame_id_unwind): Make static.
+ (dummy_frame_pc_unwind, dummy_frame_register_unwind): Ditto.
+ * dummy-frame.c: Include "frame-unwind.h".
+ (dummy_frame_p): New function.
+ (dummy_frame_unwind): New variable.
+ * frame.c: Include "frame-unwind.h".
+ (frame_pc_unwind, frame_id_unwind, frame_register_unwind): Update
+ to use the new unwind field.
+ (set_unwind_by_pc): Delete function.
+ (create_new_frame, get_prev_frame): Set unwind field using
+ frame_unwind_find_by_pc.
+ (trad_frame_unwind, trad_frame_unwinder): New variables.
+ * frame.h (trad_frame_unwind): Declare variable.
+ (frame_id_unwind_ftype): Delete declaration.
+ (frame_pc_unwind_ftype, frame_register_unwind_ftype): Ditto.
+ (struct frame_unwind): Declare opaque.
+ (struct frame_info): Replace the fields id_unwind, pc_unwind and
+ register_unwind with a single unwind pointer.
+ * frame-unwind.h, frame-unwind.c: New files.
+ * Makefile.in (SFILES): Add frame-unwind.c.
+ (frame_unwind_h): Define.
+ (COMMON_OBS): Add frame-unwind.o.
+ (frame-unwind.o): Specify dependencies.
+ (frame.o, dummy-frame.o): Update dependencies.
+
+2003-01-18 Andrew Cagney <ac131313@redhat.com>
+
+ * ada-valprint.c: Eliminate PTR.
+ * breakpoint.c, corelow.c, cris-tdep.c, dbxread.c: Ditto.
+ * defs.h, dve3900-rom.c, dwarf2read.c, dwarfread.c: Ditto.
+ * exec.c, hppa-tdep.c, hpread.c, infcmd.c, mdebugread.c: Ditto.
+ * objfiles.c, objfiles.h, ocd.c, remote-es.c: Ditto.
+ * remote-mips.c, remote-sds.c, remote-vx.c: Ditto.
+ * solib-svr4.c, solib.c, stack.c, symfile.c, symfile.h: Ditto.
+ * symmisc.c, v850ice.c, xcoffread.c, cli/cli-script.c: Ditto.
+
+2003-01-17 Andrew Cagney <ac131313@redhat.com>
+
+ * main.c (captured_main): Don't use PTR.
+ * cp-valprint.c (cp_print_class_method): Replace STREQ with strcmp.
+ * gdbtypes.c (lookup_primitive_typename): Ditto.
+ (lookup_struct_elt_type): Ditto.
+ * f-valprint.c (info_common_command): Ditto.
+ (list_all_visible_commons): Ditto.
+ * jv-typeprint.c (java_type_print_base): Ditto.
+
+ * config/djgpp/fnchange.lst: Rename mi1-var-block.exp,
+ mi1-var-child.exp, mi1-var-cmd.exp and mi1-var-display.exp.
+ Rename opcodes/iq2000-desc.c and opcodes/iq2000-dis.c. Rename
+ i386-interix-nat.c and i386-interix-tdep.c. Rename
+ m68klinux-nat.c and m68klinux-tdep.c. Rename
+ config/mips/tm-linux.h and config/mips/tm-linux64.h. Rename
+ bfd/po/.cvsignore and opcodes/po/.cvsignore. Rename
+ gdb/objc-exp.tab.c and gdb/ada-exp.tab.c
+ * main.c (captured_main): Use xfree, not free.
+
+2003-01-16 Andrew Cagney <ac131313@redhat.com>
+
+ * frame.h (frame_id_unwind_ftype): Change type so that the frame's
+ ID back using a parameter.
+ * frame.c (frame_id_unwind): Update call.
+ (frame_saved_regs_id_unwind): Update.
+ * dummy-frame.c (dummy_frame_id_unwind): Update function.
+ * dummy-frame.h (struct frame_id): Add opaque declaration.
+ (dummy_frame_id_unwind): Update declaration.
+
+2003-01-15 Andrew Cagney <ac131313@redhat.com>
+
+ * sparc-tdep.c: Delete reference to PRINT_REGISTER_HOOK.
+
+2003-01-15 Stephen P. Smith <ischis2@cox.net>
+
+ * MAINTAINERS (Stephen P. Smith): Updated email address.
+
+2003-01-14 Elena Zannoni <ezannoni@redhat.com>
+
+ Fix PR gdb/898
+ * breakpoint.c (until_break_command): Add new argument. Use it to
+ decide whether to stop only at the current frame or not.
+ * breakpoint.h (until_break_command): Update prototype.
+ * infcmd.c (until_command): Add new argument to until_break_command
+ call.
+ (advance_command): New function.
+ (_initialize_infcmd): Update help string for 'until' command.
+ Add new 'advance' command.
+
+2003-01-14 David Carlton <carlton@math.stanford.edu>
+
+ * linespec.c (decode_line_1): Normalize comments.
+ (set_flags): Ditto.
+ (locate_first_half): Ditto.
+ (decode_compound): Ditto.
+ (symtab_from_filename): Ditto.
+ (decode_all_digits): Ditto.
+ (decode_dollar): Ditto.
+ (find_methods): Ditto.
+ (find_toplevel_char): Ditto.
+
+2003-01-13 Andrew Cagney <ac131313@redhat.com>
+
+ * ax-gdb.c, c-valprint.c, charset.c, corefile.c: Update copyright.
+ * demangle.c, disasm.c, dwarf2cfi.c, dwarfread.c: Update copyright.
+ * elfread.c, eval.c, expprint.c, expression.h: Update copyright.
+ * f-typeprint.c, findvar.c, gcore.c, gdb_mbuild.sh: Update copyright.
+ * gdbtypes.h, gnu-v2-abi.c, inferior.h, inftarg.c: Update copyright.
+ * language.c, language.h, m32r-tdep.c: Update copyright.
+ * mn10200-tdep.c, scm-lang.c, scm-lang.h: Update copyright.
+ * somsolib.c, somsolib.h, symfile.c, symtab.h: Update copyright.
+ * thread-db.c, typeprint.c, utils.c, valarith.c: Update copyright.
+ * values.c, win32-nat.c, x86-64-linux-nat.c: Update copyright.
+ * x86-64-linux-tdep.c, z8k-tdep.c: Update copyright.
+ * cli/cli-decode.h, config/h8500/tm-h8500.h: Update copyright.
+
+2003-01-13 Elena Zannoni <ezannoni@redhat.com>
+
+ * stabsread.h (process_later, resolve_cfront_continuation):
+ Obsolete.
+ Update copyright years.
+ * buildsym.c (start_subfile): Obsolete comment pertinent to Cfront.
+ Update copyright year.
+ * dbxread.c(struct cont_elem): Obsolete.
+ (process_later, process_now): Obsolete functions.
+ (read_dbx_symtab, read_ofile_symtab): Obsolete cfront support.
+ Update copyright year.
+ * gdbtypes.c (INIT_EXTRA, ADD_EXTRA): Obsolete macros.
+ (add_name, add_mangled_type, cfront_mangle_name): Obsolete functions.
+ * mdebugread.c (parse_type): Obsolete comment pertinent to Cfront.
+ (parse_partial_symbols): Obsolete cfront support.
+ * stabsread.c
+ (CFRONT_VISIBILITY_PRIVATE,CFRONT_VISIBILITY_PUBLIC): Obsolete
+ macros.
+ (get_substring, get_cfront_method_physname, msg_unknown_complaint,
+ read_cfront_baseclasses, read_cfront_member_functions,
+ resolve_cfront_continuation,read_cfront_static_fields,
+ copy_cfront_struct_fields): Obsolete functions.
+ (define_symbol, read_one_struct_field): Obsolete cfront support.
+ * xcoffread.c (scan_xcoff_symtab): Obsolete CFront support.
+ Update Copyright year.
+
+2003-01-13 Elena Zannoni <ezannoni@redhat.com>
+
+ * stack.c (print_frame_info, print_stack_frame_base_stub,
+ print_stack_frame_base, show_and_print_stack_frame_stub,
+ show_and_print_stack_frame, print_only_stack_frame_stub,
+ print_only_stack_frame): Delete functions.
+ (print_stack_frame_stub): Call print_frame_info instead of
+ print_frame_info_base.
+ (print_frame_info_base): Rename to print_frame_info.
+ (backtrace_command_1): Call print_frame_info, instead of
+ print_frame_info_base.
+ (current_frame_command): Call print_stack_frame, instead of
+ print_only_stack_frame.
+ (frame_command): Call print_stack_frame, instead of
+ show_and_print_stack_frame.
+ (up_command): Ditto.
+ (down_command): Ditto.
+ * frame.h (print_only_stack_frame): Delete prototype.
+ * infrun.c (normal_stop): Call print_stack_frame, instead of
+ show_and_print_stack_frame.
+ * thread.c (info_threads_command): Call print_stack_frame, instead
+ of print_only_stack_frame.
+
+2003-01-13 Andrew Cagney <ac131313@redhat.com>
+
+ * README (Graphical interface to GDB): Update URL. Point at
+ gdb/links/.
+
+ * gdb_indent.sh: Update to version 2.2.9. Warn when not exact
+ version match.
+
+2003-01-13 Daniel Jacobowitz <drow@mvista.com>
+
+ * symtab.c (find_pc_sect_line): Don't consider end-of-function
+ lines.
+
+2003-01-13 Daniel Jacobowitz <drow@mvista.com>
+
+ * thread-db.c (attach_thread): Prototype.
+ (struct private_thread_info): Remove lwpid. Add thread handle (th),
+ thread information (ti), and valid flags (th_valid, ti_valid).
+ (attach_thread): Move target_pid_to_str call to after the thread
+ is added to GDB's list. Initialize the cache.
+ (thread_get_info_callback, thread_db_map_id2thr)
+ (thread_db_get_info): New functions.
+ (thread_from_lwp, lwp_from_thread, thread_db_fetch_registers)
+ (thread_db_store_registers, thread_db_thread_alive)
+ (thread_db_get_thread_local_address): Use them.
+ (thread_db_pid_to_str): Likewise. Return "Missing" instead
+ of calling error() for threads in unknown state.
+
+ (clear_lwpid_callback): New function.
+ (thread_db_resume): Use it to clear the cache.
+
+2003-01-13 Daniel Jacobowitz <drow@mvista.com>
+
+ * lin-lwp.c (struct private_thread_info, find_lwp_callback): Remove.
+ (resume_callback): Remove dead code.
+
+2003-01-13 Andrew Cagney <ac131313@redhat.com>
+
+ * gdbarch.sh (FRAME_INIT_SAVED_REGS): Change to function with
+ predicate.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * stack.c (frame_info): Only initialize the saved registers when
+ FRAME_INIT_SAVED_REGS_P.
+ * frame.c (frame_saved_regs_register_unwind): Assert
+ FRAME_INIT_SAVED_REGS_P.
+ (deprecated_generic_get_saved_register): Ditto.
+
+2003-01-13 Daniel Jacobowitz <drow@mvista.com>
+
+ * source.c (openp): Squelch warning about "filename".
+
+2003-01-13 Daniel Jacobowitz <drow@mvista.com>
+
+ * source.c (openp): If the file does not exist don't necessarily
+ search the path.
+
+2003-01-13 Daniel Jacobowitz <drow@mvista.com>
+
+ Fix PR gdb/872.
+ * gdbtypes.c (init_type): Mark "char" as TYPE_FLAG_NOSIGN.
+ (integer_types_same_name_p): New function.
+ (rank_one_type): Use it.
+ * stabsread.c (read_range_type): Mark "char" as TYPE_FLAG_NOSIGN.
+
+2003-01-13 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT_DEFINE): New
+ variables.
+ (main.o): Custom rule which uses $(TARGET_SYSTEM_ROOT_DEFINE).
+ * configure.in: Add --with-sysroot.
+ * configure: Regenerated.
+ * main.c (gdb_sysroot): New variable.
+ (captured_main): Initialize gdb_sysroot.
+ * defs.h (gdb_sysroot): New extern declaration.
+ * solib.c (_initialize_solib): Initialize solib_absolute_prefix.
+
+2003-01-12 Michael Chastain <mec@shout.net>
+
+ * config/djgpp/fnchange.lst: add gdb/ChangeLog-2002.
+
+2003-01-12 Michael Chastain <mec@shout.net>
+
+ * top.c (print_gdb_version): Bump copyright year to 2003.
+
+2003-01-12 David Carlton <carlton@bactrian.org>
+
+ * linespec.c (symtab_from_filename): Rename variable 's' to
+ 'file_symtab'.
+
+2003-01-12 Andrew Cagney <ac131313@redhat.com>
+
+ * d10v-tdep.c (d10v_init_extra_frame_info): Remove checks for a
+ dummy frame.
+ (d10v_frame_saved_pc, d10v_frame_chain): Ditto.
+
+2003-01-12 Andrew Cagney <ac131313@redhat.com>
+
+ * d10v-tdep.c: Include "gdb_assert.h".
+ (d10v_store_return_value): Rewrite to match current interface.
+ (d10v_extract_struct_value_address): Ditto.
+ (d10v_extract_return_value): Ditto.
+ (d10v_gdbarch_init): Set store_restore_value,
+ extract_struct_value_address and extract_return_value.
+
+2003-01-12 J. Brobecker <brobecker@gnat.com>
+
+ * hpread.c (set_namestring): New procedure replacing the
+ SET_NAMESTRING macro.
+ (hpread_build_psymtabs): Replace calls to SET_NAMESTRING
+ by calls to set_namestring.
+
+2003-01-11 J. Brobecker <brobecker@gnat.com>
+
+ * hpread.c (SET_NAMESTRING): Remove an incorrect cast to fix
+ a compilation warning.
+ (hpread_process_one_debug_symbol): Likewise.
+
+2003-01-10 David Carlton <carlton@math.stanford.edu>
+
+ * linespec.c (decode_line_1): Rename variable 's' to
+ 'file_symtab'.
+ (decode_all_digits): Rename argument 's' to 'file_symtab'.
+ (decode_dollar): Ditto.
+ (decode_variable): Ditto.
+ (symbol_found): Ditto.
+
+2003-01-09 Michael Chastain <mec@shout.net>
+
+ * config/djgpp/fnchange.lst: update file list for testsuite/gdb.c++.
+
+2003-01-07 Corinna Vinschen <vinschen@redhat.com>
+
+ * win32-nat.c (set_process_privilege): New function.
+ (child_attach): Call set_process_privilege() to enable the
+ SE_DEBUG_NAME user privilege if available in process token.
+
+2003-01-10 J. Brobecker <brobecker@gnat.com>
+
+ * hpread.c (hpread_process_one_debug_symbol): Fix a small
+ compilation error in the previous revision.
+
+2003-01-09 David Carlton <carlton@math.stanford.edu>
+
+ * linespec.c: Update copyright.
+
+2003-01-09 Daniel Jacobowitz <drow@mvista.com>
+
+ * lin-lwp.c (child_wait): Ignore exit statuses for processes other
+ than inferior_ptid.
+ (lin_lwp_wait): Ignore exit statuses for unknown LWPs.
+
+2003-01-09 Andrew Cagney <ac131313@redhat.com>
+
+ * frame.h (frame_obstack_zalloc): Replace frame_obstack_alloc.
+ Update comments.
+ * frame.c (frame_obstack_zalloc): Replace frame_obstack_alloc.
+ (frame_saved_regs_zalloc): Update.
+ (frame_saved_regs_register_unwind): Update.
+ (create_new_frame): Update.
+ (get_prev_frame): Update.
+ (frame_extra_info_zalloc): Update.
+ (deprecated_get_frame_saved_regs): Update.
+ * dwarf2cfi.c (cfi_init_extra_frame_info): Update.
+ * cris-tdep.c: Update comment.
+
+ * somsolib.h: Fix function indentation.
+ * disasm.c, buildsym.c, buildsym.h: Eliminate PTR.
+ * gnu-v2-abi.c, f-typeprint.c, x86-64-linux-tdep.c: Eliminate STREQ.
+ * demangle.c, ax-gdb.c, c-valprint.c: Eliminate STREQ.
+ * alpha-osf1-tdep.c, corefile.c: Eliminate STREQ.
+ * somsolib.c, inftarg.c: Remove assignment in if conditional.
+
+ * infrun.c (follow_fork): Use ISO C definition.
+ * expprint.c (print_subexp): Use xfree instead of free.
+ * charset.c: Include "gdb_string.h" instead of <string.h>.
+ (register_iconv_charsets): Use ISO C definition.
+ (host_charset, target_charset): Ditto.
+ * Makefile.in (charset.o): Update dependencies.
+ (mi-cmd-env.o): Update dependencies.
+
+2003-01-08 Andrew Cagney <cagney@redhat.com>
+
+ * alpha-linux-tdep.c (alpha_linux_sigcontext_addr): Use
+ get_frame_base.
+
+2003-01-08 Andrew Cagney <ac131313@redhat.com>
+
+ * gdb_mbuild.sh: Add --keep option. When specified, keep the
+ build directories. Save edited gdb output in Mbuild.log. If a
+ build fails, remove any final GDB executable.
+
+2003-01-08 Andrew Cagney <ac131313@redhat.com>
+
+ * gdb_mbuild.sh: Edit the output of `maint print architecture'
+ replacing hex constants with function names and stripping leading
+ file name directory prefixes.
+
+2003-01-08 Andrew Cagney <cagney@redhat.com>
+
+ * gcore.c, i386-linux-tdep.c: Use get_frame_pc, get_next_frame and
+ get_frame_base.
+
+2003-01-08 David Carlton <carlton@math.stanford.edu>
+
+ * linespec.c (decode_line_1): Move code into decode_variable.
+ (decode_variable): New function.
+
+2003-01-08 Andrew Cagney <ac131313@redhat.com>
+
+ * mn10300-tdep.c (analyze_dummy_frame): Fix typo.
+
+2003-01-08 Andrew Cagney <cagney@redhat.com>
+
+ * cris-tdep.c (cris_frame_init_saved_regs): Use
+ get_frame_saved_regs and SIZEOF_FRAME_SAVED_REGS when copying a
+ saved_regs buffer.
+ * sh-tdep.c (sh_nofp_frame_init_saved_regs): Ditto.
+ (sh64_nofp_frame_init_saved_regs): Ditto.
+ (sh_fp_frame_init_saved_regs): Ditto.
+ * arm-tdep.c: Use deprecated_set_frame_saved_regs_hack.
+ * mips-tdep.c (mips_init_extra_frame_info): Ditto.
+ * mcore-tdep.c (analyze_dummy_frame): Ditto.
+ * mn10300-tdep.c (analyze_dummy_frame): Ditto.
+
+2003-01-08 Daniel Jacobowitz <drow@mvista.com>
+
+ * minsyms.c (lookup_minimal_symbol): Update comment.
+ (lookup_minimal_symbol_text): Update comment. Use the hash table.
+ (lookup_minimal_symbol_solib_trampoline): Likewise.
+
+2003-01-08 Andrew Cagney <cagney@redhat.com>
+
+ * d10v-tdep.c (d10v_init_extra_frame_info): Use
+ frame_relative_level.
+
+ * alpha-tdep.c: Use get_frame_extra_info.
+ * arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
+ * h8300-tdep.c, ia64-tdep.c, m68hc11-tdep.c, mcore-tdep.c: Ditto.
+ * mips-tdep.c, mn10300-tdep.c, s390-tdep.c, sh-tdep.c: Ditto.
+ * sparc-tdep.c, xstormy16-tdep.c: Ditto.
+
+ * alpha-tdep.c: Use get_next_frame.
+ * arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
+ * dwarf2cfi.c, h8300-tdep.c, i386-tdep.c, ia64-tdep.c: Ditto.
+ * m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c: Ditto.
+ * mips-tdep.c, mn10200-tdep.c, mn10300-tdep.c: Ditto.
+ * ns32k-tdep.c, s390-tdep.c, sh-tdep.c, sparc-tdep.c: Ditto.
+ * v850-tdep.c, vax-tdep.c, x86-64-linux-tdep.c: Ditto.
+ * xstormy16-tdep.c: Ditto.
+
+2003-01-07 Andrew Cagney <cagney@redhat.com>
+
+ * alpha-tdep.c: Use get_frame_base.
+ * arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
+ * h8300-tdep.c, i386-tdep.c, ia64-tdep.c, m68hc11-tdep.c: Ditto.
+ * m68k-tdep.c, mcore-tdep.c, mips-tdep.c, mn10200-tdep.c: Ditto.
+ * mn10300-tdep.c, ns32k-tdep.c, s390-tdep.c, sh-tdep.c: Ditto.
+ * sparc-tdep.c, v850-tdep.c, vax-tdep.c: Ditto.
+ * x86-64-linux-tdep.c, xstormy16-tdep.c: Ditto.
+ * config/h8500/tm-h8500.h, config/mn10200/tm-mn10200.h: Ditto.
+ * config/sparc/tm-sparc.h: Ditto.
+
+2003-01-07 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (deprecated_get_frame_context): New function.
+ (deprecated_set_frame_context): New function.
+ * frame.h (deprecated_get_frame_context): Declare.
+ (deprecated_set_frame_context): Declare.
+ * dwarf2cfi.c (UNWIND_CONTEXT): Use deprecated_get_frame_context.
+ (cfi_init_extra_frame_info): Use deprecated_set_frame_context.
+
+2003-01-07 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (deprecated_set_frame_next_hack): New function.
+ (deprecated_set_frame_prev_hack): New function.
+ * frame.h (deprecated_set_frame_next_hack): Declare.
+ (deprecated_set_frame_prev_hack): Declare.
+ * mcore-tdep.c (analyze_dummy_frame): Use
+ deprecated_set_frame_next_hack and deprecated_set_frame_prev_hack.
+ * mn10300-tdep.c (analyze_dummy_frame): Ditto.
+
+2003-01-07 David Carlton <carlton@math.stanford.edu>
+
+ * linespec.c (decode_line_1): Move code into decode_dollar.
+ (decode_dollar): New function.
+
+2003-01-07 Andrew Cagney <cagney@redhat.com>
+
+ * arm-tdep.c (arm_init_extra_frame_info): Use
+ deprecated_update_frame_base_hack.
+ * xstormy16-tdep.c (xstormy16_scan_prologue): Ditto.
+ * mn10300-tdep.c (analyze_dummy_frame): Ditto.
+ (fix_frame_pointer): Ditto.
+ (mn10300_analyze_prologue): Ditto.
+
+2003-01-07 Andrew Cagney <cagney@redhat.com>
+
+ * xstormy16-tdep.c (xstormy16_init_extra_frame_info): Allocate
+ extra_info using frame_extra_info_zalloc.
+ * sparc-tdep.c (sparc_init_extra_frame_info): Ditto.
+ * sh-tdep.c (sh_init_extra_frame_info): Ditto.
+ (sh64_init_extra_frame_info): Ditto.
+ * mn10300-tdep.c (mn10300_init_extra_frame_info): Ditto.
+ * s390-tdep.c (s390_init_extra_frame_info): Ditto.
+ * mips-tdep.c (mips_init_extra_frame_info): Ditto.
+ * mcore-tdep.c (mcore_init_extra_frame_info): Ditto.
+ * frv-tdep.c (frv_init_extra_frame_info): Ditto.
+ * m68hc11-tdep.c (m68hc11_init_extra_frame_info): Ditto.
+ * ia64-tdep.c (ia64_init_extra_frame_info): Ditto.
+ * h8300-tdep.c (h8300_init_extra_frame_info): Ditto.
+ * d10v-tdep.c (d10v_init_extra_frame_info): Ditto.
+ * cris-tdep.c (cris_init_extra_frame_info): Ditto.
+ * arm-tdep.c (arm_init_extra_frame_info): Ditto.
+ * alpha-tdep.c (alpha_init_extra_frame_info): Ditto.
+
+ * mn10300-tdep.c (analyze_dummy_frame): Use
+ deprecated_set_frame_extra_info_hack.
+ * mcore-tdep.c (analyze_dummy_frame): Ditto.
+
+2003-01-07 J. Brobecker <brobecker@gnat.com>
+
+ * mdebugread.c (parse_symbol): Skip stProc entries which storage
+ class is not scText. These do not define "real" procedures.
+ (parse_partial_symbols): Likewise.
+
+2003-01-06 Michael Snyder <msnyder@redhat.com>
+
+ * lin-lwp.c: Added or elaborated on "debug lin-lwp" info.
+
+2003-01-06 Andrew Cagney <ac131313@redhat.com>
+
+ * frame.h (deprecated_frame_xmalloc_with_cleanup): Declare.
+ * frame.c (deprecated_frame_xmalloc_with_cleanup): New function.
+ * arm-tdep.c (arm_frame_chain): Allocate caller_fi using
+ deprecated_frame_xmalloc_with_cleanup.
+ * m32r-tdep.c (m32r_virtual_frame_pointer): Allocate `fi' using
+ deprecated_frame_xmalloc.
+ * mcore-tdep.c (analyze_dummy_frame): Ditto for dummy.
+ * mn10200-tdep.c (mn10200_frame_chain): Ditto for dummy_frame.
+
+2003-01-06 Andrew Cagney <cagney@redhat.com>
+
+ * x86-64-linux-tdep.c: Include "osabi.h".
+ * Makefile.in (x86-64-linux-tdep.o): Update dependencies.
+
+ * sparc-tdep.c (sparc_dump_tdep): Fix typo, match -> mach.
+
+2003-01-06 Andrew Cagney <cagney@redhat.com>
+
+ * MAINTAINERS (Target Instruction Set Architectures): Update
+ arm-elf. Can be built with -Werror, has been multiarched.
+
+ * value.h (unpack_long): Make buffer parameter constant.
+ (unpack_double, unpack_pointer, unpack_field_as_long): Ditto.
+ * scm-lang.h (scm_parse): Ditto.
+ * defs.h (extract_typed_address, extract_address): Ditto.
+ (extract_long_unsigned_integer): Ditto.
+ * inferior.h (unsigned_pointer_to_address): Ditto.
+ (signed_pointer_to_address): Ditto.
+ * gdbarch.sh (POINTER_TO_ADDRESS): Ditto.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * findvar.c (extract_long_unsigned_integer): Update.
+ (extract_address): Update.
+ (extract_typed_address): Update.
+ (unsigned_pointer_to_address): Update.
+ * values.c (unpack_long): Update.
+ (unpack_double): Update.
+ (unpack_pointer): Update.
+ (unpack_field_as_long): Update.
+ * d10v-tdep.c (d10v_pointer_to_address): Update.
+ * avr-tdep.c (avr_pointer_to_address): Update.
+ * scm-lang.c (scm_unpack): Update.
+ * findvar.c (signed_pointer_to_address): Update.
+
+2003-01-06 Michal Ludvig <mludvig@suse.cz>
+
+ * x86-64-linux-nat.c (i386_sse_regnum_p): Deleted. Not needed anymore
+ since it is in i386-tdep.c.
+
+2003-01-06 J. Brobecker <brobecker@gnat.com>
+
+ * alpha-tdep.c (alpha_gdbarch_init): Fix a small compilation
+ failure introduced in the previous change.
+
+2003-01-05 Michael Chastain <mec@shout.net>
+
+ * README: Remove references to deleted remote-*.c files:
+ remote-adapt.c, remote-eb.c, remote-mm.c, remote-nindy.c,
+ remote-nrom.c, remote-os9k.c, remote-udi.c.
+
+2003-01-05 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_get_longjmp_target): Make usable on x86-64.
+ * x86-64-tdep.c (x86_64_init_abi): Remove FIXME about
+ i386_get_longjmp_target.
+
+2003-01-05 Andrew Cagney <ac131313@redhat.com>
+
+ * arm-tdep.c (prologue_cache): Change to a pointer.
+ (_initialize_arm_tdep): Allocate prologue_cache.
+ (check_prologue_cache): Update.
+ (save_prologue_cache): Update.
+ (arm_gdbarch_init): Update.
+
+2003-01-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * stabsread.c (update_method_name_from_physname): Call complaint()
+ instead of error.
+
+2003-01-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * arm-tdep.c (arm_frame_chain_valid): Remove unnecessary test.
+ * d10v-tdep.c (d10v_frame_chain_valid): Remove unnecessary tests.
+ * hppa-tdep.c (hppa_frame_chain_valid): Remove unnecessary test.
+
+ * blockframe.c: Include "gdbcmd.h" and "command.h".
+ (backtrace_below_main): New variable.
+ (file_frame_chain_valid, func_frame_chain_valid)
+ (nonnull_frame_chain_valid, generic_file_frame_chain_valid)
+ (generic_func_frame_chain_valid): Remove functions.
+ (frame_chain_valid, do_flush_frames_sfunc): New functions.
+ (_initialize_blockframe): New function.
+ * Makefile.in (blockframe.o): Update dependencies.
+ * frame.c (frame_saved_regs_id_unwind, get_prev_frame): Remove FIXME
+ comment. Call frame_chain_valid ().
+ * frame.h: Remove old prototypes. Add prototype for
+ frame_chain_valid and update comments to match.
+ * gdbarch.sh: Change FRAME_CHAIN_VALID into a predicated function.
+ Remove old comment.
+ * gdbarch.h: Regenerated.
+ * gdbarch.c: Regenerated.
+
+ * alpha-tdep.c (alpha_gdbarch_init): Don't call
+ set_gdbarch_frame_chain_valid.
+ * avr-tdep.c (avr_gdbarch_init): Likewise.
+ * cris-tdep.c (cris_gdbarch_init): Likewise.
+ * frv-tdep.c (frv_gdbarch_init): Likewise.
+ * h8300-tdep.c (h8300_gdbarch_init): Likewise.
+ * i386-tdep.c (i386_svr4_init_abi): Likewise.
+ (i386_nw_init_abi): Likewise.
+ (i386_gdbarch_init): Likewise.
+ * ia64-tdep.c (ia64_gdbarch_init): Likewise.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Likewise.
+ * m68k-tdep.c (m68k_gdbarch_init): Likewise.
+ * mcore-tdep.c (mcore_gdbarch_init): Likewise.
+ * mips-tdep.c (mips_gdbarch_init): Likewise.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Likewise.
+ * ppcnbsd-tdep.c (ppcnbsd_init_abi): Likewise.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
+ * s390-tdep.c (s390_gdbarch_init): Likewise.
+ * sh-tdep.c (sh_gdbarch_init): Likewise.
+ * sparc-tdep.c (sparc_gdbarch_init): Likewise.
+ * v850-tdep.c (v850_gdbarch_init): Likewise.
+ * vax-tdep.c (vax_gdbarch_init): Likewise.
+ * x86-64-tdep.c (x86_64_init_abi): Likewise.
+
+ * config/m32r/tm-m32r.h (FRAME_CHAIN_VALID): Don't define.
+ * config/m68k/tm-apollo68b.h (FRAME_CHAIN_VALID): Likewise.
+ * config/m68k/tm-m68kv4.h (FRAME_CHAIN_VALID): Likewise.
+ * config/m68k/tm-monitor.h (FRAME_CHAIN_VALID): Likewise.
+ * config/m68k/tm-os68k.h (FRAME_CHAIN_VALID): Likewise.
+ * config/m68k/tm-vx68.h (FRAME_CHAIN_VALID): Likewise.
+ * config/mn10200/tm-mn10200.h (FRAME_CHAIN_VALID): Likewise.
+ * config/sparc/tm-sparclite.h (FRAME_CHAIN_VALID): Likewise.
+
+2002-01-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (acconfig_h): Remove incorrect macro.
+ (config_h): Define.
+ (osabi.o): Update dependencies.
+ * configure.tgt: Set gdb_osabi based on target triplet.
+ * configure.in: Define GDB_OSABI_DEFAULT based on gdb_osabi.
+ * configure: Regenerated.
+ * config.in: Regenerated.
+ * osabi.c: Include "arch-utils.h", "gdbcmd.h", and "command.h".
+ (GDB_OSABI_DEFAULT): Define if not already defined.
+ (user_osabi_state, user_selected_osabi, gdb_osabi_available_names)
+ (set_osabi_string): New variables.
+ (gdbarch_register_osabi): Add new OS ABI to
+ gdb_osabi_available_names.
+ (gdbarch_lookup_osabi): Honor specified and default OS ABIs.
+ (set_osabi, show_osabi): New functions.
+ (_initialize_gdb_osabi): Add "set osabi" and "show osabi" commands.
+
+2003-01-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * arch-utils.c (gdbarch_info_init): Set osabi to
+ GDB_OSABI_UNINITIALIZED.
+ * gdbarch.sh: Add osabi to struct gdbarch and to struct
+ gdbarch_info. Include "osabi.h" in gdbarch.c. Check osabi
+ in gdbarch_list_lookup_by_info and in gdbarch_update_p.
+ * gdbarch.c: Regenerated.
+ * gdbarch.h: Regenerated.
+ * osabi.c (gdbarch_lookup_osabi): Return GDB_OSABI_UNINITIALIZED if
+ there's no BFD.
+ (gdbarch_init_osabi): Remove osabi argument; use info.osabi.
+ * osabi.h (enum gdb_osabi): Move to defs.h.
+ (gdbarch_init_osabi): Update prototype.
+ * defs.h (enum gdb_osabi): Moved here.
+ * Makefile.in: Update dependencies.
+
+ * alpha-tdep.h: Don't include "osabi.h".
+ (struct gdbarch_tdep): Remove osabi member.
+ * alpha-tdep.c: Include "osabi.h".
+ (alpha_gdbarch_init): Don't call gdbarch_lookup_osabi. Don't
+ iterate over arches. Update call to gdbarch_init_osabi.
+ (alpha_dump_tdep): Don't dump osabi.
+ * alpha-linux-tdep.c: Include "osabi.h".
+ * alpha-osf1-tdep.c: Include "osabi.h".
+ * alphafbsd-tdep.c: Include "osabi.h".
+ * alphanbsd-tdep.c: Include "osabi.h".
+
+ * arm-tdep.h: Don't include "osabi.h".
+ (struct gdbarch_tdep): Remove osabi member.
+ * arm-tdep.c: Include "osabi.h".
+ (arm_gdbarch_init): Don't call gdbarch_lookup_osabi. Don't
+ iterate over arches. Update call to gdbarch_init_osabi.
+ (arm_dump_tdep): Don't dump osabi.
+ * arm-linux-tdep.c: Include "osabi.h".
+ * armnbsd-tdep.c: Include "osabi.h".
+
+ * hppa-tdep.c (hppa_gdbarch_init): Don't call gdbarch_lookup_osabi.
+ Update call to gdbarch_init_osabi.
+
+ * i386-tdep.h: Don't include "osabi.h".
+ (struct gdbarch_tdep): Remove osabi member.
+ * i386-tdep.c: Include "osabi.h".
+ (i386_gdbarch_init): Don't call gdbarch_lookup_osabi. Don't
+ iterate over arches. Update call to gdbarch_init_osabi.
+ (i386_dump_tdep): Don't dump osabi.
+ * i386-linux-tdep.c: Include "osabi.h".
+ * i386-sol2-tdep.c: Include "osabi.h".
+ * i386bsd-tdep.c: Include "osabi.h".
+ * i386gnu-tdep.c: Include "osabi.h".
+ * i386ly-tdep.c: Include "osabi.h".
+ * i386nbsd-tdep.c: Include "osabi.h".
+ * i386obsd-tdep.c: Include "osabi.h".
+
+ * mips-tdep.c (struct gdbarch_tdep): Remove osabi member.
+ (mips_gdbarch_init): Don't call gdbarch_lookup_osabi. Don't
+ check osabi when iterating over arches. Update call to
+ gdbarch_init_osabi.
+ (mips_dump_tdep): Don't dump osabi.
+
+ * ns32k-tdep.h: Don't include "osabi.h".
+ (struct gdbarch_tdep): Remove.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Don't call
+ gdbarch_lookup_osabi. Don't iterate over arches. Don't
+ allocate tdep. Update call to gdbarch_init_osabi.
+ (ns32k_dump_tdep): Remove.
+ (_initialize_ns32k_tdep): Update call to gdbarch_register.
+ * ns32knbsd-tdep.c: Include "osabi.h".
+
+ * ppc-tdep.h: Don't include "osabi.h".
+ (struct gdbarch_tdep): Remove osabi member.
+ * rs6000-tdep.c: Include "osabi.h".
+ (rs6000_gdbarch_init): Don't call gdbarch_lookup_osabi. Don't check
+ osabi when iterating over arches. Update call to
+ gdbarch_init_osabi.
+ (rs6000_dump_tdep): Don't dump osabi.
+ * ppc-linux-tdep.c: Include "osabi.h".
+ * ppcnbsd-tdep.c: Include "osabi.h".
+
+ * sh-tdep.h: Don't include "osabi.h".
+ (struct gdbarch_tdep): Remove osabi member.
+ * sh-tdep.c: Include "osabi.h".
+ (sh_gdbarch_init): Don't call gdbarch_lookup_osabi. Don't
+ iterate over arches. Update call to gdbarch_init_osabi.
+ (sh_dump_tdep): Don't dump osabi.
+ * shnbsd-tdep.c: Include "osabi.h".
+
+ * sparc-tdep.c: Include "osabi.h".
+ (sparc_gdbarch_init): Don't call gdbarch_lookup_osabi. Don't
+ iterate over arches. Update call to gdbarch_init_osabi.
+ (sparc_dump_tdep): Don't dump osabi. Do dump the rest of the
+ tdep structure.
+
+ * vax-tdep.h: Don't include "osabi.h".
+ (struct gdbarch_tdep): Remove.
+ * vax-tdep.c: Include "osabi.h".
+ (vax_gdbarch_init): Don't call gdbarch_lookup_osabi. Don't
+ iterate over arches. Don't allocate tdep. Update call
+ to gdbarch_init_osabi.
+ (vax_dump_tdep): Remove.
+ (_initialize_vax_tdep): Update call to gdbarch_register.
+
+2003-01-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * breakpoint.c (insert_breakpoints): Skip disabled breakpoints
+ entirely.
+ (breakpoint_re_set_one): Don't fetch the value for a disabled
+ watchpoint.
+
+2003-01-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * buildsym.h (processing_hp_compilation): Remove obsolete variable.
+ * gdbarch.sh Remove include of "value.h" in gdbarch.h.
+ (COERCE_FLOAT_TO_DOUBLE): Remove.
+ * gdbarch.c: Regenerate.
+ * gdbarch.h: Regenerate.
+ * Makefile.in: Remove value_h from gdbarch_h.
+ * valops.c (coerce_float_to_double): New variable.
+ (default_coerce_float_to_double): Remove.
+ (standard_coerce_float_to_double): Remove.
+ (value_arg_coerce): Use coerce_float_to_double.
+ (_initialize_valops): Add "set coerce-float-to-double".
+ * value.h (default_coerce_float_to_double): Remove prototype.
+ (standard_coerce_float_to_double): Remove prototype.
+
+ * hpread.c (hpread_process_one_debug_symbol): Mark C++ functions as
+ prototyped.
+ * mdebugread.c (parse_symbol): Likewise.
+ * stabsread.c (define_symbol): Mark all functions as prototyped.
+
+ * hppa-tdep.c (hppa_coerce_float_to_double): Remove.
+ * alpha-tdep.c (alpha_gdbarch_init): Remove call to
+ set_gdbarch_coerce_float_to_double.
+ * arm-tdep.c (arm_gdbarch_init): Likewise.
+ * frv-tdep.c (frv_gdbarch_init): Likewise.
+ * h8300-tdep.c (h8300_gdbarch_init): Likewise (commented out).
+ * i386-sol2-tdep.c (i386_sol2_init_abi): Likewise.
+ * mips-tdep.c (mips_gdbarch_init): Likewise.
+ (mips_coerce_float_to_double): Remove.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
+ (rs6000_coerce_float_to_double): Remove.
+ * s390-tdep.c (s390_gdbarch_init): Likewise.
+ * sh-tdep.c (sh_gdbarch_init): Likewise.
+ (sh_coerce_float_to_double): Remove.
+ * sparc-tdep.c (sparc_gdbarch_init): Likewise.
+ (sparc_coerce_float_to_double): Remove.
+ * v850-tdep.c (v850_gdbarch_init): Likewise.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
+ * config/m32r/tm-m32r.h (COERCE_FLOAT_TO_DOUBLE): Remove.
+ * config/pa/tm-hppa.h: (COERCE_FLOAT_TO_DOUBLE): Remove.
+ (hppa_coerce_float_to_double): Remove prototype.
+ * config/sparc/tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Remove.
+
+2003-01-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * regformats/reg-m68k.dat: Remove fpcode and fpflags.
+
+2003-01-04 Daniel Jacobowitz <drow@mvista.com>
+
+ Suggested by Stewart Brown <sb24@avaya.com>:
+ * c-typeprint.c (c_type_print_varspec_prefix): Pass value of show
+ in recursive calls. Handle TYPE_CODE_TYPEDEF.
+ (c_type_print_varspec_suffix): Likewise.
+
+2003-01-04 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Don't set and AC_SUBST SUBDIRS.
+ * configure: Regenerated.
+
+ * configure.in: Remove code dealing with shared libraries.
+ * Makefile.in: Remove HLDFLAGS and HLDENV.
+ * configure: Regenerated.
+
+2003-01-04 Andrew Cagney <ac131313@redhat.com>
+
+ * frame.c (deprecated_frame_xmalloc): New function.
+ (deprecated_set_frame_saved_regs_hack): New function.
+ (deprecated_set_frame_extra_info_hack): New function.
+ * frame.h (deprecated_frame_xmalloc): Declare.
+ (deprecated_set_frame_saved_regs_hack): Declare.
+ (deprecated_set_frame_extra_info_hack): Declare.
+
+2003-01-04 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Move code that provides the --enable-gdbtk option
+ right after the code that handles the --enable-tui option, and
+ polish it somewhat.
+ * configure: Regenerated.
+
+ * configure.in: Call AC_GNU_SOURCE. Check for pread64 using
+ AC_CHECK_FUNCS and remove the old check for pread64.
+ * acinclude.m4 (AC_GNU_SOURCE): New macro.
+ * acconfig.h (_GNU_SOURCE): Add.
+ (HAVE_PREAD64): Remove.
+ * configure, aclocal.m4, config.in: Regenerated.
+
+2003-01-03 Andrew Cagney <ac131313@redhat.com>
+
+ * alpha-tdep.c: Use get_frame_saved_regs.
+ * arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
+ * h8300-tdep.c, i386-tdep.c, ia64-tdep.c, m68hc11-tdep.c: Ditto.
+ * m68k-tdep.c, mcore-tdep.c, mips-tdep.c, mn10300-tdep.c: Ditto.
+ * ns32k-tdep.c, s390-tdep.c, sh-tdep.c, v850-tdep.c: Ditto.
+ * vax-tdep.c, xstormy16-tdep.c: Ditto.
+
+2003-01-03 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Remove all use of the SUBDIRS variable; add
+ directories using the AC_CONFIG_SUBDIRS macro instead. Polish
+ code providing the --enable-multi-ice option, and move it right in
+ front of the code that checks whether gdbserver is supported.
+ Polish that too.
+ * configure: Regenerated.
+ * Makefile.in (SUBDIRS): Substitute @subdirs@ instead of
+ @SUBDIRS@.
+
+2003-01-03 Andrew Cagney <cagney@redhat.com>
+
+ * alpha-tdep.c: Use deprecated_update_frame_base_hack.
+ * avr-tdep.c, cris-tdep.c: Ditto.
+ * mcore-tdep.c, mips-tdep.c, mn10200-tdep.c: Ditto.
+ * sh-tdep.c, sparc-tdep.c, v850-tdep.c: Ditto.
+
+2003-01-03 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Remove --enable-netrom option.
+ * configure: Regenerated.
+
+2003-01-03 Mark Kettenis <kettenis@gnu.org>
+
+ * cli/cli-decode.h: Don't include "gdb_regex.h"; provide a forward
+ declaration for `struct re_pattern_buffer' instead.
+ * Makefile.in (cli_decode_h): Remove $(gdb_regex_h).
+
+2003-01-03 J. Brobecker <brobecker@gnat.com>
+
+ * mdebugread.c (parse_symbol): Count until the stEnd matching
+ the structure name.
+
+2003-01-02 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Remove --with-cpu option.
+ subscripts. Remove evil changequotes here.
+ * acconfig.h (TARGET_CPU_DEFAULT): Remove.
+ * config.in, configure: Regenerated.
+
+ * acconfig.h (DEFAULT_BFD_ARCH, DEFAULT_BFD_VEC): Remove.
+ * configure.in: Cleanup section that sources GDB and BFD configure
+ subscripts. Remove evil changequotes here.
+ * config.in, configure: Regenerated.
+
+2003-01-02 Andrew Cagney <ac131313@redhat.com>
+
+ * arm-tdep.c: Use get_frame_pc and deprecated_update_frame_pc_hack
+ frame accessor methods.
+ * alpha-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
+ * dwarf2cfi.c, h8300-tdep.c, i386-tdep.c, ia64-tdep.c: Ditto.
+ * m68hc11-tdep.c, m68k-tdep.c, mcore-tdep.c, mips-tdep.c: Ditto.
+ * mn10200-tdep.c, mn10300-tdep.c, ns32k-tdep.c: Ditto.
+ * s390-tdep.c, sh-tdep.c, sparc-tdep.c, v850-tdep.c: Ditto.
+ * vax-tdep.c, x86-64-linux-tdep.c, xstormy16-tdep.c: Ditto.
+ * z8k-tdep.c: Ditto.
+
+2003-01-02 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Remove UI_OUT configuration code.
+ * ada-lang.c: Update assuming UI_OUT is always true.
+ * Makefile.in (UIOUT_CFLAGS): Remove.
+ * configure: Regenerated.
+ * TODO: Remove blurb about elimination of -DUI_OUT.
+
+ * configure.in: Move code that provides the --enable-gdbcli,
+ --enable-gdbmi options right before the code that handles the
+ --enable-tui option. Polish a bit.
+ * configure: Regenerated.
+
+ * configure.in: Rewrite check for GNU regex and the
+ --without-included regex option, and move it into the "Checks for
+ library functions" section. This makes us use the system regex
+ again by default on systems with version 2 of the GNU C library.
+ This was apparently broken.
+ * gdb_regex.h [!USE_INCLUDED_REGEX] (_REGEX_RE_COMP): Define.
+ * acconfig.h (USE_INCLUDED_REGEX): Remove.
+ * config.in, configure: Regenerated.
+
+ * configure.in: Move code that provides the --enable-tui option
+ before the "Checks for libraries" section. Polish the code
+ somewhat and set need_curses to yes if we build the TUI. Rewrite
+ code that looks for a library providing termcap functionality to
+ match more closely what's done in the Readline library, and move
+ it into to the "Checks for libraries" section.
+ * configure: Regenerated.
+ * Makefile.in (TERMCAP): Remove variable.
+ * config/i386/go32.mh (TERMCAP): Remove variable.
+
+2003-01-02 Andrew Cagney <ac131313@redhat.com>
+
+ * MAINTAINERS: Mention gdb_mbuild.sh.
+ * gdb_mbuild.sh: Rewrite.
+
+2003-01-02 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Fix typo in last change.
+ * config.in, configure: Regenerated.
+
+2003-01-02 Andrew Cagney <ac131313@redhat.com>
+
+ * valarith.c (value_binop): Delete obsolete code and comments.
+ * configure.host: Ditto.
+ * buildsym.h (make_blockvector): Ditto.
+ * buildsym.c (make_blockvector): Ditto.
+ * defs.h (enum language): Ditto.
+ (chill_demangle): Ditto.
+ * elfread.c (elf_symtab_read): Ditto.
+ * dwarfread.c (CHILL_PRODUCER): Ditto.
+ (set_cu_language): Ditto.
+ (handle_producer): Ditto.
+ * expprint.c (print_subexp): Ditto.
+ * gdbtypes.c (chill_varying_type): Ditto.
+ * gdbtypes.h (builtin_type_chill_bool): Ditto.
+ (builtin_type_chill_char, builtin_type_chill_long): Ditto.
+ (builtin_type_chill_ulong, builtin_type_chill_real): Ditto.
+ (chill_varying_type): Ditto.
+ * language.h (_LANG_chill): Ditto.
+ * language.c (binop_result_type, integral_type): Ditto.
+ (character_type, string_type, structured_type): Ditto.
+ (lang_bool_type, binop_type_check): Ditto.
+ * stabsread.h (os9k_stabs): Ditto.
+ * stabsread.c (os9k_type_vector, dbx_lookup_type): Ditto.
+ (define_symbol, read_type, read_struct_fields): Ditto.
+ (read_array_type, read_enum_type, read_huge_number): Ditto.
+ (read_range_type, start_stabs): Ditto.
+ * symfile.c (init_filename_language_table): Ditto.
+ (add_psymbol_with_dem_name_to_list): Ditto.
+ * symtab.c (symbol_init_language_specific): Ditto.
+ (symbol_init_demangled_name, symbol_demangled_name): Ditto.
+ * symtab.h (struct general_symbol_info): Ditto.
+ (SYMBOL_CHILL_DEMANGLED_NAME): Ditto.
+ * typeprint.c (typedef_print): Ditto.
+ * utils.c (fprintf_symbol_filtered): Ditto.
+ * valops.c (value_cast, search_struct_field, value_slice): Delete
+ obsolete code.
+ (varying_to_slice): Delete function.
+ * value.h (COERCE_VARYING_ARRAY): Delete obsolete macro contents.
+ (varying_to_slice): Delete declaration.
+ * MAINTAINERS: Update.
+
+2003-01-02 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Reorganize "Checks for library functions section"
+ a bit. Remove check for `btowc' and `isascii' functions.
+ * configure: Regenerated.
+
+ * acconfig.h (_MSE_INT_H): Remove.
+ * configure.in: Create "Checks for header files" section, and move
+ appropriate tests there. Don't check for objlist.h, wchar.h,
+ wctype.h and asm/debugreg.h. Rewrite Solaris 2.[78] <curses.h>
+ misdetection fix. Also add "Checks for types", "Checks for
+ compiler characteristics" and "Checks for library functions"
+ sections.
+ * config.in, configure: Regenerated.
+
+ * configure.in: Create "Checks for programs" section, and move
+ appropriate tests there.
+
+2003-01-01 Mark Kettenis <kettenis@gnu.org>
+
+ * configure.in: Create "Checks for libraries" section, and move
+ appropriate tests there. Cleanup check for wctype in libw. Use
+ AC_SEARCH_LIBS to see whether we need libsocket.
+ * configure: Regenerated.
+
+For older changes see ChangeLog-2002
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff --git a/gdb/config/sparc/linux64.mh b/gdb/config/sparc/linux64.mh
new file mode 100644
index 00000000000..c1472de8de8
--- /dev/null
+++ b/gdb/config/sparc/linux64.mh
@@ -0,0 +1,11 @@
+# Host: GNU/Linux UltraSPARC
+NAT_FILE= nm-linux.h
+NATDEPFILES= sparc-nat.o sparc64-nat.o sparc-sol2-nat.o sparc64-linux-nat.o \
+ corelow.o core-regset.o \
+ fork-child.o infptrace.o inftarg.o \
+ proc-service.o thread-db.o lin-lwp.o \
+ linux-proc.o gcore.o linux-nat.o
+
+# The dynamically loaded libthread_db needs access to symbols in the
+# gdb executable.
+LOADLIBES = -ldl -rdynamic
diff --git a/gdb/config/sparc/linux64.mt b/gdb/config/sparc/linux64.mt
new file mode 100644
index 00000000000..4121314318b
--- /dev/null
+++ b/gdb/config/sparc/linux64.mt
@@ -0,0 +1,5 @@
+# Target: GNU/Linux UltraSPARC
+TDEPFILES= sparc64-tdep.o sparc64-sol2-tdep.o sparc64-linux-tdep.o \
+ sparc-tdep.o sparc-sol2-tdep.o sparc-linux-tdep.o \
+ solib.o solib-svr4.o solib-legacy.o
+TM_FILE= tm-linux.h
diff --git a/gdb/config/sparc/nm-sol2.h b/gdb/config/sparc/nm-sol2.h
new file mode 100644
index 00000000000..bc9de3fdf80
--- /dev/null
+++ b/gdb/config/sparc/nm-sol2.h
@@ -0,0 +1,65 @@
+/* Native-dependent definitions for Solaris SPARC.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#ifndef NM_SOL2_H
+#define NM_SOL2_H
+
+#define GDB_GREGSET_T prgregset_t
+#define GDB_FPREGSET_T prfpregset_t
+
+/* Shared library support. */
+
+#include "solib.h"
+
+/* Hardware wactchpoints. */
+
+/* Solaris 2.6 and above can do HW watchpoints. */
+#ifdef NEW_PROC_API
+
+#define TARGET_HAS_HARDWARE_WATCHPOINTS
+
+/* The man page for proc(4) on Solaris 2.6 and up says that the system
+ can support "thousands" of hardware watchpoints, but gives no
+ method for finding out how many; It doesn't say anything about the
+ allowed size for the watched area either. So we just tell GDB
+ 'yes'. */
+#define TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT(SIZE) 1
+
+/* When a hardware watchpoint fires off the PC will be left at the
+ instruction following the one which caused the watchpoint. It will
+ *NOT* be necessary for GDB to step over the watchpoint. */
+#define HAVE_CONTINUABLE_WATCHPOINT 1
+
+extern int procfs_stopped_by_watchpoint (ptid_t);
+#define STOPPED_BY_WATCHPOINT(W) \
+ procfs_stopped_by_watchpoint(inferior_ptid)
+
+/* Use these macros for watchpoint insertion/deletion. TYPE can be 0
+ (write watch), 1 (read watch), 2 (access watch (read/write). */
+
+extern int procfs_set_watchpoint (ptid_t, CORE_ADDR, int, int, int);
+#define target_insert_watchpoint(ADDR, LEN, TYPE) \
+ procfs_set_watchpoint (inferior_ptid, ADDR, LEN, TYPE, 1)
+#define target_remove_watchpoint(ADDR, LEN, TYPE) \
+ procfs_set_watchpoint (inferior_ptid, ADDR, 0, 0, 0)
+
+#endif /* NEW_PROC_API */
+
+#endif /* nm-sol2.h */
diff --git a/gdb/config/sparc/obsd.mt b/gdb/config/sparc/obsd.mt
new file mode 100644
index 00000000000..800cb048eac
--- /dev/null
+++ b/gdb/config/sparc/obsd.mt
@@ -0,0 +1,4 @@
+# Target: OpenBSD/sparc
+TDEPFILES= sparc-tdep.o sparcnbsd-tdep.o sparcobsd-tdep.o nbsd-tdep.o \
+ corelow.o solib.o solib-svr4.o
+TM_FILE= tm-nbsd.h
diff --git a/gdb/config/sparc/obsd64.mt b/gdb/config/sparc/obsd64.mt
new file mode 100644
index 00000000000..a69281754c4
--- /dev/null
+++ b/gdb/config/sparc/obsd64.mt
@@ -0,0 +1,5 @@
+# Target: OpenBSD/sparc64
+TDEPFILES= sparc64-tdep.o sparc64nbsd-tdep.o sparc64obsd-tdep.o \
+ sparc-tdep.o sparcnbsd-tdep.o nbsd-tdep.o \
+ corelow.o solib.o solib-svr4.o
+TM_FILE= tm-nbsd.h
diff --git a/gdb/config/sparc/sol2-64.mt b/gdb/config/sparc/sol2-64.mt
new file mode 100644
index 00000000000..92f848929fe
--- /dev/null
+++ b/gdb/config/sparc/sol2-64.mt
@@ -0,0 +1,3 @@
+# Target: Solaris UltraSPARC
+TDEPFILES= sparc64-tdep.o sparc64-sol2-tdep.o sparc-tdep.o sparc-sol2-tdep.o
+TM_FILE= tm-sol2.h
diff --git a/gdb/config/sparc/sol2.mh b/gdb/config/sparc/sol2.mh
new file mode 100644
index 00000000000..735b9ee8096
--- /dev/null
+++ b/gdb/config/sparc/sol2.mh
@@ -0,0 +1,6 @@
+# Host: Solaris SPARC & UltraSPARC
+NAT_FILE= nm-sol2.h
+NATDEPFILES= sparc-sol2-nat.o \
+ corelow.o core-regset.o fork-child.o gcore.o \
+ procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o \
+ solib.o solib-svr4.o solib-legacy.o
diff --git a/gdb/config/sparc/sol2.mt b/gdb/config/sparc/sol2.mt
new file mode 100644
index 00000000000..4037956317c
--- /dev/null
+++ b/gdb/config/sparc/sol2.mt
@@ -0,0 +1,3 @@
+# Target: Solaris SPARC
+TDEPFILES= sparc-tdep.o sparc-sol2-tdep.o
+TM_FILE= tm-sol2.h
diff --git a/gdb/config/sparc/sparc.mt b/gdb/config/sparc/sparc.mt
new file mode 100644
index 00000000000..ea78c97af55
--- /dev/null
+++ b/gdb/config/sparc/sparc.mt
@@ -0,0 +1,2 @@
+# Target: SPARC
+TDEPFILES= sparc-tdep.o
diff --git a/gdb/config/sparc/sparc64.mt b/gdb/config/sparc/sparc64.mt
new file mode 100644
index 00000000000..b1082be4956
--- /dev/null
+++ b/gdb/config/sparc/sparc64.mt
@@ -0,0 +1,2 @@
+# Target: UltraSPARC
+TDEPFILES= sparc-tdep.o sparc64-tdep.o
diff --git a/gdb/config/sparc/tm-sol2.h b/gdb/config/sparc/tm-sol2.h
new file mode 100644
index 00000000000..d111c1a7768
--- /dev/null
+++ b/gdb/config/sparc/tm-sol2.h
@@ -0,0 +1,40 @@
+/* Target-dependent definitions for Solaris SPARC.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#ifndef TM_SOL2_H
+#define TM_SOL2_H
+
+#define GDB_MULTI_ARCH GDB_MULTI_ARCH_TM
+
+/* The Sun compilers (Sun ONE Studio, Forte Developer, Sun WorkShop,
+ SunPRO) compiler puts out 0 instead of the address in N_SO stabs.
+ Starting with SunPRO 3.0, the compiler does this for N_FUN stabs
+ too. */
+#define SOFUN_ADDRESS_MAYBE_MISSING
+
+/* The Sun compilers also do "globalization"; see the comment in
+ sparc-tdep.c for more information. */
+extern char *sparc_stabs_unglobalize_name (char *name);
+#define STATIC_TRANSFORM_NAME(name) \
+ sparc_stabs_unglobalize_name (name)
+#define IS_STATIC_TRANSFORM_NAME(name) \
+ ((name) != sparc_stabs_unglobalize_name (name))
+
+#endif /* tm-sol2.h */
diff --git a/gdb/config/sparc/tm-vxworks.h b/gdb/config/sparc/tm-vxworks.h
new file mode 100644
index 00000000000..7b0474847c6
--- /dev/null
+++ b/gdb/config/sparc/tm-vxworks.h
@@ -0,0 +1,31 @@
+/* Target-dependent defenitions for VxWorks SPARC.
+
+ Copyright 1993, 1999, 2004 Free Software Foundation, Inc.
+ Contributed by Cygnus Support.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef TM_VXWORKS_H
+#define TM_VXWORKS_H
+
+#define GDB_MULTI_ARCH GDB_MULTI_ARCH_TM
+
+/* Get generic VxWorks definitions. */
+#include "config/tm-vxworks.h"
+
+#endif /* tm-vxworks.h */
diff --git a/gdb/config/sparc/vxworks.mt b/gdb/config/sparc/vxworks.mt
new file mode 100644
index 00000000000..175f92ed981
--- /dev/null
+++ b/gdb/config/sparc/vxworks.mt
@@ -0,0 +1,4 @@
+# Target: VxWorks SPARC
+TDEPFILES= sparc-tdep.o \
+ remote-vx.o remote-vxsparc.o xdr_ld.o xdr_ptrace.o xdr_rdb.o
+TM_FILE= tm-vxworks.h
diff --git a/gdb/mi/ChangeLog-1999-2003 b/gdb/mi/ChangeLog-1999-2003
new file mode 100644
index 00000000000..4821597f8d6
--- /dev/null
+++ b/gdb/mi/ChangeLog-1999-2003
@@ -0,0 +1,2180 @@
+2003-11-06 Andrew Cagney <cagney@redhat.com>
+
+ * mi-cmd-var.c (mi_cmd_var_set_format): Replace STREQN with
+ strncmp.
+
+2003-10-24 Andrew Cagney <cagney@redhat.com>
+
+ * tui-out.c: Fix "fortunatly"[sic].
+
+2003-10-02 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c: Rename REGISTER_RAW_SIZE to
+ DEPRECATED_REGISTER_RAW_SIZE.
+
+2003-09-30 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c: Rename REGISTER_VIRTUAL_SIZE to
+ DEPRECATED_REGISTER_VIRTUAL_SIZE.
+
+2003-09-17 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c: Rename REGISTER_BYTE to DEPRECATED_REGISTER_BYTE.
+
+2003-09-10 Elena Zannoni <ezannoni@redhat.com>
+
+ * mi-main.c (mi_setup_architecture_data): Don't use
+ DEPRECATED_REGISTER_BYTES because some architecture don't set it
+ and its default is 0.
+
+2003-08-08 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c (captured_mi_execute_command): Add "mi2" and "mi3" to
+ interpreters that hack around CLI.
+ * mi-interp.c (mi3_command_loop): New function.
+ (mi_interpreter_resume): Check for "mi3", default to "mi2".
+
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * mi-interp.c (_initialize_mi_interp): Register "mi2" and "mi3".
+ Make "mi" select "mi2".
+
+2003-08-05 Andrew Cagney <cagney@redhat.com>
+
+ * mi-cmd-env.c (env_execute_cli_command): Use an explicit "%s %s"
+ when constructing the run command.
+ (mi_cmd_env_cd, mi_cmd_env_path, mi_cmd_env_dir): Simplify command
+ string removing the "%s".
+
+2003-08-04 Andrew Cagney <cagney@redhat.com>
+
+ * mi-cmds.h (struct mi_cli): Define.
+ (struct mi_cmd): Change type of "cli" to "struct mi_cli".
+ * mi-cmds.c (mi_cmds): Update table.
+ * mi-parse.c (mi_parse): Update.
+ * mi-main.c (mi_execute_cli_command): Add "args_p" parameter, make
+ others constant.
+ (mi_cmd_execute): Update call.
+ (captured_mi_execute_command): Ditto.
+
+2003-08-04 David Carlton <carlton@kealia.com>
+
+ * mi-main.c (mi_error_last_message): Add "%s" second argument to
+ xasprintf call.
+
+2003-06-28 Daniel Jacobowitz <drow@mvista.com>
+
+ * mi-out.c (mi_ui_out_impl): Add NULL for redirect member.
+
+2003-06-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * mi-cmds.c (mi_cmds): Add "-target-disconnect".
+
+2003-06-11 David Carlton <carlton@bactrian.org>
+
+ * mi-cmd-stack.c: Include dictionary.h.
+ (list_args_or_locals): Update use of ALL_BLOCK_SYMBOLS.
+
+2003-06-11 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c (get_register): Replace REGISTER_CONVERTIBLE with
+ DEPRECATED_REGISTER_CONVERTIBLE.
+
+2003-06-08 Andrew Cagney <cagney@redhat.com>
+
+ * mi-parse.c (_initialize_mi_parse): Delete function.
+ * mi-main.c: Include "mi-main.h".
+ * mi-interp.c (_initialize_mi_interp): Add declaration.
+ * mi-cmd-stack.c: Include "stack.h".
+ (select_frame_command_wrapper): Delete extern declaration.
+ (mi_cmd_stack_select_frame): Replace select_frame_command_wrapper
+ with select_frame_command.
+
+2003-05-16 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c (mi_setup_architecture_data):
+
+2003-05-12 Elena Zannoni <ezannoni@redhat.com>
+
+ * mi-mi-cmd-stack.c (list_args_or_locals): Rename VAR_NAMESPACE to
+ VAR_DOMAIN.
+
+2003-05-11 Andrew Cagney <cagney@redhat.com>
+
+ * mi-symbol-cmds.c: Rename "mi-cmd-symbol.c", avoid 8.3 problem.
+
+2003-05-08 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c (register_changed_p): Use MAX_REGISTER_SIZE instead of
+ MAX_REGISTER_RAW_SIZE.
+
+2003-05-08 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c (get_register): Use MAX_REGISTER_SIZE.
+
+2003-05-05 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c (mi_cmd_data_write_register_values): Replace
+ REGISTER_SIZE with DEPRECATED_REGISTER_SIZE.
+
+2003-05-03 J. Brobecker <brobecker@gnat.com>
+
+ From Thierry Schneider <tpschneider1@yahoo.com>:
+ * mi-cmds.h (mi_cmd_symbol_list_lines): Add declaration.
+ * mi-cmds.c (mi_cmds): Add entry for new MI command.
+ * mi-cmd-symbol.c (mi_cmd_symbol_list_lines): New source file
+ for all symbol-related commands.
+
+2003-04-02 Bob Rossi <bob_rossi@cox.net>
+
+ * mi-cmd-file.c: New file to implement mi file commands.
+ * mi-getopt.c (mi_valid_noargs): Added mi_valid_noargs to verify
+ if a set of parameters passed to an MI function has no arguments
+ * mi-getopt.h (mi_valid_noargs): Declare.
+ * mi-cmds.c (mi_cmds): Added -file-list-exec-source-file command.
+ * mi-cmds.h (mi_cmd_file_list_exec_source_file): Declare.
+
+2003-03-27 Andrew Cagney <cagney@redhat.com>
+
+ * gdbmi.texinfo: Delete file. Contents moved to
+ ../doc/gdb.texinfo.
+
+2003-03-12 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c (get_register): Use frame_register instead of
+ get_saved_register.
+
+2003-03-08 Andrew Cagney <cagney@redhat.com>
+
+ * mi-out.c: Update copyright.
+ (mi_out_data): Define typedef. Use instead of ui_out_data.
+
+2003-03-01 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c (get_register): Use register_type instead of
+ REGISTER_VIRTUAL_TYPE.
+
+2003-02-25 David Carlton <carlton@math.stanford.edu>
+
+ * mi-cmd-stack.c: Replace all instances of SYMBOL_NAME with
+ DEPRECATED_SYMBOL_NAME. Update copyright.
+
+2003-02-21 Daniel Jacobowitz <drow@mvista.com>
+
+ * mi-cmd-stack.c (list_args_or_locals): Handle LOC_COMPUTED and
+ LOC_COMPUTED_ARG.
+
+2003-02-19 David Carlton <carlton@math.stanford.edu>
+
+ * mi-cmd-stack.c: #include "block.h"
+
+2003-02-09 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-interp.c (mi_remove_notify_hooks): Convert function
+ definition to ISO C.
+
+2003-02-06 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-cmd-env.c: Include "gdb_stat.h" instead of <sys/stat.h>.
+
+2003-02-04 Jim Ingham <jingham@apple.com>
+ Keith Seitz <keiths@redhat.com>
+ Elena Zannoni <ezannoni@redhat.com>
+ Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.h: New file.
+ * mi-interp.c: New file.
+ * mi-main.c: Include "interps.h".
+ (mi_error_message): Make global.
+ (mi_input): Delete static function, moved to "mi-interp.c".
+ (mi_execute_command, mi_execute_command_wrapper): Ditto.
+ (mi_command_loop, mi1_command_loop, mi2_command_loop): Ditto.
+ (mi_load_progress): Make non-static.
+ (mi_error_last_message): New function.
+ (captured_mi_execute_command): If the interpreter changed, don't
+ print anything.
+ (mi_load_progress): Use current_interp_named_p.
+ (mi_init_ui): Delete function.
+ (_initialize_mi_main): Don't install the mi interpreter, handled
+ by "mi-interp.c".
+ (mi_exec_async_cli_cmd_continuation): Make static.
+ * mi-console.h (mi_console_file_new): Add `quote' parameter.
+ * mi-console.c (struct mi_console_file): Add `quote'.
+ (mi_console_file_new): Add `quote' parameter. Initialize `quote'.
+ (mi_console_raw_packet): Only quote the output when `quote'.
+ * mi-cmds.h (mi_cmd_interpreter_exec): Declare.
+ (mi_error_message, mi_error_last_message): Declare.
+ (mi_execute_command): Declare.
+ * mi-cmds.c: Add `interpreter-exec' command.
+
+2003-02-04 Andrew Cagney <ac131313@redhat.com>
+
+ From Keith Seitz <keiths@redhat.com>:
+ * gdbmi.texinfo (GDB/MI Miscellaneous Commands): Document the
+ interpreter-exec command.
+
+2003-02-02 Andrew Cagney <ac131313@redhat.com>
+
+ From 2002-11-10 Jason Molenda (jason-cl@molenda.com):
+ * mi-cmd-var.c (mi_cmd_var_list_children): CHILDREN field is
+ now a list; still a tuple when in mi1.
+ * gdbmi.texinfo: Update var-list-children example.
+
+2003-01-13 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-cmd-env.c: Update copyright.
+
+2003-01-13 Elena Zannoni <ezannoni@redhat.com>
+
+ * mi-main.c (mi_cmd_exec_return): Use print_stack_frame instead of
+ show_and_print_stack_frame.
+
+2003-01-09 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-cmd-env.c: Include "gdb_string.h" instead of <string.h>.
+ Move all includes to after "defs.h".
+
+2002-12-13 Jeff Johnston <jjohnstn@redhat.com>
+
+ * mi-cmds.c (-environment-directory) Change to use mi_cmd_env_dir,
+ (-environment-cd): Change to use mi_cmd_env_cd,.
+ (-environment-pwd): Change to use mi_cmd_env_pwd.
+ (-environment-path): Change to use mi_cmd_env_path.
+ * mi-cmds.h (mi_cmd_env_cd, mi_cmd_env_dir): New prototypes.
+ (mi_cmd_env_path, mi_cmd_env_pwd): Ditto.
+ * mi-cmd-env.c: New file. Part of fix for PR gdb/741.
+ * gdbmi.texinfo (environment-cd): Update output and example.
+ (environment-pwd): Ditto.
+ (environment-dir): Update output, description, and examples.
+ (environment-path): Ditto.
+
+2002-11-29 Andrew Cagney <ac131313@redhat.com>
+
+ * mi/mi-cmd-stack.c, mi/mi-main.c: Update to use
+ deprecated_selected_frame.
+
+2002-11-13 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_cmd_data_write_register_values): Use
+ deprecated_write_register_bytes instead of write_register_bytes.
+
+2002-11-11 Jeff Johnston <jjohnstn@redhat.com>
+
+ * gdbmi.texinfo (-var-assign): Add comments about interaction
+ with -var-update and add an example. Part of fix for gdb/702.
+
+2002-11-08 Jeff Johnston <jjohnstn@redhat.com>
+
+ * mi-main.c (mi_command_loop): Initialize raw_stdout and gdb_stdout
+ only if mi version is <= 1.
+ (mi_init_ui): Initialize raw_stdout and gdb_stdout if mi version
+ is > 1 so startup message is treated as console output. This is
+ part of fix for PR gdb/604.
+
+2002-11-06 Jeff Johnston <jjohnstn@redhat.com>
+
+ * mi-cmd-var.c (mi_cmd_var_create): Change the function used to
+ parse the frame addr from parse_and_eval_address() to
+ string_to_core_addr(). This is a fix for PR gdb/494.
+
+2002-10-23 Jeff Johnston <jjohnstn@redhat.com>
+
+ * mi-cmd-var.c: Change all remaining occurrences of ui_out_tuple_begin
+ to make_cleanup_ui_out_tuple_begin_end. Change all remaining
+ occurrences of ui_out_list_begin to make_cleanup_ui_out_list_begin_end.
+ Use do_cleanups instead of ui_out_list_end or ui_out_tuple_end. This
+ is a fix for PR gdb/680.
+ * mi-cmd-stack.c: Ditto.
+ * mi-main.c: Ditto.
+
+2002-10-22 Keith Seitz <keiths@redhat.com>
+
+ * mi-main.c (mi_cmd_thread_select): Only return MI_CMD_CAUGHT_ERROR
+ when we really did catch an error(). If we got GDB_RC_FAIL, return
+ MI_CMD_ERROR instead.
+
+2002-10-03 Jeff Johnston <jjohnstn@redhat.com>
+
+ * gdbmi.texinfo: Fix examples that show frames to remove
+ extraneous blank in level field. Part of fix for PR gdb/192.
+
+2002-10-03 Jeff Johnston <jjohnstn@redhat.com>
+
+ * mi-cmd-var.c (mi_cmd_var_update): Fix for PR gdb/672. For m2,
+ output list begin and end for "changelist" rather than tuple begin/end.
+ (varobj_update_one): For m2, add tuple begin and end for varobj
+ update output.
+
+2002-10-02 Elena Zannoni <ezannoni@redhat.com>
+
+ * mi-main.c (mi_cmd_exec_return): Don't use
+ return_command_wrapper, use return_command instead.
+ (mi_cmd_exec_interrupt): Don't use
+ interrupt_target_command_wrapper, use interrupt_target_command
+ instead.
+ (return_command_wrapper, interrupt_target_command_wrapper):
+ Delete.
+ Include frame.h.
+
+2002-10-01 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi2_command_loop): New function.
+ (mi0_command_loop): Delete function.
+ (_initialize_mi_main): Recognize, and default to, "mi2". Do not
+ recognize "mi0".
+ * mi-out.c (mi_table_begin): Remove mi0 code.
+ (mi_table_body, mi_table_end): Ditto.
+ (mi_table_header, mi_open, mi_close): Ditto.
+
+2002-09-29 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (mi_version): New function.
+ * mi-out.h (mi_version): Declare.
+
+2002-09-27 Andrew Cagney <ac131313@redhat.com>
+
+ From 2002-07-12 Mo DeJong <supermo@bayarea.net>
+ * gdbmi.texinfo (var-evaluate-expression): Note that
+ var-list-children must be invoked before child variable
+ values can be evaluated.
+
+2002-09-26 Elena Zannoni <ezannoni@redhat.com>
+
+ * mi-cmd-disas.c (dump_insns): Add text only output for CLI.
+ (do_mixed_source_and_assembly): Ditto.
+
+2002-09-11 Keith Seitz <keiths@redhat.com>
+
+ * mi-main.c (mi_cmd_data_list_register_names): Use cleanups
+ for the uiout list. Do the cleanups when returning an error.
+ (mi_cmd_data_list_changed_registers): Ditto.
+ (mi_cmd_data_list_register_values): Use cleanups for the uiout list
+ and tuples. Do the cleanups when returning errors.
+
+2002-07-29 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-cmd-var.c: Include "gdb_string.h".
+ * mi-cmd-disas.c: Ditto.
+
+2002-06-17 Keith Seitz <keiths@redhat.com>
+
+ * gdbmi.texinfo: Update command examples with real MI behavior.
+
+2002-05-20 Keith Seitz <keiths@redhat.com>
+
+ * mi-main.c (captured_mi_execute_command): Add uiout parameter.
+ "data" is now a structure which is used to pass data to/from this
+ function to mi_execute_command.
+ Modify function to comply with requirements from catch_exceptions.
+ Store real return result and command's return result in data.
+ (mi_execute_command): Use catch_exceptions.
+ Use enum to handle actions to be performed instead of overloading
+ catch_errors return result and the mi return result.
+
+2002-04-14 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_cmd_exec_return):
+
+2002-04-09 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (register_changed_p): Use frame_register_read instead
+ of read_relative_register_raw_bytes.
+ (get_register): Delete out-of-date comment.
+
+2002-04-07 Elena Zannoni <ezannoni@redhat.com>
+
+ * mi-cmd-disas.c: Run through indent.
+
+2002-04-07 Elena Zannoni <ezannoni@redhat.com>
+
+ * mi-cmd-disas.c (dump_insns): New function.
+ (do_mixed_source_and_assembly): New function.
+ (do_assembly_only): New function.
+ (do_disassembly): New function.
+ (mi_cmd_disassemble): Rewrite using smaller, more modular
+ functions.
+
+2002-04-05 Jim Blandy <jimb@redhat.com>
+
+ * mi-cmd-stack.c (list_args_or_locals): Pass new arg to
+ get_frame_block. (See entry in gdb/ChangeLog.)
+
+2002-04-05 Elena Zannoni <ezannoni@redhat.com>
+
+ * mi-cmd-disas.c (mi_cmd_disassemble): Use TARGET_PRINT_INSN
+ instead of tm_print_insn.
+ Update copyright year.
+
+2002-04-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * mi-cmd-disas.c (mi_cmd_disassemble): Skip end-of-function
+ markers in the line table.
+
+2002-03-15 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (XMALLOC): Delete macro.
+ * mi-out.c (XMALLOC): Ditto.
+ * mi-parse.c (XMALLOC): Ditto.
+ * mi-console.c (XMALLOC): Ditto.
+ * mi-cmd-var.c (XMALLOC): Ditto.
+ * mi-cmd-break.c (XMALLOC): Ditto.
+
+ * mi/mi-cmd-var.c, mi/mi-console.c, mi/mi-out.c: Update copyright
+ * mi/mi-parse.c: Ditto.
+
+2002-02-24 Andrew Cagney <ac131313@redhat.com>
+
+ From wiz at danbala:
+ * gdbmi.texinfo: Fix grammar and typos.
+ Fix PR gdb/287.
+
+2002-02-03 Jim Blandy <jimb@redhat.com>
+
+ * mi-cmd-stack.c (list_args_or_locals): Move declaration of
+ print_me inside the loop body, so it gets re-initialized every
+ iteration. The cases for the different symbol kinds leave
+ print_me unchanged if they don't want the symbol printed.
+
+2002-01-22 Andrew Cagney <ac131313@redhat.com>
+
+ * gdbmi.texinfo: Remove makeinfo 3.12 hacks.
+
+2002-01-21 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-cmd-stack.c: Remove #else clause of #ifdef UI_OUT.
+ * mi-cmd-break.c: Ditto.
+ * mi-main.c: Ditto.
+
+2001-12-30 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * gdbmi.texinfo: Fix the application of GFDL in the Copyright notice.
+
+2001-10-12 Daniel Jacobowitz <drow@mvista.com>
+
+ * mi-cmd-stack.c (list_args_or_locals): Use ALL_BLOCK_SYMBOLS.
+
+2001-09-18 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_cmd_thread_select): Pass uiout to
+ gdb_thread_select.
+ (mi_cmd_thread_list_ids): Pass uiout to gdb_list_thread_ids.
+
+ * mi-cmd-break.c (breakpoint_notify): Pass uiout to
+ gdb_breakpoint_query.
+
+2001-08-17 Keith Seitz <keiths@redhat.com>
+
+ * mi-cmd-var.c (varobj_update_one): Update call to
+ varobj_update to reflect recent api change.
+
+2001-07-26 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c: Include "gdb.h".
+ * mi-cmd-break.c: Include "gdb.h".
+
+2001-07-12 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_execute_command): Flush output after ``(gdb)''
+ prompt. Bug reported by David Whedon.
+ (mi_execute_async_cli_command): Ditto.
+ (mi_exec_async_cli_cmd_continuation): Ditto.
+ (mi_command_loop): Ditto.
+
+2001-07-10 Mark Kettenis <kettenis@gnu.org>
+
+ * mi-out.c (mi_out_new): Initialize suppress_ouput field of newly
+ created `struct ui_out_data'.
+
+2001-07-09 Kevin Buettner <kevinb@redhat.com>
+
+ * mi-main.c (register_changed_p, get_register): Use alloca()
+ to allocate space previously allocated via gcc's
+ variable-length array extension.
+ (mi_cmd_data_write_register_values, mi_cmd_data_write_memory):
+ Change type of ``buffer'' to ``void *''. Don't cast return value
+ from xmalloc(). Add a cleanup to free the xmalloc'd buffer.
+
+2001-07-07 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_cmd_data_evaluate_expression): Replace value_ptr
+ with `struct value *'.
+
+2001-07-08 Kevin Buettner <kevinb@redhat.com>
+
+ * mi-out.c (mi_table_header, mi_field_int, mi_field_skip)
+ (mi_field_string) Make function declarators match earlier
+ declarations.
+
+2001-07-04 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (mi_ui_out_impl): Initialize is_mi_like_p to one.
+
+2001-06-27 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (mi_table_begin): Include nr_cols and nr_rows in mi1
+ table output.
+ * mi-out.c (mi_table_begin): Only suppress output when mi0. Change
+ the header to a list.
+ (mi_table_body): For mi1, close the header list and open a table
+ body list.
+ (mi_table_end): For mi1, close the body list.
+ (mi_table_header): For mi1, output a tuple containing all the
+ header information.
+ (mi_open, mi_close): Reverse logic of mi_version test.
+ * gdbmi.texinfo (GDB/MI Breakpoint Table Commands): Update.
+
+2001-06-26 Andrew Cagney <ac131313@redhat.com>
+
+ * gdbmi.texinfo (GDB/MI Output Syntax): Delete reference to query
+ packet.
+
+2001-06-26 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-cmd-stack.c (list_args_or_locals): Output a list of "args" or
+ "locals" entries.
+ * gdbmi.texinfo (stack-list-locals, stack-list-arguments)
+ (exec-interrupt, target-select, thread-select): Update
+ documentation.
+
+2001-06-26 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-cmd-stack.c (mi_cmd_stack_list_frames): Output a list of
+ "stack" entries.
+ (mi_cmd_stack_list_args): Ditto for "stack-args".
+ * gdbmi.texinfo (stack-list-frames, stack-list-arguments): Update
+ documentation.
+ (GDB/MI Stack Manipulation Commands): Fix section title. Was
+ Stack Manipulation Commands in GDB/MI.
+
+2001-06-25 Andrew Cagney <ac131313@redhat.com>
+
+ * gdbmi.texinfo: Update output examples that contain stop reason
+ output, change the args=.... to a list.
+ (exec-return): Ditto.
+
+2001-06-25 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_cmd_data_read_memory): Output the memory contents
+ - memory and data - as a list.
+ * gdbmi.texinfo (data-read-memory): Update documentation.
+
+2001-06-25 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_cmd_data_list_register_values): Output a list of
+ register values.
+ * gdbmi.texinfo (data-list-register-values): Update documentation.
+
+2001-06-25 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_cmd_data_list_register_names): Output a list of
+ register names.
+ (mi_cmd_data_list_register_names): Include the pseudo registers.
+ (mi_cmd_data_list_register_names): Don't leave holes in the list,
+ output "" for NULL registers.
+ * gdbmi.texinfo (data-list-register-names): Update documentation.
+
+2001-06-23 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_cmd_data_list_changed_registers): Output a list of
+ register numbers.
+ * gdbmi.texinfo (data-list-changed-registers): Update
+ documentation.
+
+2001-06-23 Andrew Cagney <ac131313@redhat.com>
+
+ * gdbmi.texinfo (data-disassemble): Update documentation of
+ output. Produces a list of instructions and a list of source
+ lines.
+
+2001-06-22 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-cmd-disas.c (mi_cmd_disassemble): For "-data-disassemble",
+ output a list instead of a tupple.
+
+2001-06-21 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (struct ui_out_data): Replace field first_header with
+ suppress_output.
+ (mi_begin, mi_end): Check suppress_header.
+ (mi_field_int, mi_field_skip): Ditto.
+ (mi_field_string, mi_field_fmt): Ditto.
+ (mi_table_begin): When nr_rows is zero, set suppress_header else,
+ output the start of the header.
+ (mi_table_body): Clear suppress header.
+
+2001-06-21 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (mi_open): For lists, when mi_version > 0, use ``[''.
+ (mi_close): Ditto for ``]''.
+
+2001-06-20 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (mi_table_header): Add parameter ``col_name''.
+
+2001-06-18 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c: Include "gdb_assert.h".
+ (mi_table_begin): Add parameter ``nr_rows''.
+
+2001-06-18 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c: Use strncmp as the "mi" test. Allow "mi", "mi0" and
+ "mi1".
+ (mi_command_loop): Add parameter mi_version, pass to mi_out_new.
+ (mi1_command_loop, mi0_command_loop): New functions.
+ (_initialize_mi_main): Recognize "mi", "mi0" and "mi1".
+ * mi-out.c (mi_out_new): Add parameter mi_version.
+ (struct ui_out_data): Add field mi_version.
+ * mi-out.h (mi_out_new): Update.
+
+2001-06-07 Andrew Cagney <ac131313@redhat.com>
+
+ * gdbmi.texinfo (GDB/MI Output Syntax): Add tuples and lists to
+ syntax.
+ (GDB/MI Draft Changes to Output Syntax): Delete section.
+
+Mon Jun 11 17:22:25 2001 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-out.c: Fix typo. s/supress/suppress/.
+
+2001-06-09 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (mi_table_end, mi_table_begin, mi_begin, mi_end): Move
+ supress_field_separator updates from here.
+ (mi_open, mi_close): To here.
+ (mi_open): Add parameter name. Output a field_separator.
+ (mi_table_begin): Update.
+ (mi_table_header): Update.
+ (mi_begin): Update.
+
+2001-06-09 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (mi_table_begin): Make char* parameters constant.
+ (mi_table_header): Ditto.
+ (mi_field_int): Ditto.
+ (mi_field_skip): Ditto.
+ (mi_field_string): Ditto.
+ (mi_field_fmt): Ditto.
+ (mi_text): Ditto.
+ (mi_message): Ditto.
+
+2001-05-12 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (mi_close, mi_open): Output ``[]'' when a list.
+
+Fri May 11 13:55:07 2001 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmd-var.c: Replace ui_out_list_begin, ui_out_list_end and
+ make_cleanup_ui_out_list_end with ui_out_tupple_begin,
+ ui_out_tupple_end and make_cleanup_ui_out_tupple_begin_end.
+ * mi-cmd-stack.c: Ditto.
+ * mi-cmd-disas.c: Ditto.
+ * mi-main.c: Ditto.
+
+2001-05-10 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (mi_open, mi_close): Replace list_open and list_close.
+ (mi_table_begin): Update.
+ (mi_table_header): Update.
+ (mi_begin): Update.
+ (mi_table_body): Update.
+ (mi_table_end): Update.
+ (mi_end): Update.
+
+Thu May 10 16:28:13 2001 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_execute_async_cli_command): Always initialize
+ old_cleanups.
+
+2001-05-08 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.c (mi_begin, mi_end): Replace mi_list_begin and
+ mi_list_end.
+ (mi_ui_out_impl): Update.
+
+2001-03-28 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_cmd_data_read_memory): Use xcalloc.
+
+2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * gdbmi.texinfo: Update copyright. Change Permissions to GFDL.
+
+2001-03-20 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-cmd-disas.c (mi_cmd_disassemble): Initialize ``file_string''
+ and ``line_num''. Consolidate declaration of argument variables.
+
+2001-03-19 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-out.h: Remove #ifdef __STDC__.
+
+2001-03-08 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-main.c (mi_cmd_data_list_register_names): Use NUM_REGS, not
+ ARCH_NUM_REGS.
+ (mi_cmd_data_list_changed_registers): Ditto.
+ (mi_cmd_data_list_register_values): Ditto.
+ (mi_cmd_data_write_register_values): Ditto.
+
+2001-03-06 Kevin Buettner <kevinb@redhat.com>
+
+ * gdbmi.texinfo, mi-cmd-disas.c, mi-cmd-stack.c, mi-cmd-var.c,
+ mi-cmds.c, mi-cmds.h, mi-console.c, mi-console.h, mi-getopt.c,
+ mi-getopt.h, mi-out.c, mi-out.h, mi-parse.c, mi-parse.h:
+ Update/correct copyright notices.
+
+Wed Feb 7 19:50:37 2001 Andrew Cagney <cagney@redhat.com>
+
+ * mi-getopt.c: Add __FILE__ and __LINE__ parameter to calls to
+ internal_error.
+ * mi-console.c: Ditto.
+ * mi-cmds.c: Ditto.
+ * mi-cmd-break.c: Ditto.
+
+2001-01-27 Fernando Nasser <fnasser@redhat.com>
+
+ From Momchil Velikov <velco@fadata.bg>
+ * mi-cmd-disas.c (gdb_dis_asm_read_memory): Add missing memory
+ attributes argument in the call to `xfer_memory'.
+
+2000-12-14 Kevin Buettner <kevinb@redhat.com>
+
+ * mi-cmd-disas.c, mi-cmd-var.c, mi-console.c, mi-main.c,
+ mi-parse.c: Replace occurrences of free() with xfree().
+
+Fri Nov 17 16:07:23 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c: Replace asprintf with xasprintf.
+ * mi-cmd-var.c (mi_cmd_var_create): Ditto.
+
+2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * gdbmi.texinfo (GDB/MI Variable Objects): Dimensions of
+ multitable changed to "@columnfractions .4 .6". Suggested by
+ Dmitry Sivachenko <dima@Chg.RU>.
+
+2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * gdbmi.texinfo: Change flathead -> @sc{gdb/mi}.
+ Fix typos and markup mistakes (from Dmitry S.
+ Sivachenko <dima@Chg.RU>).
+
+2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * gdbmi.texinfo: Change GDB -> @value{GDBN}, and
+ (gdb) -> (@value{GDBP}). Fix a few typos and some markup. From
+ Dmitry S. Sivachenko <dima@Chg.RU>.
+
+Tue May 16 14:13:41 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_cmd_execute): Use free_current_contents.
+ (free_and_reset): Delete.
+
+Mon May 15 16:17:56 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_cmd_data_assign, mi_cmd_data_evaluate_expression),
+ mi-cmd-var.c (mi_cmd_var_create, mi_cmd_var_delete): Delete
+ make_cleanup_func casts. Not needed.
+
+2000-05-07 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * gdbmi.texinfo: Lots of typos and grammar fixes from Brian
+ Youmans <3diff@flib.gnu.ai.mit.edu>.
+
+Wed Apr 26 18:35:19 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * gdbmi.texinfo (GDB/MI Output Syntax v2.0): Convert Draft 2.0
+ Output Syntax into a new section. Cross reference.
+ (menu): Fix tipo. GDB/MI Compatibility with CLI.
+
+2000-04-23 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * gdbmi.texinfo: Lots of changes, to include this document as part
+ of the GDB manual.
+
+2000-03-13 James Ingham <jingham@leda.cygnus.com>
+
+ * mi-cmd-var.c (mi_cmd_var_create): Add special frame cookie "@"
+ to indicate an "USE_CURRENT_FRAME" variable.
+ (varobj_update_one): Add "in_scope" and "type_changed" to the
+ result.
+
+2000-03-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmds.h: Export mi_cmd_data_write_register_values.
+
+ * mi-cmds.c (mi_cmds): Implement data-write-register-values with
+ mi_cmd_data_write_register_values.
+
+ * mi-main.c (mi_cmd_data_write_register_values): New
+ function. Write a value into a register.
+
+2000-03-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdbmi.texinfo: Update data-disassemble documentation.
+
+2000-03-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmd-disas.c (mi_cmd_disassemble): Use
+ ui_out_field_core_addr() instead of print_address_numeric(), to
+ maintain consistency throughout MI.
+
+Wed Feb 23 17:09:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmd-break.c, mi-cmd-disas.c, mi-cmd-stack.c, mi-cmd-var.c,
+ mi-cmds.c, mi-cmds.h, mi-console.c, mi-console.h, mi-getopt.c,
+ mi-getopt.h, mi-main.c, mi-out.c, mi-out.h, mi-parse.c,
+ mi-parse.h: Update copyright information.
+
+Wed Feb 23 13:31:16 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmd-disas.c (gdb_dis_asm_read_memory): Change LEN to unsigned
+ long. Match ../include/dis-asm.h change.
+
+Wed Feb 23 10:30:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * gdbmi.texinfo: Update copyright - FSF. Update version
+ information.
+
+ mi-cmd-break.c, mi-cmd-disas.c, mi-cmd-stack.c, mi-cmd-var.c,
+ mi-cmds.h, mi-main.c, mi-parse.c, mi-parse.h: Re-format using GNU
+ indent.
+
+2000-02-21 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c: Add include of gdbcore.h for write_memory()
+ prototype.
+
+2000-02-18 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmd-disas.c (mi_cmd_disassemble): Change syntax of
+ command. Now use options.
+ Instead of printing the symbolic address of instructions via
+ print_address_symbolic(), use build_address_symbolic() and format
+ properly for output.
+ (gdb_do_disassmble): Delete.
+
+2000-02-18 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmd-disas.c (mi_cmd_disassemble):
+
+2000-02-17 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_data_write_memory): New function. Write a
+ value into target memory.
+
+ * mi-cmds.h (mi_cmd_data_write_memory): Export.
+
+ * mi-cmds.c (mi_cmds): Hook up data-write-memory to
+ mi_cmd_data_write_memory().
+
+2000-02-17 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_target_download): Correct error message to
+ report right function name.
+ (mi_cmd_target_select): Add doing exec cleanups at end.
+ (mi_cmd_data_read_memory): Correct typo.
+ (mi_cmd_execute): Do not simply free last_async_command, but reset
+ it to NULL as well.
+ (free_and_reset): New function, free the argument and set it to
+ NULL.
+ (mi_cmd_target_select_continuation): Delete prototype.
+
+Tue Feb 1 00:17:12 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmd-disas.c, mi-cmds.h, mi-console.c, mi-console.h,
+ mi-main.c, mi-out.c, mi-out.h: Update to reflect rename of
+ gdb-file / GDB_FILE to ui-file / ``struct ui_file''.
+
+Mon Jan 31 18:33:28 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_command_loop): Delete reference to
+ fputs_unfiltered_hook.
+
+2000-01-27 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmds.c (mi_cmds): Update entries for
+ mi_cmd_data_list_register_names,
+ mi_cmd_data_list_changed_registers,
+ mi_cmd_data_list_register_values.
+
+ * mi-cmds.h (mi_cmd_data_list_register_names,
+ mi_cmd_data_list_changed_registers,
+ mi_cmd_data_list_register_values): Update to mi_cmd_argv_ftype.
+
+ * mi-main.c (mi_cmd_data_list_register_names,
+ mi_cmd_data_list_changed_registers,
+ mi_cmd_data_list_register_values): Update to use argc, argv
+ parameters.
+
+2000-01-27 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_data_read_memory): Correct the computation of
+ next-row.
+
+2000-01-27 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-cmd-var.c (mi_cmd_var_create): Test for NULL type.
+ (mi_cmd_var_set_format, mi_cmd_var_show_format,
+ mi_cmd_var_info_num_children, mi_cmd_var_list_children,
+ mi_cmd_var_info_type, mi_cmd_var_info_expression,
+ mi_cmd_var_show_attributes, mi_cmd_var_evaluate_expression,
+ mi_cmd_var_assign, mi_cmd_var_update): Prevent possibility of memory
+ leak on error.
+
+2000-01-27 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-out.c (mi_field_string): Test for NULL string pointer.
+
+2000-01-17 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmd-stack.c (mi_cmd_stack_list_frames): Call
+ print_frmae_info() with the correct arguments.
+
+ * mi-main.c (mi_cmd_exec_return): Call
+ show_and_print_stack_frame() with LOC_AND_ADDRESS, so it does the
+ right thing. Update Copyright.
+
+2000-01-13 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c: Move disassemble commands from here.
+
+ * mi-cmd-disas.c: To here. New file.
+
+2000-01-13 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmd-stack.c: Remove include of mi-out.h.
+
+ * mi-main.c (mi_cmd_disassemble): Update function to use argc/argv
+ interface.
+
+ * mi-cmds.h: Ditto.
+
+ * mi-cmds.c: Ditto.
+
+2000-01-12 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdbmi.texinfo: Update stack commands descriptions.
+ Add thread commands descriptions and examples.
+
+ * mi-main.c (mi_cmd_thread_list_ids): Fix typo.
+
+2000-01-12 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_thread_list_ids): New function, print a list
+ of currently known threads ids, and the total number of threads.
+ (mi_cmd_thread_select): New function. Switch current thread.
+
+ * mi-cmds.c (mi_cmds): Implement thread-list-ids by
+ mi_cmd_thread_list_ids, and thread-select by mi_cmd_thread_select.
+
+ * mi-cmds.h (mi_cmd_thread_select, mi_cmd_thread_list_ids): Export.
+
+2000-01-11 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c: Move stack commands from here.
+
+ * mi-cmd-stack.c: To here. New file.
+
+2000-01-07 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (list_args_or_locals): Add a new paramter, the frame
+ for which to display args or locals. Don't use selected_frame
+ anymore, use the new parameter instead. Return void instead of
+ mi_cmd_result, let callers do so.
+ (mi_cmd_stack_list_args): Change interface. Now accept low and
+ high frame numbers to display args for a range of frames. Without
+ these two, display args for the whole stack.
+ (mi_cmd_stack_list_locals): Adapt to new interface for
+ list_args_or_locals.
+
+2000-01-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_stack_info_depth, mi_cmd_stack_list_args,
+ mi_cmd_stack_list_frames, mi_cmd_stack_list_locals,
+ mi_cmd_stack_select_frame): Change to use argv type of parameters.
+
+ * mi-cmds.c (mi_cmds): Change stack-info-depth,
+ stack-list-arguments, stack-list-frames, stack-list-locals,
+ stack-select-frame to use argv parameters.
+
+ * mi-cmds.h (mi_cmd_stack_info_depth, mi_cmd_stack_list_args,
+ mi_cmd_stack_list_frames, mi_cmd_stack_list_locals,
+ mi_cmd_stack_select_frame): Update definitions.
+
+Tue Jan 4 12:38:54 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_command_loop): Force the MI interface to use seven
+ bit strings.
+ * gdbmi.texinfo: Make it clear that a quoted C string is seven
+ bit.
+
+Thu Dec 30 14:15:22 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-getopt.c (mi_getopt): Rewrite. Allow long options.
+ * mi-getopt.h (struct mi_opt): Declare.
+ (mi_getopt): Update.
+
+ * mi-main.c (mi_cmd_data_read_memory), mi-cmd-break.c
+ (mi_cmd_break_insert, mi_cmd_break_watch): Update.
+
+Wed Dec 29 23:38:35 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmd-break.c (mi_cmd_break_insert): Add support for -c
+ <condition>, -i <ignore-count> and -p <thread>.
+ (breakpoint_notify): New function.
+ (mi_cmd_break_insert): Wrap GDB call with callback hooks so that
+ MI is notified when ever a breakpoint is created.
+
+ * gdbmi.texinfo: Update.
+
+Fri Dec 24 11:23:22 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (gdb_do_disassemble): Strip out more useless #ifdef
+ UI_OUTs.
+
+1999-12-23 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (gdb_do_disassemble): Fix output. Lines that have no
+ assembly instructions must still be outputted, to keep the source
+ line numbering correct.
+ Remove #ifdef UI_OUT's, they are useless.
+
+1999-12-17 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (gdb_do_disassemble): Don't print a new list in mixed
+ mode, every time. Just do it when we actually encounter a new
+ source line.
+
+1999-12-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-cmd-var.c (mi_cmd_var_list_children): Add test for C++ pseudo
+ variable objects (private, public, protected) as these do not have
+ a type and the -var-list-children operation was dumping core.
+
+Fri Dec 17 20:23:33 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * gdbmi.texinfo: Document recommended syntax for options.
+
+ * mi-main.c (mi_cmd_data_read_memory): Add support for ``-o
+ <offset>''.
+ * gdbmi.texinfo: Document.
+
+Wed Dec 15 17:43:08 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-getopt.h (mi_getopt): Change optarg to a char pointer. Check
+ optind.
+ * mi-cmd-break.c (mi_cmd_break_insert): Update.
+
+ * mi-main.c (mi_cmd_data_read_memory): Add fields "next-row-addr",
+ "prev-row-addr", "next-page-addr", "prev-page-addr" and a per row
+ "addr".
+ * gdbmi.texinfo: Update.
+
+Wed Dec 15 01:05:40 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmds.h (mi_cmd_result): Add MI_CMD_CAUGHT_ERROR for when the
+ error is caught.
+
+ * mi-main.c (captured_mi_execute_command): When
+ MI_CMD_CAUGHT_ERROR return 0 rethrowing the eror.
+
+1999-12-13 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmd-break.c (mi_cmd_break_insert): Remove unused var.
+
+ * mi-cmd-var.c (mi_cmd_var_update): Remove unused variables.
+
+Mon Dec 13 18:43:36 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-parse.c (mi_parse): Quote the command when printing it.
+ (mi_parse_argv): Fix handling of quoted strings. Was not
+ de-quoting them.
+ (mi_parse_argv): Make static.
+
+Mon Dec 13 18:30:03 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmds.h (mi_cmd_break_insert, mi_cmd_break_watch): Change type
+ to mi_cmd_argv_ftype.
+ * mi-cmds.c (mi_cmds): Update.
+ * mi-cmd-break.c (mi_cmd_break_insert, mi_cmd_break_watch): Change
+ to new style of arguments with argc and argv. Parse arguments
+ using mi_getopt.
+
+ * mi-cmd-break.c (mi_cmd_break_insert): Wrap body in #ifdef UI_OUT
+ to avoid non-ui compile problems.
+
+Mon Dec 13 15:08:36 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-getopt.h, mi-getopt.c: New files. Similar to getopt but with
+ well defined semantics.
+
+Mon Dec 13 14:22:21 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_cmd_break_insert, mi_cmd_break_watch, enum
+ wp_type, enum bp_type): Move from here.
+ * mi-cmd-break.c: To here. New file.
+ (mi_cmd_break_insert, mi_cmd_break_insert, mi_cmd_break_watch):
+ Use error to report problems.
+
+1999-12-09 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdbmi.texinfo: Update description of exec-interrupt.
+
+ * mi-main.c (mi_cmd_exec_interrupt): If the program is not
+ executing, don't try to interrupt it, but error out instead. Make
+ sure previous_async_command is not null before duplicating it into
+ last_async_command.
+
+ * gdbmi.texinfo: Add examples for data-evaluate-expression.
+
+1999-12-08 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmd-var.c (mi_cmd_var_assign, mi_cmd_var_create,
+ mi_cmd_var_delete, mi_cmd_var_evaluate_expression,
+ mi_cmd_var_info_expression, mi_cmd_var_info_num_children,
+ mi_cmd_var_info_type, mi_cmd_var_list_children,
+ mi_cmd_var_set_format, mi_cmd_var_show_attributes,
+ mi_cmd_var_show_format, mi_cmd_var_update): Change to use new
+ style of arguments with argc and argv.
+ (next_arg): Delete.
+ (which_var): Delete.
+
+ * mi-cmds.c (mi_cmds): Update entries for mi_cmd_var_assign,
+ mi_cmd_var_create, mi_cmd_var_delete,
+ mi_cmd_var_evaluate_expression, mi_cmd_var_info_expression,
+ mi_cmd_var_info_num_children, mi_cmd_var_info_type,
+ mi_cmd_var_list_children, mi_cmd_var_set_format,
+ mi_cmd_var_show_attributes, mi_cmd_var_show_format,
+ mi_cmd_var_update.
+
+ * mi-cmds.h (mi_cmd_var_assign, mi_cmd_var_create,
+ mi_cmd_var_delete, mi_cmd_var_evaluate_expression,
+ mi_cmd_var_info_expression, mi_cmd_var_info_num_children,
+ mi_cmd_var_info_type, mi_cmd_var_list_children,
+ mi_cmd_var_set_format, mi_cmd_var_show_attributes,
+ mi_cmd_var_show_format, mi_cmd_var_update): Update declarations.
+
+1999-12-08 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdbmi.texinfo: Comment out -data-assign command. * mi-main.c
+ (mi_cmd_data_assign): Do not use, comment out. * mi-cmds.h
+ (mi_cmd_data_assign): Remove. * mi-cmds.c: Remove -data-assign
+ command from MI interface.
+
+1999-12-07 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-parse.c (mi_parse): Add '\n' at end of error messages, so
+ that prompt comes out on new line.
+
+ * gdbmi.texinfo: Update disassembly command output.
+
+1999-12-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (gdb_do_disassemble): Update output for UI_OUT case.
+
+1999-12-02 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdbmi.texinfo: Update exec-until output, including the reason
+ for stopping.
+
+Thu Dec 2 17:17:22 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmds.c: Include <string.h> for memset.
+
+1999-12-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_exec_return): ifdef the references to
+ return_command_wrapper().
+
+1999-12-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_gdb_exit, mi_cmd_exec_interrupt,
+ mi_cmd_target_select, mi_execute_async_cli_command,
+ mi_exec_async_cli_cmd_continuation, mi_load_progress): Don't print
+ last_async_command if it is NULL.
+ (mi_cmd_exec_return):
+
+1999-12-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_exec_return): Reimplement using
+ return_command() instead of mi_execute_async_cli_command().
+
+1999-12-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmds.h: Export mi_cmd_data_assign and
+ mi_cmd_data_evaluate_expression.
+
+ * mi-cmds.c (mi_cmds): Hook data-assign to mi_cmd_data_assign and
+ data-evaluate-expression to mi_cmd_data_evaluate_expression.
+
+ * mi-main.c (mi_cmd_data_assign): New function. Implement
+ data-assign command.
+ (mi_cmd_data_evaluate_expression): New function. Implement
+ data-evaluate-expression command.
+
+1999-12-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdbmi.texinfo: Fix some texinfo formatting errors.
+
+1999-12-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdbmi.texinfo: Update data-list-register-values description.
+
+ * mi-cmds.h: Export mi_cmd_data_list_register_values.
+
+ * mi-cmds.c (mi_cmds): Hook data-list-register-values to
+ mi_cmd_data_list_register_values.
+
+ * mi-main.c (mi_cmd_data_list_register_values): New
+ function. Implements the -data-list-register-values command.
+ (get_register): New function. Output the contents of a given
+ register.
+
+Wed Dec 1 20:27:22 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_execute_async_cli_command): Append missing "\n"
+ for synchronous stopped message.
+
+1999-11-30 James Ingham <jingham@leda.cygnus.com>
+
+ * gdbmi.texinfo: Fix obvious typo in @end statement.
+
+Wed Dec 1 12:36:27 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmd-var.c: Include "value.h".
+ * mi-console.c: Include <string.h>.
+
+Wed Dec 1 00:21:03 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (captured_mi_execute_command): For a CLI command, pass
+ "%s" to mi_execute_cli_command to stop core dumps.
+ (captured_mi_execute_command): Echo CLI commands on gdb_stdlog.
+
+Wed Dec 1 00:10:07 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * gdbmi.texinfo: Explain NR-BYTES and ADDR.
+
+Tue Nov 30 23:31:57 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmd-var.c (mi_cmd_var_create, mi_cmd_var_delete,
+ mi_cmd_var_set_format, mi_cmd_var_show_format,
+ mi_cmd_var_info_num_children, mi_cmd_var_list_children,
+ mi_cmd_var_info_type, mi_cmd_var_info_expression,
+ mi_cmd_var_show_attributes, mi_cmd_var_evaluate_expression,
+ mi_cmd_var_assign, mi_cmd_var_update, varobj_update_one, next_arg,
+ which_var): New file. Move varobj commands to here from
+ mi-main.c.
+
+ * mi-console.h, mi-console.c (mi_console_file_new,
+ mi_console_file_delete, mi_console_file_fputs,
+ mi_console_raw_packet, mi_console_file_flush): New files. Move
+ mi_console_file to here from mi-main.c.
+
+Tue Nov 30 19:37:25 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (captured_mi_execute_command): Use fputstr_unfiltered
+ when printing error messages.
+ (mi_cmd_execute): Ditto.
+
+1999-11-29 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdbmi.texinfo: Describe -data-list-changed-registers,
+ -data-list-register-names. Add examples for
+ -exec-next-instruction, exec-step-instruction, -exec-run,
+ -exec-until. Format examples for -data-read-memory.
+ update example for -target-download.
+
+1999-11-29 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdbmi.texinfo: Remove mentioning of inaccurate watchpoint hit
+ count.
+
+Mon Nov 29 19:28:55 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_execute_async_cli_command): Return ``enum
+ mi_cmd_cmd_result''. mi_cmd_exec_run, mi_cmd_exec_next,
+ mi_cmd_exec_step, mi_cmd_exec_step_instruction,
+ mi_cmd_exec_finish, mi_cmd_exec_until, mi_cmd_exec_return,
+ mi_cmd_exec_continue): Update call.
+ (mi_execute_async_cli_command): When target is synchronous, fake
+ asynchronous behavour (ulgh). Allows tests to be run on built-in
+ simulator and native targets.
+
+Mon Nov 29 15:15:16 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmds.h (mi_cmd_gdb_exit), mi-cmds.c (mi_cmds), mi-main.c
+ (mi_cmd_gdb_exit): Change function signature to mi_cmd_argv_ftype.
+
+1999-11-28 Andew Cagney <cagney@rat-in-a-hat.cygnus.com>
+
+ * mi-parse.c: Include <ctype.h> and <string.h>
+
+1999-11-26 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdbmi.texinfo: Added watchpoint command descriptions and
+ examples.
+
+ * mi-main.c (mi_load_progress): Add parameter for total sent so far.
+ Print it as well.
+
+Fri Nov 26 10:17:49 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * gdbmi.texinfo (section Output Syntax): For lists, the <string>
+ part of a <result> is optional. Clarify syntax.
+ (appendix Proposed v2.0 Output Syntax): New section. Provide
+ record of discussion of possible changes to syntax.
+
+Wed Nov 24 19:41:35 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_cmd_data_read_memory): Simplify. Fix coredump
+ when arguments were bad.
+ (mi_cmd_execute): Change parameter to ``struct mi_parse''. Handle
+ case of argv_func as well as args_func.
+ (captured_mi_execute_command): Update.
+
+ * mi-cmds.c (struct mi_cmd): Add field for mi_cmd_argv_ftype.
+ (mi_cmds): Update mi_cmd_data_read_memory.
+ (mi_lookup): Return
+
+ * mi-cmds.h (mi_cmd_args_ftype): Rename mi_cmd_ftype. Make all
+ functions of type this type.
+ (mi_cmd_argv_ftype): Declare.
+ (mi_cmd_data_read_memory): Change type to mi_cmd_argv_fytpe.
+ (struct mi_cmd): Move declaration to here from mi-cmds.c.
+ (mi_lookup): Return a pointer to ``struct mi_cmd''.
+
+Wed Nov 24 15:03:34 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-parse.c (mi_parse): Initialize TOKEN when a CLI command.
+
+ * gdbmi.texinfo: Allow a <token> before a CLI command.
+
+ * mi-parse.h (struct mi_parse): Declare.
+ (mi_parse): Change to return a ``struct mi_parse''.
+ (enum mi_command_type): Delete PARSE_ERROR.
+
+ * mi-main.c (struct mi_execute_command_context): Delete.
+ (captured_mi_execute_command): Update
+ (mi_execute_command): Update. Check for mi_parse returning NULL.
+
+Wed Nov 24 12:57:14 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-parse.h: Remove const, from cmd parameter. Causes cascading
+ warnings.
+
+Wed Nov 24 15:03:34 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-parse.c (mi_parse): New function. Move parse code to here.
+ * mi-main.c (parse): From here. Delete.
+
+Wed Nov 24 12:57:14 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-parse.c, mi-parse.h: New files. Implement mi_parse_env.
+
+Wed Nov 24 11:24:05 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-out.c (mi_field_string): Make string parameter constant.
+
+1999-11-23 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmds.h (mi_cmd_target_download): Export.
+
+ * mi-cmds.c (mi_cmds): Add mi_cmd_target_download.
+
+ * mi-main.c: Include <sys/time.h>.
+ (mi_cmd_target_download): New function, implement the
+ target-download command.
+ (mi_load_progress): New function. Called via the
+ show_load_progress hook. Prints updates every 0.5 secs.
+ (mi_command_loop): Initialize the show_load_progress hook.
+
+1999-11-22 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_exec_until): New function. Implement until
+ command.
+ (mi_cmd_exec_step_instruction): New function. Implement stepi
+ command.
+ (mi_cmd_exec_next_instruction): New function. Implement nexti
+ command.
+
+ * mi-cmds.c (mi_cmds): Add mi_cmd_exec_step_instruction,
+ mi_cmd_exec_next_instruction, mi_cmd_exec_until.
+
+ * mi-cmds.h (mi_cmd_exec_step_instruction,
+ mi_cmd_exec_next_instruction, mi_cmd_exec_until): Export.
+
+Tue Nov 23 00:30:37 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi/gdbmi.texinfo: Document -data-read-memory.
+
+ * mi-main.c (mi_cmd_data_read_memory): Fix off-by-one check of
+ argc.
+ (mi_cmd_data_read_memory): Label the output table with "memory".
+
+Thu Nov 18 18:15:53 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_cmd_exec_interrupt, mi_cmd_break_insert,
+ mi_cmd_break_watch, mi_cmd_disassemble, mi_cmd_execute): Replace
+ strdup with xstrdup.
+
+Thu Nov 18 20:50:09 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_cmd_data_read_memory): New function. Implement
+ data-read-memory.
+
+ * mi-cmds.h, mi-cmds.c: Add mi_cmd_data_read_memory.
+ * mi-cmds.c (mi_cmds): Ditto.
+
+1999-11-11 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmds.h (mi_cmd_break_watch): Export.
+
+ * mi-cmds.c (mi_cmds): Hook up break-watch to function
+ mi_cmd_break_watch.
+
+ * mi-main.c (wp_type): New enumeration for the possible types of
+ watchpoints.
+ (mi_cmd_break_watch): New function, implements the break-watch
+ command.
+
+1999-11-11 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_break_insert): Handle case in which the command is
+ just a -break-insert w/o args.
+
+Fri Nov 12 00:01:52 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-out.c (mi_field_string): Always quote the string.
+
+1999-11-10 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmds.h(mi_cmd_data_list_changed_registers,
+ mi_cmd_data_list_register_names): Export.
+
+ * mi-cmds.c (mi_cmds): Hook up data-list-changed-registers to
+ mi_cmd_data_list_changed_registers and data-list-register-names to
+ mi_cmd_data_list_register_names.
+
+ * mi-main.c (mi_cmd_data_list_changed_registers): New function,
+ implements the data-list-changed-registers command.
+ (mi_cmd_data_list_register_names): New function, implements the
+ data-list-register-names command.
+ (register_changed_p): New function. Decide whether the register
+ contents have changed.
+ (setup_architecture_data): New function. Initialize registers
+ memory.
+ (_initialize_mi_main): Call setup_architecture_data(), and
+ register_gdbarch_swap().
+
+Wed Nov 10 18:35:08 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_execute_command): Correctly quote error messages.
+
+Wed Nov 10 11:05:14 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi/gdbmi.texinfo: Delete <stream-output>. Replaced by
+ <c-string>.
+
+ * mi-main.c (mi_console_raw_packet): Always quote console output.
+
+Tue Nov 9 17:53:05 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_console_file_new), mi-out.c (mi_out_new): Replace
+ the tui_file with a mem_file. Ya!
+
+ * mi-out.c (do_write): New function, wrapper to gdb_file_write.
+ (mi_out_put): Pass do_write to gdb_file_put.
+
+ * mi-main.c (mi_console_file_flush): Rewrite. Use
+ mi_console_raw_packet to send data to the console.
+ (mi_console_raw_packet): New function. Correctly
+ create quoted C string packets.
+
+1999-11-08 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmds.c (mi_cmds): Break-insert is now implemented by
+ mi_cmd_break_insert.
+ * mi-cmds.h (mi_cmd_break_insert): Export.
+ * mi-main.c (bp_type): New enumeration.
+ (mi_cmd_break_insert): New function. Implements all flavors of
+ breakpoint insertion.
+
+Mon Nov 8 17:49:17 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_console_file_flush): Replace gdb_file_get_strbuf
+ with tui_file_get_strbuf.
+
+Fri Nov 5 17:06:07 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_console_file_delete, mi_console_file_fputs,
+ mi_console_file_flush): Call internal_error instead of error.
+
+Thu Nov 4 19:53:32 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (captured_mi_execute_command): New function.
+ (mi_execute_command): Rewrite. Replace SET_TOP_LEVEL() with call
+ to captured_mi_execute_command via catch_errors.
+
+Thu Nov 4 20:33:58 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (clean): Delete.
+ (mi_command_loop): Delete extern declaration of
+ mi_execute_command.
+
+1999-10-28 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_stack_select_frame): Conditionalize the body
+ on UI_OUT, because select_frame_command_wrapper is only defined if
+ UI_OUT is.
+ (mi_cmd_exec_interrupt): Conditionalize the body on UI_OUT,
+ because interrupt_target_command_wrapper is only defined if UI_OUT is.
+
+ * mi-cmds.c (mi_cmds): Implement command exec-interrupt by
+ mi_cmd_exec_interrupt.
+
+ * mi-main.c (mi_cmd_exec_interrupt): New function. Implements
+ exec-interrupt command.
+ (mi_cmd_execute): If the target is running save execution command
+ token in previous_async_command. If the command is not 'interrupt'
+ and the target is running, reject it.
+ (clean): New function. Free the arg and reset it to NULL.
+
+ * mi-cmds.h (mi_cmd_exec_interrupt):Export.
+
+1999-10-28 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmds.c (mi_cmds): Implement command stack-select-frame by
+ mi_cmd_stack_select_frame.
+
+ * mi-main.c (mi_cmd_stack_select_frame): New function. Implements
+ stack-select-frame command.
+
+ * mi-cmds.h (mi_cmd_select_frame):Export.
+
+1999-10-26 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmds.c (mi_cmds): Implement commands stack-list-locals and
+ stack-list-arguments by mi_cmd_stack_list_locals and
+ mi_cmd_stack_list_args.
+
+ * mi-main.c (mi_cmd_stack_list_locals): New function. Implements
+ stack-list-locals command.
+ (mi_cmd_stack_list_args): New function. Implements
+ stack-list-arguments command.
+ (list_args_or_locals): New function. Do all the work for the
+ listing of locals or arguments.
+
+ * mi-cmds.h (mi_cmd_stack_list_args,mi_cmd_stack_list_locals) :
+ Export.
+
+1999-10-25 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-cmds.c (mi_cmds): Add new command stack-info-depth.
+
+ * mi-main.c (mi_cmd_stack_info_depth): New function. Implements
+ the stack-info-depth command.
+ * mi-cmds.h (mi_cmd_stack_info_depth): Export.
+
+
+1999-10-22 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_execute_command): Handle MI_CMD_ERROR case
+ properly, for command that return error code and don't set
+ mi_error_message.
+
+ * mi-cmds.c (mi_cmds): Hook stack-list-frames command to
+ mi_cmd_stack_list_frames function.
+ * mi-cmds.h (mi_cmd_stack_list_frames): Export.
+
+ * mi-main.c (mi_execute_command): Deal with a return code of
+ MI_CMD_ERROR from the execution of mi commands.
+ (mi_error_message): Static string variable, to contain the error
+ message from mi commands.
+ (mi_cmd_stack_list_frames): New function. Prints a backtrace.
+
+1999-10-18 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_disassemble): Handle the new command line
+ parameter that specifies the number of disassembly lines to be
+ displayed.
+ (gdb_do_disassemble): Add new parameter. Count the number of lines
+ that have been displayed, and stop when limit is reached.
+
+Wed Oct 13 18:04:13 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_command_loop): Don't initialize ``flush_hook''.
+
+1999-10-13 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi/gdbmi.texinfo: More reformatting of the grammars.
+
+1999-10-12 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi/gdbmi.texinfo: More TeX formatting.
+
+1999-10-11 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi/gdbmi.texinfo: First pass completed. All commands should have
+ some comments/info.
+ Escape '@' output special char.
+ Reformat for TeX.
+
+1999-10-08 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi/gdbmi.texinfo: Filled in part of file command section, and
+ stack section.
+
+1999-10-07 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi/gdbmi.texinfo: Filled in some sections about execution
+ commands.
+
+Tue Oct 5 15:27:28 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmds.h: Sort table
+ * mi-cmds.c: Ditto.
+ (MI_TABLE_SIZE): Increase to 251.
+
+1999-10-04 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_cmd_var_create, mi_cmd_var_delete): Add missing
+ cleanups.
+
+1999-10-04 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (next_arg): Returns lenght as well.
+ (which_var, mi_cmd_var_create, mi_cmd_var_delete,
+ mi_cmd_var_set_format, mi_cmd_var_update): Do not modify the input
+ string, use allocated storage instead.
+ (mi_cmd_var_assign): Adjust call to next_arg() to include new
+ argument.
+
+1999-10-04 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_execute_command): Fix handling of errors.
+
+1999-10-04 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-out.c (mi_out_new): Call tui_sfileopen() instead of
+ deprecated gdb_file_init_astream().
+ * mi-main.c (mi_console_file_new): Ditto.
+
+Mon Oct 4 15:17:29 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmds.h: Sort function declarations.
+ (mi_lookup): Add extern.
+
+ * mi-cmds.c (mi_lookup): Delete dead code.
+ (build_table): Call internal_error instead of error.
+ (build_table): Send trace output to gdb_stdlog.
+
+1999-10-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_execute_async_cli_command): Don't do the cleanups
+ if target_executing is null.
+
+1999-09-28 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (async_p): Change var name to event_loop_p.
+
+Mon Sep 27 15:11:00 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_execute_async_cli_command, mi_execute_command):
+ Replace target_has_async with function target_can_async_p.
+
+Sun Sep 26 00:12:52 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_cmd_target_select_continuation): Delete function.
+ (mi_cmd_target_select): Simplify. target-connect is guarenteed to
+ be synchronous.
+
+Sun Sep 26 00:12:52 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmds.h (mi_cmd_ftype): Replace mi_impl_ftype.
+ (enum mi_cmd_result): Define.
+ * mi-cmds.c (struct mi_cmd): Update.
+ (mi_lookup): Update.
+ * mi-main.c (mi_cmd_execute): Update.
+
+ * mi-main.c (mi_cmd_gdb_exit, mi_cmd_exec_run, mi_cmd_exec_next,
+ mi_cmd_exec_step, mi_cmd_target_select, mi_cmd_exec_continue,
+ mi_cmd_exec_return, mi_cmd_exec_finish, mi_cmd_disassemble,
+ mi_cmd_var_create, mi_cmd_var_delete, mi_cmd_var_set_format,
+ mi_cmd_var_show_format, mi_cmd_var_info_num_children,
+ mi_cmd_var_list_children, mi_cmd_var_info_type,
+ mi_cmd_var_info_expression, mi_cmd_var_show_attributes,
+ mi_cmd_var_evaluate_expression, mi_cmd_var_update): Update.
+ Return MI_CMD_DONE.
+
+1999-09-22 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_cmd_var_create): Use paddr() to format address
+ on trace output.
+
+1999-09-21 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_cmd_var_create): Test for varobjdebug before
+ printing trace and send it to gdb_stdlog.
+
+Mon Sep 20 13:41:04 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * Makefile.in (mi-out.o): Add dependency list.
+ * mi-out.c: Include "mi-out.h".
+
+1999-09-18 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (_initialize_mi_main): Events on stadin are now
+ handled by stdin_event_handler.
+
+1999-09-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-cmds.c (mi_cmds): Add var-* commands.
+
+1999-09-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_cmd_var_create, mi_cmd_var_delete,
+ mi_cmd_var_set_format, mi_cmd_var_show_format,
+ mi_cmd_var_info_num_children, mi_cmd_var_list_children,
+ mi_cmd_var_info_type, mi_cmd_var_info_expression,
+ mi_cmd_var_show_attributes, mi_cmd_var_evaluate_expression,
+ mi_cmd_var_assign, mi_cmd_var_update, varobj_update_one,
+ which_var, next_arg): New functions. Implement the -var-*
+ commands.
+ * mi-cmds.h: Add prototypes for the above.
+
+1999-09-14 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-cmds.c (mi_cmds): Add detach command.
+
+1999-09-09 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-cmds.c (lookup_table): Fix typo.
+
+1999-09-09 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-cmds.c (mi_cmds): Fix typo and missing command.
+
+1999-09-09 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c: Properly align function prototypes.
+ (mi_cmd_target_select): Proper check for NULL value.
+
+1999-09-09 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_execute_async_cli_command): Fix for native targets
+ that do not have async yet.
+
+1999-09-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_disassemble): Remove unused var.
+ (gdb_do_disassemble): Ditto.
+
+1999-08-30 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c: Replace all the occurrences of 'asynch' in variable
+ or function names with 'async' to make it consistent with the rest
+ of gdb.
+
+Mon Aug 30 18:16:39 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c: #include <ctype.h> for isspace().
+
+1999-08-27 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (gdb_do_disassemble): This function returns void, not
+ int.
+
+1999-08-26 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_disassemble): Don't use atoi() on the high
+ address string, just treat it same as address low.
+ (gdb_do_disassemble): Parse high_address string before seeing if
+ it is zero.
+
+1999-08-25 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_disassemble): New function to produce
+ disassembly output for mi.
+ (gdb_dis_asm_read_memory): New function. Read the disassembly from
+ the executable file, instead of target memory.
+ (compare_lines): New function. Compare order of disassembly lines.
+ (gdb_do_disassemble): New function. Do the real job of getting the
+ assembly code out.
+
+ * mi-cmds.c (mi_cmds): Do data-disassemble mi command via the
+ mi_cmd_disassemble function.
+
+ * mi-cmds.h: Export new function mi_cmd_disassemble.
+
+Wed Aug 25 15:58:31 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_command_loop): Remove references to ui-hooks.
+
+1999-08-21 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_execute_asynch_cli_command): Fix the incorrect
+ usage of strcat(): allocate enough space for the string.
+
+1999-08-13 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ From Christopher Faylor <cgf@cygnus.com>
+ * mi-main.c (mi_execute_command): Make sure we flush all the
+ output after each command.
+
+1999-08-10 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (_initialize_mi_main): Remove casting in call to
+ add_file_handler.
+
+Sun Aug 8 17:20:57 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_cmd_target_select, mi_execute_asynch_cli_command):
+ Replace call to fatal with call to internal_error.
+
+1999-07-26 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_cmd_execute): Add return code.
+ (mi_execute_command): Make appropriate changes when calling the
+ function mentioned above.
+ (mi_cmd_gdb_exit, mi_cmd_target_select,
+ mi_cmd_target_select_continuation, mi_execute_command,
+ mi_exec_asynch_cli_cmd, mi_exec_asynch_cli_cmd_continuation):
+ Print token, prefix, class and output (if any) in one single group
+ of statements.
+ (mi_execute_command, mi_cmd_execute): Fix error prefix.
+ (mi_cmd_execute): Use exec cleanup for token.
+ * mi-out.c (mi_out_rewind): New function.
+ * mi-out.h: Prototype for the above.
+
+1999-07-16 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_cmd_gdb_exit): Use buffer for exit message.
+ (mi_cmd_execute): Route error messages to correct file.
+ (mi_execute_asynch_cli_command): Insert line feed after running
+ message.
+
+1999-07-16 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-out.h (mi_out_buffered): Add extern declaration.
+ * mi-out.c (mi_out_buffered): New function. Insert a string at the
+ current buffer position.
+ * mi-main.c (mi_cmd_target_select, mi_execute_command,
+ mi_cmd_execute, mi_execute_asynch_cli_command): Use the above
+ function instead of printing to raw_stdout.
+ (mi_cmd_target_select, mi_cmd_target_select_continuation,
+ mi_execute_command, mi_cmd_execute, mi_execute_cli_command,
+ mi_exec_asynch_cli_cmd_continuation): Fix handling of token and
+ prefix.
+ (mi_execute_cli_command): Remove parameter no longer needed.
+
+1999-07-15 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c (mi_cmd_target_select_continuation): Print the numeric
+ token when we are connected.
+ (mi_execute_command): Don't print the token now, do it later.
+ (mi_execute_cli_command): Add a new parameter for the numeric
+ token. Print the token, the prefix and the class after the
+ command has executed, not before.
+ (mi_execute_asynch_cli_command): Don't print an extra blank line.
+
+1999-07-15 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_gdb_exit): Add \n at the end.
+
+1999-07-15 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_cmd_execute): New function. Dispatch a mi operation.
+ (mi_execute_command): Use the above.
+
+1999-07-15 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c: Fix identation.
+
+1999-07-15 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-main.c: Include target.h and inferior.h.
+ (mi_cmd_target_select): New function to execute the target-select
+ mi operation.
+ (mi_cmd_target_select_continuation): New function. Continuation
+ for the target-select operation.
+ (mi_execute_command): In case of an MI command which requires
+ asynchronous execution, do not try to display the result now. If
+ the execution has to look synchronous don't display the "(gdb)"
+ prompt.
+ (mi_execute_asynch_cli_command): Invoke real asynchronous
+ commands, set up exec_cleanups, and continuations.
+ (mi_exec_asynch_cli_cmd_continuation): New function. Continuation
+ for all the MI execution commands except 'target-select'.
+ (mi_execute_command): Handle null commands by exiting gdb, instead
+ of core dumping.
+
+ * mi-cmds.c (mi_cmds): Hook up -target-select operation to new mi
+ function.
+
+ * mi-cmds.h (mi_cmd_target_select): Add extern declaration.
+
+Thu Jul 15 10:31:39 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (struct mi_console_file): Add field ``prefix''.
+ (mi_console_file_new): Add argument prefix. Initialize prefix
+ field.
+ (mi_console_file_flush): Use ``prefix'' instead of "~" as the
+ prefix string.
+ (mi_command_loop): Update stream output prefixes. gdb_stdout ==
+ "~", gdb_stderr / gdb_stdlog == "&", gdb_stdtarg == "@".
+
+1999-07-13 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (ui_out_data): New field first_header. Fix output when
+ no breakpoints are found.
+ (mi_table_begin, mi_table_body, mi_table_header): Test for
+ first_header.
+ (mi_table_end): Test for supress_field_separator.
+ (mi_message): Remove messages from MI output.
+
+1999-06-30 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-cmds.c (mi_cmds[]): Delete gdb-cli operation.
+ * mi-main.c (parse): Remove ifdefs for cli commands parsing.
+ (mi-execute-command): Ditto.
+
+Mon Jun 28 13:06:52 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-out.h: New file.
+ (mi_out_new, mi_out_put): Move mi specific delcarations to here.
+ * ui-out.h: From here.
+
+ * mi-main.c: Include "mi-out.h".
+
+1999-06-25 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * top.c (print_gdb_version): Add the word HEADLESS when output
+ follows headless format.
+ (print_command_lines): Fix typo.
+
+1999-06-25 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * event-loop.h: Export input_fd.
+ * mi-main.c (mi_command_loop): Use the event loop if running
+ asynchronously.
+ (mi_execute_command_wrapper): New function.
+ (_initialize_mi-main): Set things up for running asynchronously.
+
+1999-06-18 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-cmds.c (mi_lookup): Deleted.
+ (lookup_table): New function. Replaces old mi_lookup() for local
+ use.
+ (mi_lookup): New function. External interface for command table
+ searchs.
+ (build_table): New definition.
+ (mi_cmds[]): Add several command implementations and the gdb-cli
+ special operation.
+ (mi_cmd_execute): Deleted.
+ * mi-cmds.h: Add type definition for command implementation
+ function pointers, add declaration for new implementation
+ functions and a declaration for mi_lookup().
+ * mi-main.c (mi_execute_asynch_cli_command): New
+ function. Captures code that was repeated for all asynch
+ operations.
+ (mi_cmd_exec_*): Use the above new function.
+ (mi_gdb_cmd_exit): Fix the output, printing something appropriate.
+ (mi_cmd_exec_finish): New operation implementation function.
+ (mi_cmd_exec_return): Ditto.
+ (parse): Prepare to remove cli commands.
+ (mi_execute_command): Fix the output and change the way mi-cmds is
+ used.
+
+1999-06-18 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-out.c (mi_table_begin): Add missing field separator call.
+
+Thu Jun 17 21:05:40 1999 Fernando Nasser <fnasser@tofu.to.cygnus.com>
+
+ * breakpoint.c (breakpoint_1): Remove space in breakpoint table
+ id.
+ (mention): Use ui_out for last new line (forgotten).
+
+1999-06-16 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c (mi_console_file_flush): Prevent prefix printing when
+ buffer empty; change prefix to '~'.
+ (mi_cmd_exec_*): Prefix normal output with '^' instead of
+ ','; remove unwanted new lines before "stopped".
+
+1999-06-16 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-cmds.c (struct mi_cmds): Updated entries for -exec-continue
+ and exec-next operations.
+ (mi_cmd_execute): New text for error messages.
+ * mi-cmds.h: Add declaration for mi_cmd_exec_next and
+ mi_cmd_exec_continue.
+ * mi-main.c (mi_cmd_exec_next): New function. Implements exec-next
+ operation.
+ (mi_cmd_exec_continue): New function. Implements exec-continue
+ operation.
+ (mi_execute_comand): Add missing space to prompt.
+ (mi_cmd_exec_run): Ditto.
+ (mi_cmd_exec_step): Ditto.
+ * mi-out.c (mi_out_new): Add flags argument to ui_out_new call.
+ (ui_list_end): Reset supress_field_separator flag.
+
+Sat Jun 12 11:49:10 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmds.h. mi-cmds.c (exec step): Command implemented by
+ mi_cmd_exec_step instead of cli call.
+ * mi-main.c (mi_cmd_exec_step): New function.
+
+ * mi-cmds.h. mi-cmds.c (exec run): Command implemented by
+ mi_cmd_exec_run instead of cli call.
+ * mi-main.c (mi_cmd_exec_run): New function.
+
+ * mi-cmds.h. mi-cmds.c (gdb exit): Command implemented by
+ mi_cmd_gdb_exit instead of quit_force.
+ * mi-main.c (mi_cmd_gdb_exit): New function.
+
+Sat Jun 12 11:33:23 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_command_loop): Pass mi_input to
+ simplified_command_loop.
+ (mi_input): New function. Calls gdb_readline with no prompt.
+
+Sat Jun 12 11:19:02 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_console_file_fputs): Re-implement. Use a buffer
+ to accumulate output.
+
+ * mi-main.c (struct mi_console_file): Add a buffer.
+ (mi_console_file_new): Create a buffer.
+ (mi_console_file_flush): New function.
+
+Sat Jun 12 10:59:39 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-cmds.h (raw_stdout): Declare. Will be moved later.
+ * mi-cmds.c (mi_cmd_execute): Send error messages to RAW stdout.
+ (mi_cmds): Sort by class.
+
+ * mi-main.c (raw_stdout): Make global.
+ * mi-main.c: Remove #ifdef UI_OUT. File assumes UI_OUT is
+ present.
+ * mi-main.c: Include "gdb_string.h".
+ (mi_out_put): Delete declaration.
+
+1999-06-11 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-main.c: Add pre-processor test for UI_OUT.
+ (mi_execute_command): Add pre-processor test for UI_OUT.
+
+Fri Jun 11 23:11:41 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (raw_stdout): New variable.
+ (mi_execute_command): Write mi-out direct to raw_stdout.
+ (mi_command_loop): Create raw_stdout. Attach gdb_stdout to the
+ console.
+ (mi_console_file_fputs, mi_console_file_delete,
+ mi_console_file_new): New functions.
+ (struct mi_console_file): Declare.
+
+Fri Jun 11 18:34:33 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c (mi_execute_command): Call mi_out_put to display the
+ result.
+ * mi-out.c (mi_out_put): New function.
+ * ui-out.h (mi_out_put): Add declare. Will move later.
+ * Makefile.in (mi-cmds.o, mi-main.o): Add dependency on ui-out.h.
+
+ * mi-out.c (mi_field_string, mi_field_fmt, mi_message, mi_flush,
+ out_field_fmt, list_open, list_close): Replace gdb_stdout with
+ data->buffer.
+ (field_separator, list_open, list_close): Add uiout parameter.
+ (mi_table_begin, mi_table_body, mi_table_end, mi_list_begin,
+ mi_list_end, mi_field_string, mi_field_fmt, out_field_fmt,
+ out_field_fmt): Update.
+
+ * mi-out.c (mi_out_new): Initialize supress_field_separator.
+ (supress_field_separator): Move into mi-out local data object.
+ (mi_table_begin, mi_list_begin, field_separator): Update.
+
+Fri Jun 11 16:08:37 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-out.c (mi_out_new): New function, replace init_mi_out.
+ * mi-main.c (mi_command_loop): Call mi_out_new().
+
+ * ui-out.h (mi_out_new): Add declaration. Will move later.
+ (mi_ui_out_impl): Delete.
+
+Wed Jun 9 16:42:16 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-main.c: Include "ui-hooks.h".
+ (mi_init_ui, mi_command_loop): New functions.
+ (_initialize_mi_main): Install ``mi'' as the interpreter when
+ selected.
+
+Mon Jun 7 18:43:43 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ From Fernando Nasser <fnasser@totem.to.cygnus.com>
+ * mi-cmds.c (build_table): Clean up error message.
+ * mi-cmds.c (mi_cmd_execute), mi-main.c (mi_execute_command): Only
+ print debug information when mi_debug_p.
+ * mi-cmds.h (mi_debug_p), mi-main.c: Global, control debug messages.
+
+Thu Jun 3 00:44:52 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ From Fernando Nasser <fnasser@totem.to.cygnus.com>:
+ * mi-cmds.c: Add CLI definitions for "exec-arguments",
+ "exec-next", "gdb-exit", "break-list", "break-info", "exec-step"
+ and "stack-list-frames" to mi_cmds.
+ (struct mi_command): Add ``from_tty'' argument to func.
+ * mi-cmds.h (quit_force): Declare.
+
+1999-05-31 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-out.c (mi_table_end): Remove unwanted "\n".
+
+Thu May 27 14:59:06 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * top.c: Include "ui-hooks.h".
+ (call_interp_loop): Tempoary. Pass mi_execute_command to
+ simplified_command_loop. Initialize gdb_stdout & gdb_stderr to
+ stdio gdb_file streams. Force all hooks to null.
+
+ * mi-cmds.h, mi-main.c, mi-cmds.c: New files.
+ * Makefile.in (SFILES): Add mi-main.c, mi-cmds.c
+ (COMMON_OBS): Add mi-main.o, mi-cmds.o.
+ (mi_cmds_h): Define.
+
+Wed May 26 12:39:49 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * top.c (call_interp_loop): Hack. Add extern declaration for
+ mi_ui_out_impl.
+
+1999-05-25 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-out.c: New table syntax.
+
+Mon May 24 16:16:29 1999 Andrew Cagney <cagney@amy.cygnus.com>
+
+ mi-out.c (_initialize_mi_out): Add external declaration.
+
+1999-05-21 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-out.c (mi_table_begin): Added missing parameter.
+
+1999-05-21 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-out.c: Changed table markers and added table id.
+
+1999-05-21 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * mi-out.c: New file. Implements low-level ui-out primitives for
+ CLI-based interaction.
+
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff --git a/gdb/sparc-linux-tdep.c b/gdb/sparc-linux-tdep.c
new file mode 100644
index 00000000000..13875af438e
--- /dev/null
+++ b/gdb/sparc-linux-tdep.c
@@ -0,0 +1,311 @@
+/* Target-dependent code for GNU/Linux SPARC.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "floatformat.h"
+#include "frame.h"
+#include "frame-unwind.h"
+#include "gdbarch.h"
+#include "gdbcore.h"
+#include "osabi.h"
+#include "regcache.h"
+#include "solib-svr4.h"
+#include "symtab.h"
+#include "trad-frame.h"
+
+#include "gdb_assert.h"
+#include "gdb_string.h"
+
+#include "sparc-tdep.h"
+
+/* Recognizing signal handler frames. */
+
+/* GNU/Linux has two flavors of signals. Normal signal handlers, and
+ "realtime" (RT) signals. The RT signals can provide additional
+ information to the signal handler if the SA_SIGINFO flag is set
+ when establishing a signal handler using `sigaction'. It is not
+ unlikely that future versions of GNU/Linux will support SA_SIGINFO
+ for normal signals too. */
+
+/* When the sparc Linux kernel calls a signal handler and the
+ SA_RESTORER flag isn't set, the return address points to a bit of
+ code on the stack. This function returns whether the PC appears to
+ be within this bit of code.
+
+ The instruction sequence for normal signals is
+ mov __NR_sigreturn, %g1 ! hex: 0x821020d8
+ ta 0x10 ! hex: 0x91d02010
+
+ Checking for the code sequence should be somewhat reliable, because
+ the effect is to call the system call sigreturn. This is unlikely
+ to occur anywhere other than a signal trampoline.
+
+ It kind of sucks that we have to read memory from the process in
+ order to identify a signal trampoline, but there doesn't seem to be
+ any other way. However, sparc32_linux_pc_in_sigtramp arranges to
+ only call us if no function name could be identified, which should
+ be the case since the code is on the stack. */
+
+#define LINUX32_SIGTRAMP_INSN0 0x821020d8 /* mov __NR_sigreturn, %g1 */
+#define LINUX32_SIGTRAMP_INSN1 0x91d02010 /* ta 0x10 */
+
+/* The instruction sequence for RT signals is
+ mov __NR_rt_sigreturn, %g1 ! hex: 0x82102065
+ ta {0x10,0x6d} ! hex: 0x91d02010 or 0x91d0206d
+
+ The effect is to call the system call rt_sigreturn. The trap number
+ is variable based upon whether this is a 32-bit or 64-bit sparc binary.
+ Note that 64-bit binaries only use this RT signal return method. */
+
+#define LINUX32_RT_SIGTRAMP_INSN0 0x82102065
+#define LINUX32_RT_SIGTRAMP_INSN1 0x91d02010
+
+/* If PC is in a sigtramp routine consisting of the instructions INSN0
+ and INSN1, return the address of the start of the routine.
+ Otherwise, return 0. */
+
+CORE_ADDR
+sparc_linux_sigtramp_start (CORE_ADDR pc, ULONGEST insn0, ULONGEST insn1)
+{
+ ULONGEST word0, word1;
+ char buf[8]; /* Two instructions. */
+
+ /* We only recognize a signal trampoline if PC is at the start of
+ one of the instructions. We optimize for finding the PC at the
+ start of the instruction sequence, as will be the case when the
+ trampoline is not the first frame on the stack. We assume that
+ in the case where the PC is not at the start of the instruction
+ sequence, there will be a few trailing readable bytes on the
+ stack. */
+
+ if (read_memory_nobpt (pc, buf, sizeof buf) != 0)
+ return 0;
+
+ word0 = extract_unsigned_integer (buf, 4);
+ if (word0 != insn0)
+ {
+ if (word0 != insn1)
+ return 0;
+
+ pc -= 4;
+ if (read_memory_nobpt (pc, buf, sizeof buf) != 0)
+ return 0;
+
+ word0 = extract_unsigned_integer (buf, 4);
+ }
+
+ word1 = extract_unsigned_integer (buf + 4, 4);
+ if (word0 != insn0 || word1 != insn1)
+ return 0;
+
+ return pc;
+}
+
+static CORE_ADDR
+sparc32_linux_sigtramp_start (CORE_ADDR pc)
+{
+ return sparc_linux_sigtramp_start (pc, LINUX32_SIGTRAMP_INSN0,
+ LINUX32_SIGTRAMP_INSN1);
+}
+
+static CORE_ADDR
+sparc32_linux_rt_sigtramp_start (CORE_ADDR pc)
+{
+ return sparc_linux_sigtramp_start (pc, LINUX32_RT_SIGTRAMP_INSN0,
+ LINUX32_RT_SIGTRAMP_INSN1);
+}
+
+static int
+sparc32_linux_pc_in_sigtramp (CORE_ADDR pc, char *name)
+{
+ /* If we have NAME, we can optimize the search. The trampolines are
+ named __restore and __restore_rt. However, they aren't dynamically
+ exported from the shared C library, so the trampoline may appear to
+ be part of the preceding function. This should always be sigaction,
+ __sigaction, or __libc_sigaction (all aliases to the same function). */
+ if (name == NULL || strstr (name, "sigaction") != NULL)
+ return (sparc32_linux_sigtramp_start (pc) != 0
+ || sparc32_linux_rt_sigtramp_start (pc) != 0);
+
+ return (strcmp ("__restore", name) == 0
+ || strcmp ("__restore_rt", name) == 0);
+}
+
+static struct sparc_frame_cache *
+sparc32_linux_sigtramp_frame_cache (struct frame_info *next_frame,
+ void **this_cache)
+{
+ struct sparc_frame_cache *cache;
+ CORE_ADDR sigcontext_addr, addr;
+ int regnum;
+
+ if (*this_cache)
+ return *this_cache;
+
+ cache = sparc32_frame_cache (next_frame, this_cache);
+ gdb_assert (cache == *this_cache);
+
+ /* ??? What about signal trampolines that aren't frameless? */
+ regnum = SPARC_SP_REGNUM;
+ cache->base = frame_unwind_register_unsigned (next_frame, regnum);
+
+ regnum = SPARC_O1_REGNUM;
+ sigcontext_addr = frame_unwind_register_unsigned (next_frame, regnum);
+
+ cache->pc = frame_pc_unwind (next_frame);
+ addr = sparc32_linux_sigtramp_start (cache->pc);
+ if (addr == 0)
+ {
+ /* If this is a RT signal trampoline, adjust SIGCONTEXT_ADDR
+ accordingly. */
+ addr = sparc32_linux_rt_sigtramp_start (cache->pc);
+ if (addr)
+ sigcontext_addr += 128;
+ else
+ addr = frame_func_unwind (next_frame);
+ }
+ cache->pc = addr;
+
+ cache->saved_regs = trad_frame_alloc_saved_regs (next_frame);
+
+ cache->saved_regs[SPARC32_PSR_REGNUM].addr = sigcontext_addr + 0;
+ cache->saved_regs[SPARC32_PC_REGNUM].addr = sigcontext_addr + 4;
+ cache->saved_regs[SPARC32_NPC_REGNUM].addr = sigcontext_addr + 8;
+ cache->saved_regs[SPARC32_Y_REGNUM].addr = sigcontext_addr + 12;
+
+ /* Since %g0 is always zero, keep the identity encoding. */
+ for (regnum = SPARC_G1_REGNUM, addr = sigcontext_addr + 20;
+ regnum <= SPARC_O7_REGNUM; regnum++, addr += 4)
+ cache->saved_regs[regnum].addr = addr;
+
+ for (regnum = SPARC_L0_REGNUM, addr = cache->base;
+ regnum <= SPARC_I7_REGNUM; regnum++, addr += 4)
+ cache->saved_regs[regnum].addr = addr;
+
+ return cache;
+}
+
+static void
+sparc32_linux_sigtramp_frame_this_id (struct frame_info *next_frame,
+ void **this_cache,
+ struct frame_id *this_id)
+{
+ struct sparc_frame_cache *cache =
+ sparc32_linux_sigtramp_frame_cache (next_frame, this_cache);
+
+ (*this_id) = frame_id_build (cache->base, cache->pc);
+}
+
+static void
+sparc32_linux_sigtramp_frame_prev_register (struct frame_info *next_frame,
+ void **this_cache,
+ int regnum, int *optimizedp,
+ enum lval_type *lvalp,
+ CORE_ADDR *addrp,
+ int *realnump, void *valuep)
+{
+ struct sparc_frame_cache *cache =
+ sparc32_linux_sigtramp_frame_cache (next_frame, this_cache);
+
+ trad_frame_prev_register (next_frame, cache->saved_regs, regnum,
+ optimizedp, lvalp, addrp, realnump, valuep);
+}
+
+static const struct frame_unwind sparc32_linux_sigtramp_frame_unwind =
+{
+ SIGTRAMP_FRAME,
+ sparc32_linux_sigtramp_frame_this_id,
+ sparc32_linux_sigtramp_frame_prev_register
+};
+
+static const struct frame_unwind *
+sparc32_linux_sigtramp_frame_sniffer (struct frame_info *next_frame)
+{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
+ char *name;
+
+ find_pc_partial_function (pc, &name, NULL, NULL);
+ if (sparc32_linux_pc_in_sigtramp (pc, name))
+ return &sparc32_linux_sigtramp_frame_unwind;
+
+ return NULL;
+}
+
+
+static struct link_map_offsets *
+sparc32_linux_svr4_fetch_link_map_offsets (void)
+{
+ static struct link_map_offsets lmo;
+ static struct link_map_offsets *lmp = NULL;
+
+ if (lmp == NULL)
+ {
+ lmp = &lmo;
+
+ /* Everything we need is in the first 8 bytes. */
+ lmo.r_debug_size = 8;
+ lmo.r_map_offset = 4;
+ lmo.r_map_size = 4;
+
+ /* Everything we need is in the first 20 bytes. */
+ lmo.link_map_size = 20;
+ lmo.l_addr_offset = 0;
+ lmo.l_addr_size = 4;
+ lmo.l_name_offset = 4;
+ lmo.l_name_size = 4;
+ lmo.l_next_offset = 12;
+ lmo.l_next_size = 4;
+ lmo.l_prev_offset = 16;
+ lmo.l_prev_size = 4;
+ }
+
+ return lmp;
+}
+
+static void
+sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ /* GNU/Linux is very similar to Solaris ... */
+ sparc32_sol2_init_abi (info, gdbarch);
+
+ /* ... but doesn't have kernel-assisted single-stepping support. */
+ set_gdbarch_software_single_step (gdbarch, sparc_software_single_step);
+
+ /* GNU/Linux doesn't support the 128-bit `long double' from the psABI. */
+ set_gdbarch_long_double_bit (gdbarch, 64);
+ set_gdbarch_long_double_format (gdbarch, &floatformat_ieee_double_big);
+
+ set_gdbarch_pc_in_sigtramp (gdbarch, sparc32_linux_pc_in_sigtramp);
+ frame_unwind_append_sniffer (gdbarch, sparc32_linux_sigtramp_frame_sniffer);
+
+ set_solib_svr4_fetch_link_map_offsets
+ (gdbarch, sparc32_linux_svr4_fetch_link_map_offsets);
+}
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+extern void _initialize_sparc_linux_tdep (void);
+
+void
+_initialize_sparc_linux_tdep (void)
+{
+ gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_LINUX,
+ sparc32_linux_init_abi);
+}
diff --git a/gdb/sparc-nat.h b/gdb/sparc-nat.h
new file mode 100644
index 00000000000..8f99b1eea11
--- /dev/null
+++ b/gdb/sparc-nat.h
@@ -0,0 +1,40 @@
+/* Native-dependent code for SPARC.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef SPARC_NAT_H
+#define SPARC_NAT_H 1
+
+struct sparc_gregset;
+
+extern const struct sparc_gregset *sparc_gregset;
+extern void (*sparc_supply_gregset) (const struct sparc_gregset *,
+ struct regcache *, int , const void *);
+extern void (*sparc_collect_gregset) (const struct sparc_gregset *,
+ const struct regcache *, int, void *);
+extern void (*sparc_supply_fpregset) (struct regcache *, int , const void *);
+extern void (*sparc_collect_fpregset) (const struct regcache *, int , void *);
+extern int (*sparc_gregset_supplies_p) (int);
+extern int (*sparc_fpregset_supplies_p) (int);
+
+extern int sparc32_gregset_supplies_p (int regnum);
+extern int sparc32_fpregset_supplies_p (int regnum);
+
+#endif /* sparc-nat.h */
diff --git a/gdb/sparc-sol2-nat.c b/gdb/sparc-sol2-nat.c
new file mode 100644
index 00000000000..61ca7120f32
--- /dev/null
+++ b/gdb/sparc-sol2-nat.c
@@ -0,0 +1,98 @@
+/* Native-dependent code for Solaris SPARC.
+
+ Copyright 2003, 2004 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "regcache.h"
+
+#include <sys/procfs.h>
+#include "gregset.h"
+
+#include "sparc-tdep.h"
+
+/* This file provids the (temporary) glue between the Solaris SPARC
+ target dependent code and the machine independent SVR4 /proc
+ support. */
+
+/* Solaris 7 (Solaris 2.7, SunOS 5.7) and up support two process data
+ models, the traditional 32-bit data model (ILP32) and the 64-bit
+ data model (LP64). The format of /proc depends on the data model
+ of the observer (the controlling process, GDB in our case). The
+ Solaris header files conveniently define PR_MODEL_NATIVE to the
+ data model of the controlling process. If its value is
+ PR_MODEL_LP64, we know that GDB is being compiled as a 64-bit
+ program.
+
+ GNU/Linux uses the same formats as Solaris for its core files (but
+ not for ptrace(2)). The GNU/Linux headers don't define
+ PR_MODEL_NATIVE though. Therefore we rely on the __arch64__ define
+ provided by GCC to determine the appropriate data model.
+
+ Note that a 32-bit GDB won't be able to debug a 64-bit target
+ process using /proc on Solaris. */
+
+#if (defined (__arch64__) || \
+ (defined (PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64)))
+
+#include "sparc64-tdep.h"
+
+#define sparc_supply_gregset sparc64_supply_gregset
+#define sparc_supply_fpregset sparc64_supply_fpregset
+#define sparc_collect_gregset sparc64_collect_gregset
+#define sparc_collect_fpregset sparc64_collect_fpregset
+
+#define sparc_sol2_gregset sparc64_sol2_gregset
+#define sparc_sol2_fpregset sparc64_sol2_fpregset
+
+#else
+
+#define sparc_supply_gregset sparc32_supply_gregset
+#define sparc_supply_fpregset sparc32_supply_fpregset
+#define sparc_collect_gregset sparc32_collect_gregset
+#define sparc_collect_fpregset sparc32_collect_fpregset
+
+#define sparc_sol2_gregset sparc32_sol2_gregset
+#define sparc_sol2_fpregset sparc32_sol2_fpregset
+
+#endif
+
+void
+supply_gregset (prgregset_t *gregs)
+{
+ sparc_supply_gregset (&sparc_sol2_gregset, current_regcache, -1, gregs);
+}
+
+void
+supply_fpregset (prfpregset_t *fpregs)
+{
+ sparc_supply_fpregset (current_regcache, -1, fpregs);
+}
+
+void
+fill_gregset (prgregset_t *gregs, int regnum)
+{
+ sparc_collect_gregset (&sparc_sol2_gregset, current_regcache, regnum, gregs);
+}
+
+void
+fill_fpregset (prfpregset_t *fpregs, int regnum)
+{
+ sparc_collect_fpregset (current_regcache, regnum, fpregs);
+}
diff --git a/gdb/sparc-sol2-tdep.c b/gdb/sparc-sol2-tdep.c
new file mode 100644
index 00000000000..5f65b7826d1
--- /dev/null
+++ b/gdb/sparc-sol2-tdep.c
@@ -0,0 +1,201 @@
+/* Target-dependent code for Solaris SPARC.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "frame.h"
+#include "frame-unwind.h"
+#include "gdbcore.h"
+#include "symtab.h"
+#include "objfiles.h"
+#include "osabi.h"
+#include "regcache.h"
+#include "target.h"
+#include "trad-frame.h"
+
+#include "gdb_assert.h"
+#include "gdb_string.h"
+
+#include "sparc-tdep.h"
+
+/* From <sys/regset.h>. */
+const struct sparc_gregset sparc32_sol2_gregset =
+{
+ 32 * 4, /* %psr */
+ 33 * 4, /* %pc */
+ 34 * 4, /* %npc */
+ 35 * 4, /* %y */
+ 36 * 4, /* %wim */
+ 37 * 4, /* %tbr */
+ 1 * 4, /* %g1 */
+ 16 * 4, /* %l0 */
+};
+
+
+/* The Solaris signal trampolines reside in libc. For normal signals,
+ the function `sigacthandler' is used. This signal trampoline will
+ call the signal handler using the System V calling convention,
+ where the third argument is a pointer to an instance of
+ `ucontext_t', which has a member `uc_mcontext' that contains the
+ saved registers. Incidentally, the kernel passes the `ucontext_t'
+ pointer as the third argument of the signal trampoline too, and
+ `sigacthandler' simply passes it on. However, if you link your
+ program with "-L/usr/ucblib -R/usr/ucblib -lucb", the function
+ `ucbsigvechandler' will be used, which invokes the using the BSD
+ convention, where the third argument is a pointer to an instance of
+ `struct sigcontext'. It is the `ucbsigvechandler' function that
+ converts the `ucontext_t' to a `sigcontext', and back. Unless the
+ signal handler modifies the `struct sigcontext' we can safely
+ ignore this. */
+
+int
+sparc_sol2_pc_in_sigtramp (CORE_ADDR pc, char *name)
+{
+ return (name && (strcmp (name, "sigacthandler") == 0
+ || strcmp (name, "ucbsigvechandler") == 0));
+}
+
+static struct sparc_frame_cache *
+sparc32_sol2_sigtramp_frame_cache (struct frame_info *next_frame,
+ void **this_cache)
+{
+ struct sparc_frame_cache *cache;
+ CORE_ADDR mcontext_addr, addr;
+ int regnum;
+
+ if (*this_cache)
+ return *this_cache;
+
+ cache = sparc_frame_cache (next_frame, this_cache);
+ gdb_assert (cache == *this_cache);
+
+ cache->saved_regs = trad_frame_alloc_saved_regs (next_frame);
+
+ /* The third argument is a pointer to an instance of `ucontext_t',
+ which has a member `uc_mcontext' that contains the saved
+ registers. */
+ regnum = (cache->frameless_p ? SPARC_O2_REGNUM : SPARC_I2_REGNUM);
+ mcontext_addr = frame_unwind_register_unsigned (next_frame, regnum) + 40;
+
+ cache->saved_regs[SPARC32_PSR_REGNUM].addr = mcontext_addr + 0 * 4;
+ cache->saved_regs[SPARC32_PC_REGNUM].addr = mcontext_addr + 1 * 4;
+ cache->saved_regs[SPARC32_NPC_REGNUM].addr = mcontext_addr + 2 * 4;
+ cache->saved_regs[SPARC32_Y_REGNUM].addr = mcontext_addr + 3 * 4;
+
+ /* Since %g0 is always zero, keep the identity encoding. */
+ for (regnum = SPARC_G1_REGNUM, addr = mcontext_addr + 4 * 4;
+ regnum <= SPARC_O7_REGNUM; regnum++, addr += 4)
+ cache->saved_regs[regnum].addr = addr;
+
+ if (get_frame_memory_unsigned (next_frame, mcontext_addr + 19 * 4, 4))
+ {
+ /* The register windows haven't been flushed. */
+ for (regnum = SPARC_L0_REGNUM; regnum <= SPARC_I7_REGNUM; regnum++)
+ trad_frame_set_unknown (cache->saved_regs, regnum);
+ }
+ else
+ {
+ addr = cache->saved_regs[SPARC_SP_REGNUM].addr;
+ addr = get_frame_memory_unsigned (next_frame, addr, 4);
+ for (regnum = SPARC_L0_REGNUM;
+ regnum <= SPARC_I7_REGNUM; regnum++, addr += 4)
+ cache->saved_regs[regnum].addr = addr;
+ }
+
+ return cache;
+}
+
+static void
+sparc32_sol2_sigtramp_frame_this_id (struct frame_info *next_frame,
+ void **this_cache,
+ struct frame_id *this_id)
+{
+ struct sparc_frame_cache *cache =
+ sparc32_sol2_sigtramp_frame_cache (next_frame, this_cache);
+
+ (*this_id) = frame_id_build (cache->base, cache->pc);
+}
+
+static void
+sparc32_sol2_sigtramp_frame_prev_register (struct frame_info *next_frame,
+ void **this_cache,
+ int regnum, int *optimizedp,
+ enum lval_type *lvalp,
+ CORE_ADDR *addrp,
+ int *realnump, void *valuep)
+{
+ struct sparc_frame_cache *cache =
+ sparc32_sol2_sigtramp_frame_cache (next_frame, this_cache);
+
+ trad_frame_prev_register (next_frame, cache->saved_regs, regnum,
+ optimizedp, lvalp, addrp, realnump, valuep);
+}
+
+static const struct frame_unwind sparc32_sol2_sigtramp_frame_unwind =
+{
+ SIGTRAMP_FRAME,
+ sparc32_sol2_sigtramp_frame_this_id,
+ sparc32_sol2_sigtramp_frame_prev_register
+};
+
+static const struct frame_unwind *
+sparc32_sol2_sigtramp_frame_sniffer (struct frame_info *next_frame)
+{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
+ char *name;
+
+ find_pc_partial_function (pc, &name, NULL, NULL);
+ if (sparc_sol2_pc_in_sigtramp (pc, name))
+ return &sparc32_sol2_sigtramp_frame_unwind;
+
+ return NULL;
+}
+
+
+void
+sparc32_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ /* Solaris has SVR4-style shared libraries... */
+ set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section);
+ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
+
+ /* ...which means that we need some special handling when doing
+ prologue analysis. */
+ tdep->plt_entry_size = 12;
+
+ /* Solaris has kernel-assisted single-stepping support. */
+ set_gdbarch_software_single_step (gdbarch, NULL);
+
+ set_gdbarch_pc_in_sigtramp (gdbarch, sparc_sol2_pc_in_sigtramp);
+ frame_unwind_append_sniffer (gdbarch, sparc32_sol2_sigtramp_frame_sniffer);
+}
+
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+void _initialize_sparc_sol2_tdep (void);
+
+void
+_initialize_sparc_sol2_tdep (void)
+{
+ gdbarch_register_osabi (bfd_arch_sparc, 0,
+ GDB_OSABI_SOLARIS, sparc32_sol2_init_abi);
+}
diff --git a/gdb/sparc64-linux-nat.c b/gdb/sparc64-linux-nat.c
new file mode 100644
index 00000000000..56ee2936938
--- /dev/null
+++ b/gdb/sparc64-linux-nat.c
@@ -0,0 +1,48 @@
+/* Native-dependent code for GNU/Linux UltraSPARC.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+
+#include "sparc64-tdep.h"
+#include "sparc-nat.h"
+
+static const struct sparc_gregset sparc64_linux_ptrace_gregset =
+{
+ 16 * 8, /* "tstate" */
+ 17 * 8, /* %pc */
+ 18 * 8, /* %npc */
+ 19 * 8, /* %y */
+ -1, /* %wim */
+ -1, /* %tbr */
+ 0 * 8, /* %g1 */
+ -1, /* %l0 */
+ 4 /* sizeof (%y) */
+};
+
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+void _initialize_sparc64_linux_nat (void);
+
+void
+_initialize_sparc64_linux_nat (void)
+{
+ sparc_gregset = &sparc64_linux_ptrace_gregset;
+}
diff --git a/gdb/sparc64-linux-tdep.c b/gdb/sparc64-linux-tdep.c
new file mode 100644
index 00000000000..cd785571d58
--- /dev/null
+++ b/gdb/sparc64-linux-tdep.c
@@ -0,0 +1,82 @@
+/* Target-dependent code for GNU/Linux UltraSPARC.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "gdbarch.h"
+#include "osabi.h"
+#include "solib-svr4.h"
+
+#include "sparc64-tdep.h"
+
+static struct link_map_offsets *
+sparc64_linux_svr4_fetch_link_map_offsets (void)
+{
+ static struct link_map_offsets lmo;
+ static struct link_map_offsets *lmp = NULL;
+
+ if (lmp == NULL)
+ {
+ lmp = &lmo;
+
+ /* Everything we need is in the first 16 bytes. */
+ lmo.r_debug_size = 16;
+ lmo.r_map_offset = 8;
+ lmo.r_map_size = 8;
+
+ /* Everything we need is in the first 40 bytes. */
+ lmo.link_map_size = 40;
+ lmo.l_addr_offset = 0;
+ lmo.l_addr_size = 8;
+ lmo.l_name_offset = 8;
+ lmo.l_name_size = 8;
+ lmo.l_next_offset = 24;
+ lmo.l_next_size = 8;
+ lmo.l_prev_offset = 32;
+ lmo.l_prev_size = 8;
+ }
+
+ return lmp;
+}
+
+static void
+sparc64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ /* GNU/Linux is very similar to Solaris ... */
+ sparc64_sol2_init_abi (info, gdbarch);
+
+ /* ... but doesn't have kernel-assisted single-stepping support. */
+ set_gdbarch_software_single_step (gdbarch, sparc_software_single_step);
+
+ set_solib_svr4_fetch_link_map_offsets
+ (gdbarch, sparc64_linux_svr4_fetch_link_map_offsets);
+}
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+extern void _initialize_sparc64_linux_tdep (void);
+
+void
+_initialize_sparc64_linux_tdep (void)
+{
+ gdbarch_register_osabi (bfd_arch_sparc, bfd_mach_sparc_v9,
+ GDB_OSABI_LINUX, sparc64_linux_init_abi);
+}
diff --git a/gdb/sparc64-nat.c b/gdb/sparc64-nat.c
new file mode 100644
index 00000000000..40a8b3b3904
--- /dev/null
+++ b/gdb/sparc64-nat.c
@@ -0,0 +1,87 @@
+/* Native-dependent code for GNU/Linux UltraSPARC.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "gdbarch.h"
+
+#include "sparc64-tdep.h"
+#include "sparc-nat.h"
+
+/* Determine whether `gregset_t' contains register REGNUM. */
+
+static int
+sparc64_gregset_supplies_p (int regnum)
+{
+ if (gdbarch_ptr_bit (current_gdbarch) == 32)
+ return sparc32_gregset_supplies_p (regnum);
+
+ /* Integer registers. */
+ if ((regnum >= SPARC_G1_REGNUM && regnum <= SPARC_G7_REGNUM)
+ || (regnum >= SPARC_O0_REGNUM && regnum <= SPARC_O7_REGNUM)
+ || (regnum >= SPARC_L0_REGNUM && regnum <= SPARC_L7_REGNUM)
+ || (regnum >= SPARC_I0_REGNUM && regnum <= SPARC_I7_REGNUM))
+ return 1;
+
+ /* Control registers. */
+ if (regnum == SPARC64_PC_REGNUM
+ || regnum == SPARC64_NPC_REGNUM
+ || regnum == SPARC64_STATE_REGNUM
+ || regnum == SPARC64_Y_REGNUM
+ || regnum == SPARC64_FPRS_REGNUM)
+ return 1;
+
+ return 0;
+}
+
+/* Determine whether `fpregset_t' contains register REGNUM. */
+
+static int
+sparc64_fpregset_supplies_p (int regnum)
+{
+ if (gdbarch_ptr_bit (current_gdbarch) == 32)
+ return sparc32_fpregset_supplies_p (regnum);
+
+ /* Floating-point registers. */
+ if ((regnum >= SPARC_F0_REGNUM && regnum <= SPARC_F31_REGNUM)
+ || (regnum >= SPARC64_F32_REGNUM && regnum <= SPARC64_F62_REGNUM))
+ return 1;
+
+ /* Control registers. */
+ if (regnum == SPARC64_FSR_REGNUM)
+ return 1;
+
+ return 0;
+}
+
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+void _initialize_sparc64_nat (void);
+
+void
+_initialize_sparc64_nat (void)
+{
+ sparc_supply_gregset = sparc64_supply_gregset;
+ sparc_collect_gregset = sparc64_collect_gregset;
+ sparc_supply_fpregset = sparc64_supply_fpregset;
+ sparc_collect_fpregset = sparc64_collect_fpregset;
+ sparc_gregset_supplies_p = sparc64_gregset_supplies_p;
+ sparc_fpregset_supplies_p = sparc64_fpregset_supplies_p;
+}
diff --git a/gdb/sparc64-sol2-tdep.c b/gdb/sparc64-sol2-tdep.c
new file mode 100644
index 00000000000..079f3c502e7
--- /dev/null
+++ b/gdb/sparc64-sol2-tdep.c
@@ -0,0 +1,182 @@
+/* Target-dependent code for Solaris UltraSPARC.
+
+ Copyright 2003, 2004 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "frame.h"
+#include "frame-unwind.h"
+#include "gdbarch.h"
+#include "symtab.h"
+#include "objfiles.h"
+#include "osabi.h"
+#include "trad-frame.h"
+
+#include "gdb_assert.h"
+
+#include "sparc64-tdep.h"
+
+/* From <sys/regset.h>. */
+const struct sparc_gregset sparc64_sol2_gregset =
+{
+ 32 * 8, /* "tstate" */
+ 33 * 8, /* %pc */
+ 34 * 8, /* %npc */
+ 35 * 8, /* %y */
+ -1, /* %wim */
+ -1, /* %tbr */
+ 1 * 8, /* %g1 */
+ 16 * 8, /* %l0 */
+ 8 /* sizeof (%y) */
+};
+
+
+static struct sparc_frame_cache *
+sparc64_sol2_sigtramp_frame_cache (struct frame_info *next_frame,
+ void **this_cache)
+{
+ struct sparc_frame_cache *cache;
+ CORE_ADDR mcontext_addr, addr;
+ int regnum;
+
+ if (*this_cache)
+ return *this_cache;
+
+ cache = sparc_frame_cache (next_frame, this_cache);
+ gdb_assert (cache == *this_cache);
+
+ cache->saved_regs = trad_frame_alloc_saved_regs (next_frame);
+
+ /* The third argument is a pointer to an instance of `ucontext_t',
+ which has a member `uc_mcontext' that contains the saved
+ registers. */
+ regnum = (cache->frameless_p ? SPARC_O2_REGNUM : SPARC_I2_REGNUM);
+ mcontext_addr = frame_unwind_register_unsigned (next_frame, regnum) + 64;
+
+ cache->saved_regs[SPARC64_CCR_REGNUM].addr = mcontext_addr + 0 * 8;
+ cache->saved_regs[SPARC64_PC_REGNUM].addr = mcontext_addr + 1 * 8;
+ cache->saved_regs[SPARC64_NPC_REGNUM].addr = mcontext_addr + 2 * 8;
+ cache->saved_regs[SPARC64_Y_REGNUM].addr = mcontext_addr + 3 * 8;
+ cache->saved_regs[SPARC64_ASI_REGNUM].addr = mcontext_addr + 19 * 8;
+ cache->saved_regs[SPARC64_FPRS_REGNUM].addr = mcontext_addr + 20 * 8;
+
+ /* Since %g0 is always zero, keep the identity encoding. */
+ for (regnum = SPARC_G1_REGNUM, addr = mcontext_addr + 4 * 8;
+ regnum <= SPARC_O7_REGNUM; regnum++, addr += 8)
+ cache->saved_regs[regnum].addr = addr;
+
+ if (get_frame_memory_unsigned (next_frame, mcontext_addr + 21 * 8, 8))
+ {
+ /* The register windows haven't been flushed. */
+ for (regnum = SPARC_L0_REGNUM; regnum <= SPARC_I7_REGNUM; regnum++)
+ trad_frame_set_unknown (cache->saved_regs, regnum);
+ }
+ else
+ {
+ CORE_ADDR sp;
+
+ addr = cache->saved_regs[SPARC_SP_REGNUM].addr;
+ sp = get_frame_memory_unsigned (next_frame, addr, 8);
+ for (regnum = SPARC_L0_REGNUM, addr = sp + BIAS;
+ regnum <= SPARC_I7_REGNUM; regnum++, addr += 8)
+ cache->saved_regs[regnum].addr = addr;
+ }
+
+ return cache;
+}
+
+static void
+sparc64_sol2_sigtramp_frame_this_id (struct frame_info *next_frame,
+ void **this_cache,
+ struct frame_id *this_id)
+{
+ struct sparc_frame_cache *cache =
+ sparc64_sol2_sigtramp_frame_cache (next_frame, this_cache);
+
+ (*this_id) = frame_id_build (cache->base, cache->pc);
+}
+
+static void
+sparc64_sol2_sigtramp_frame_prev_register (struct frame_info *next_frame,
+ void **this_cache,
+ int regnum, int *optimizedp,
+ enum lval_type *lvalp,
+ CORE_ADDR *addrp,
+ int *realnump, void *valuep)
+{
+ struct sparc_frame_cache *cache =
+ sparc64_sol2_sigtramp_frame_cache (next_frame, this_cache);
+
+ trad_frame_prev_register (next_frame, cache->saved_regs, regnum,
+ optimizedp, lvalp, addrp, realnump, valuep);
+}
+
+static const struct frame_unwind sparc64_sol2_sigtramp_frame_unwind =
+{
+ SIGTRAMP_FRAME,
+ sparc64_sol2_sigtramp_frame_this_id,
+ sparc64_sol2_sigtramp_frame_prev_register
+};
+
+static const struct frame_unwind *
+sparc64_sol2_sigtramp_frame_sniffer (struct frame_info *next_frame)
+{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
+ char *name;
+
+ find_pc_partial_function (pc, &name, NULL, NULL);
+ if (sparc_sol2_pc_in_sigtramp (pc, name))
+ return &sparc64_sol2_sigtramp_frame_unwind;
+
+ return NULL;
+}
+
+
+void
+sparc64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ set_gdbarch_pc_in_sigtramp (gdbarch, sparc_sol2_pc_in_sigtramp);
+ frame_unwind_append_sniffer (gdbarch, sparc64_sol2_sigtramp_frame_sniffer);
+
+ sparc64_init_abi (info, gdbarch);
+
+ /* Solaris has SVR4-style shared libraries... */
+ set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section);
+ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
+
+ /* ...which means that we need some special handling when doing
+ prologue analysis. */
+ tdep->plt_entry_size = 16;
+
+ /* Solaris has kernel-assisted single-stepping support. */
+ set_gdbarch_software_single_step (gdbarch, NULL);
+}
+
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+void _initialize_sparc64_sol2_tdep (void);
+
+void
+_initialize_sparc64_sol2_tdep (void)
+{
+ gdbarch_register_osabi (bfd_arch_sparc, bfd_mach_sparc_v9,
+ GDB_OSABI_SOLARIS, sparc64_sol2_init_abi);
+}
diff --git a/gdb/sparc64nbsd-tdep.c b/gdb/sparc64nbsd-tdep.c
new file mode 100644
index 00000000000..8e7987008e7
--- /dev/null
+++ b/gdb/sparc64nbsd-tdep.c
@@ -0,0 +1,256 @@
+/* Target-dependent code for NetBSD/sparc64.
+
+ Copyright 2002, 2003, 2004 Free Software Foundation, Inc.
+ Based on code contributed by Wasabi Systems, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "frame.h"
+#include "frame-unwind.h"
+#include "gdbcore.h"
+#include "osabi.h"
+#include "regcache.h"
+#include "regset.h"
+#include "symtab.h"
+#include "solib-svr4.h"
+#include "trad-frame.h"
+
+#include "gdb_assert.h"
+#include "gdb_string.h"
+
+#include "sparc64-tdep.h"
+#include "nbsd-tdep.h"
+
+/* From <machine/reg.h>. */
+const struct sparc_gregset sparc64nbsd_gregset =
+{
+ 0 * 8, /* "tstate" */
+ 1 * 8, /* %pc */
+ 2 * 8, /* %npc */
+ 3 * 8, /* %y */
+ -1, /* %fprs */
+ -1,
+ 5 * 8, /* %g1 */
+ -1, /* %l0 */
+ 4 /* sizeof (%y) */
+};
+
+
+static void
+sparc64nbsd_supply_gregset (const struct regset *regset,
+ struct regcache *regcache,
+ int regnum, const void *gregs, size_t len)
+{
+ sparc64_supply_gregset (regset->descr, regcache, regnum, gregs);
+}
+
+static void
+sparc64nbsd_supply_fpregset (const struct regset *regset,
+ struct regcache *regcache,
+ int regnum, const void *fpregs, size_t len)
+{
+ sparc64_supply_fpregset (regcache, regnum, fpregs);
+}
+
+
+/* Signal trampolines. */
+
+/* The following variables describe the location of an on-stack signal
+ trampoline. The current values correspond to the memory layout for
+ NetBSD 1.3 and up. These shouldn't be necessary for NetBSD 2.0 and
+ up, since NetBSD uses signal trampolines provided by libc now. */
+
+static const CORE_ADDR sparc64nbsd_sigtramp_start = 0xffffffffffffdee4ULL;
+static const CORE_ADDR sparc64nbsd_sigtramp_end = 0xffffffffffffe000ULL;
+
+static int
+sparc64nbsd_pc_in_sigtramp (CORE_ADDR pc, char *name)
+{
+ if (pc >= sparc64nbsd_sigtramp_start && pc < sparc64nbsd_sigtramp_end)
+ return 1;
+
+ return nbsd_pc_in_sigtramp (pc, name);
+}
+
+struct trad_frame_saved_reg *
+sparc64nbsd_sigcontext_saved_regs (CORE_ADDR sigcontext_addr,
+ struct frame_info *next_frame)
+{
+ struct trad_frame_saved_reg *saved_regs;
+ CORE_ADDR addr, sp;
+ int regnum, delta;
+
+ saved_regs = trad_frame_alloc_saved_regs (next_frame);
+
+ /* The registers are saved in bits and pieces scattered all over the
+ place. The code below records their location on the assumption
+ that the part of the signal trampoline that saves the state has
+ been executed. */
+
+ saved_regs[SPARC_SP_REGNUM].addr = sigcontext_addr + 8;
+ saved_regs[SPARC64_PC_REGNUM].addr = sigcontext_addr + 16;
+ saved_regs[SPARC64_NPC_REGNUM].addr = sigcontext_addr + 24;
+ saved_regs[SPARC64_STATE_REGNUM].addr = sigcontext_addr + 32;
+ saved_regs[SPARC_G1_REGNUM].addr = sigcontext_addr + 40;
+ saved_regs[SPARC_O0_REGNUM].addr = sigcontext_addr + 48;
+
+ /* The remaining `global' registers and %y are saved in the `local'
+ registers. */
+ delta = SPARC_L0_REGNUM - SPARC_G0_REGNUM;
+ for (regnum = SPARC_G2_REGNUM; regnum <= SPARC_G7_REGNUM; regnum++)
+ saved_regs[regnum].realreg = regnum + delta;
+ saved_regs[SPARC64_Y_REGNUM].realreg = SPARC_L1_REGNUM;
+
+ /* The remaining `out' registers can be found in the current frame's
+ `in' registers. */
+ delta = SPARC_I0_REGNUM - SPARC_O0_REGNUM;
+ for (regnum = SPARC_O1_REGNUM; regnum <= SPARC_O5_REGNUM; regnum++)
+ saved_regs[regnum].realreg = regnum + delta;
+ saved_regs[SPARC_O7_REGNUM].realreg = SPARC_I7_REGNUM;
+
+ /* The `local' and `in' registers have been saved in the register
+ save area. */
+ addr = saved_regs[SPARC_SP_REGNUM].addr;
+ sp = get_frame_memory_unsigned (next_frame, addr, 8);
+ for (regnum = SPARC_L0_REGNUM, addr = sp + BIAS;
+ regnum <= SPARC_I7_REGNUM; regnum++, addr += 8)
+ saved_regs[regnum].addr = addr;
+
+ /* TODO: Handle the floating-point registers. */
+
+ return saved_regs;
+}
+
+static struct sparc_frame_cache *
+sparc64nbsd_sigcontext_frame_cache (struct frame_info *next_frame,
+ void **this_cache)
+{
+ struct sparc_frame_cache *cache;
+ CORE_ADDR addr;
+
+ if (*this_cache)
+ return *this_cache;
+
+ cache = sparc_frame_cache (next_frame, this_cache);
+ gdb_assert (cache == *this_cache);
+
+ /* If we couldn't find the frame's function, we're probably dealing
+ with an on-stack signal trampoline. */
+ if (cache->pc == 0)
+ {
+ cache->pc = sparc64nbsd_sigtramp_start;
+
+ /* Since we couldn't find the frame's function, the cache was
+ initialized under the assumption that we're frameless. */
+ cache->frameless_p = 0;
+ addr = frame_unwind_register_unsigned (next_frame, SPARC_FP_REGNUM);
+ cache->base = addr;
+ }
+
+ /* We find the appropriate instance of `struct sigcontext' at a
+ fixed offset in the signal frame. */
+ addr = cache->base + BIAS + 128 + 8;
+ cache->saved_regs = sparc64nbsd_sigcontext_saved_regs (addr, next_frame);
+
+ return cache;
+}
+
+static void
+sparc64nbsd_sigcontext_frame_this_id (struct frame_info *next_frame,
+ void **this_cache,
+ struct frame_id *this_id)
+{
+ struct sparc_frame_cache *cache =
+ sparc64nbsd_sigcontext_frame_cache (next_frame, this_cache);
+
+ (*this_id) = frame_id_build (cache->base, cache->pc);
+}
+
+static void
+sparc64nbsd_sigcontext_frame_prev_register (struct frame_info *next_frame,
+ void **this_cache,
+ int regnum, int *optimizedp,
+ enum lval_type *lvalp,
+ CORE_ADDR *addrp,
+ int *realnump, void *valuep)
+{
+ struct sparc_frame_cache *cache =
+ sparc64nbsd_sigcontext_frame_cache (next_frame, this_cache);
+
+ trad_frame_prev_register (next_frame, cache->saved_regs, regnum,
+ optimizedp, lvalp, addrp, realnump, valuep);
+}
+
+static const struct frame_unwind sparc64nbsd_sigcontext_frame_unwind =
+{
+ SIGTRAMP_FRAME,
+ sparc64nbsd_sigcontext_frame_this_id,
+ sparc64nbsd_sigcontext_frame_prev_register
+};
+
+static const struct frame_unwind *
+sparc64nbsd_sigtramp_frame_sniffer (struct frame_info *next_frame)
+{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
+ char *name;
+
+ find_pc_partial_function (pc, &name, NULL, NULL);
+ if (sparc64nbsd_pc_in_sigtramp (pc, name))
+ {
+ if (name == NULL || strncmp (name, "__sigtramp_sigcontext", 21))
+ return &sparc64nbsd_sigcontext_frame_unwind;
+ }
+
+ return NULL;
+}
+
+
+static void
+sparc64nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ tdep->gregset = XMALLOC (struct regset);
+ tdep->gregset->descr = &sparc64nbsd_gregset;
+ tdep->gregset->supply_regset = sparc64nbsd_supply_gregset;
+ tdep->sizeof_gregset = 160;
+
+ tdep->fpregset = XMALLOC (struct regset);
+ tdep->fpregset->supply_regset = sparc64nbsd_supply_fpregset;
+ tdep->sizeof_fpregset = 272;
+
+ set_gdbarch_pc_in_sigtramp (gdbarch, sparc64nbsd_pc_in_sigtramp);
+ frame_unwind_append_sniffer (gdbarch, sparc64nbsd_sigtramp_frame_sniffer);
+
+ sparc64_init_abi (info, gdbarch);
+
+ set_solib_svr4_fetch_link_map_offsets
+ (gdbarch, nbsd_lp64_solib_svr4_fetch_link_map_offsets);
+}
+
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+void _initialize_sparc64nbsd_tdep (void);
+
+void
+_initialize_sparc64nbsd_tdep (void)
+{
+ gdbarch_register_osabi (bfd_arch_sparc, bfd_mach_sparc_v9,
+ GDB_OSABI_NETBSD_ELF, sparc64nbsd_init_abi);
+}
diff --git a/gdb/sparc64obsd-tdep.c b/gdb/sparc64obsd-tdep.c
new file mode 100644
index 00000000000..190a46be1fa
--- /dev/null
+++ b/gdb/sparc64obsd-tdep.c
@@ -0,0 +1,210 @@
+/* Target-dependent code for OpenBSD/sparc64.
+
+ Copyright 2004 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "frame.h"
+#include "frame-unwind.h"
+#include "osabi.h"
+#include "regset.h"
+#include "symtab.h"
+#include "solib-svr4.h"
+#include "trad-frame.h"
+
+#include "gdb_assert.h"
+
+#include "sparc64-tdep.h"
+#include "nbsd-tdep.h"
+
+/* OpenBSD uses the traditional NetBSD core file format, even for
+ ports that use ELF. The core files don't use multiple register
+ sets. Instead, the general-purpose and floating-point registers
+ are lumped together in a single section. Unlike on NetBSD, OpenBSD
+ uses a different layout for its general-purpose registers than the
+ layout used for ptrace(2). */
+
+/* From <machine/reg.h>. */
+const struct sparc_gregset sparc64obsd_core_gregset =
+{
+ 0 * 8, /* "tstate" */
+ 1 * 8, /* %pc */
+ 2 * 8, /* %npc */
+ 3 * 8, /* %y */
+ -1, /* %fprs */
+ -1,
+ 7 * 8, /* %g1 */
+ 22 * 8, /* %l0 */
+ 4 /* sizeof (%y) */
+};
+
+static void
+sparc64obsd_supply_gregset (const struct regset *regset,
+ struct regcache *regcache,
+ int regnum, const void *gregs, size_t len)
+{
+ const char *regs = gregs;
+
+ sparc64_supply_gregset (regset->descr, regcache, regnum, regs);
+ sparc64_supply_fpregset (regcache, regnum, regs + 288);
+}
+
+
+/* Signal trampolines. */
+
+/* The OpenBSD kernel maps the signal trampoline at some random
+ location in user space, which means that the traditional BSD way of
+ detecting it won't work.
+
+ The signal trampoline will be mapped at an address that is page
+ aligned. We recognize the signal trampoline by the looking for the
+ sigreturn system call. */
+
+static const int sparc64obsd_page_size = 8192;
+
+static int
+sparc64obsd_pc_in_sigtramp (CORE_ADDR pc, char *name)
+{
+ CORE_ADDR start_pc = (pc & ~(sparc64obsd_page_size - 1));
+ unsigned long insn;
+
+ if (name)
+ return 0;
+
+ /* Check for "restore %g0, SYS_sigreturn, %g1". */
+ insn = sparc_fetch_instruction (start_pc + 0xe8);
+ if (insn != 0x83e82067)
+ return 0;
+
+ /* Check for "t ST_SYSCALL". */
+ insn = sparc_fetch_instruction (start_pc + 0xf0);
+ if (insn != 0x91d02000)
+ return 0;
+
+ return 1;
+}
+
+static struct sparc_frame_cache *
+sparc64obsd_frame_cache (struct frame_info *next_frame, void **this_cache)
+{
+ struct sparc_frame_cache *cache;
+ CORE_ADDR addr;
+
+ if (*this_cache)
+ return *this_cache;
+
+ cache = sparc_frame_cache (next_frame, this_cache);
+ gdb_assert (cache == *this_cache);
+
+ /* If we couldn't find the frame's function, we're probably dealing
+ with an on-stack signal trampoline. */
+ if (cache->pc == 0)
+ {
+ cache->pc = frame_pc_unwind (next_frame);
+ cache->pc &= ~(sparc64obsd_page_size - 1);
+
+ /* Since we couldn't find the frame's function, the cache was
+ initialized under the assumption that we're frameless. */
+ cache->frameless_p = 0;
+ addr = frame_unwind_register_unsigned (next_frame, SPARC_FP_REGNUM);
+ cache->base = addr;
+ }
+
+ /* We find the appropriate instance of `struct sigcontext' at a
+ fixed offset in the signal frame. */
+ addr = cache->base + BIAS + 128 + 16;
+ cache->saved_regs = sparc64nbsd_sigcontext_saved_regs (addr, next_frame);
+
+ return cache;
+}
+
+static void
+sparc64obsd_frame_this_id (struct frame_info *next_frame, void **this_cache,
+ struct frame_id *this_id)
+{
+ struct sparc_frame_cache *cache =
+ sparc64obsd_frame_cache (next_frame, this_cache);
+
+ (*this_id) = frame_id_build (cache->base, cache->pc);
+}
+
+static void
+sparc64obsd_frame_prev_register (struct frame_info *next_frame,
+ void **this_cache,
+ int regnum, int *optimizedp,
+ enum lval_type *lvalp, CORE_ADDR *addrp,
+ int *realnump, void *valuep)
+{
+ struct sparc_frame_cache *cache =
+ sparc64obsd_frame_cache (next_frame, this_cache);
+
+ trad_frame_prev_register (next_frame, cache->saved_regs, regnum,
+ optimizedp, lvalp, addrp, realnump, valuep);
+}
+
+static const struct frame_unwind sparc64obsd_frame_unwind =
+{
+ SIGTRAMP_FRAME,
+ sparc64obsd_frame_this_id,
+ sparc64obsd_frame_prev_register
+};
+
+static const struct frame_unwind *
+sparc64obsd_sigtramp_frame_sniffer (struct frame_info *next_frame)
+{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
+ char *name;
+
+ find_pc_partial_function (pc, &name, NULL, NULL);
+ if (sparc64obsd_pc_in_sigtramp (pc, name))
+ return &sparc64obsd_frame_unwind;
+
+ return NULL;
+}
+
+
+static void
+sparc64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ tdep->gregset = XMALLOC (struct regset);
+ tdep->gregset->descr = &sparc64obsd_core_gregset;
+ tdep->gregset->supply_regset = sparc64obsd_supply_gregset;
+ tdep->sizeof_gregset = 832;
+
+ set_gdbarch_pc_in_sigtramp (gdbarch, sparc64obsd_pc_in_sigtramp);
+ frame_unwind_append_sniffer (gdbarch, sparc64obsd_sigtramp_frame_sniffer);
+
+ sparc64_init_abi (info, gdbarch);
+
+ set_solib_svr4_fetch_link_map_offsets
+ (gdbarch, nbsd_lp64_solib_svr4_fetch_link_map_offsets);
+}
+
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+void _initialize_sparc64obsd_tdep (void);
+
+void
+_initialize_sparc64obsd_tdep (void)
+{
+ gdbarch_register_osabi (bfd_arch_sparc, bfd_mach_sparc_v9,
+ GDB_OSABI_OPENBSD_ELF, sparc64obsd_init_abi);
+}
diff --git a/gdb/sparcobsd-tdep.c b/gdb/sparcobsd-tdep.c
new file mode 100644
index 00000000000..108e255ed13
--- /dev/null
+++ b/gdb/sparcobsd-tdep.c
@@ -0,0 +1,171 @@
+/* Target-dependent code for OpenBSD/sparc.
+
+ Copyright 2004 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "floatformat.h"
+#include "frame.h"
+#include "frame-unwind.h"
+#include "osabi.h"
+#include "solib-svr4.h"
+#include "symtab.h"
+#include "trad-frame.h"
+
+#include "gdb_assert.h"
+
+#include "sparc-tdep.h"
+#include "nbsd-tdep.h"
+
+/* Signal trampolines. */
+
+/* The OpenBSD kernel maps the signal trampoline at some random
+ location in user space, which means that the traditional BSD way of
+ detecting it won't work.
+
+ The signal trampoline will be mapped at an address that is page
+ aligned. We recognize the signal trampoline by the looking for the
+ sigreturn system call. */
+
+static const int sparc32obsd_page_size = 4096;
+
+static int
+sparc32obsd_pc_in_sigtramp (CORE_ADDR pc, char *name)
+{
+ CORE_ADDR start_pc = (pc & ~(sparc32obsd_page_size - 1));
+ unsigned long insn;
+
+ if (name)
+ return 0;
+
+ /* Check for "restore %g0, SYS_sigreturn, %g1". */
+ insn = sparc_fetch_instruction (start_pc + 0xec);
+ if (insn != 0x83e82067)
+ return 0;
+
+ /* Check for "t ST_SYSCALL". */
+ insn = sparc_fetch_instruction (start_pc + 0xf4);
+ if (insn != 0x91d02000)
+ return 0;
+
+ return 1;
+}
+
+static struct sparc_frame_cache *
+sparc32obsd_frame_cache (struct frame_info *next_frame, void **this_cache)
+{
+ struct sparc_frame_cache *cache;
+ CORE_ADDR addr;
+
+ if (*this_cache)
+ return *this_cache;
+
+ cache = sparc_frame_cache (next_frame, this_cache);
+ gdb_assert (cache == *this_cache);
+
+ /* If we couldn't find the frame's function, we're probably dealing
+ with an on-stack signal trampoline. */
+ if (cache->pc == 0)
+ {
+ cache->pc = frame_pc_unwind (next_frame);
+ cache->pc &= ~(sparc32obsd_page_size - 1);
+
+ /* Since we couldn't find the frame's function, the cache was
+ initialized under the assumption that we're frameless. */
+ cache->frameless_p = 0;
+ addr = frame_unwind_register_unsigned (next_frame, SPARC_FP_REGNUM);
+ cache->base = addr;
+ }
+
+ cache->saved_regs = sparc32nbsd_sigcontext_saved_regs (next_frame);
+
+ return cache;
+}
+
+static void
+sparc32obsd_frame_this_id (struct frame_info *next_frame, void **this_cache,
+ struct frame_id *this_id)
+{
+ struct sparc_frame_cache *cache =
+ sparc32obsd_frame_cache (next_frame, this_cache);
+
+ (*this_id) = frame_id_build (cache->base, cache->pc);
+}
+
+static void
+sparc32obsd_frame_prev_register (struct frame_info *next_frame,
+ void **this_cache,
+ int regnum, int *optimizedp,
+ enum lval_type *lvalp, CORE_ADDR *addrp,
+ int *realnump, void *valuep)
+{
+ struct sparc_frame_cache *cache =
+ sparc32obsd_frame_cache (next_frame, this_cache);
+
+ trad_frame_prev_register (next_frame, cache->saved_regs, regnum,
+ optimizedp, lvalp, addrp, realnump, valuep);
+}
+
+static const struct frame_unwind sparc32obsd_frame_unwind =
+{
+ SIGTRAMP_FRAME,
+ sparc32obsd_frame_this_id,
+ sparc32obsd_frame_prev_register
+};
+
+static const struct frame_unwind *
+sparc32obsd_sigtramp_frame_sniffer (struct frame_info *next_frame)
+{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
+ char *name;
+
+ find_pc_partial_function (pc, &name, NULL, NULL);
+ if (sparc32obsd_pc_in_sigtramp (pc, name))
+ return &sparc32obsd_frame_unwind;
+
+ return NULL;
+}
+
+
+static void
+sparc32obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ /* OpenBSD doesn't support the 128-bit `long double' from the psABI. */
+ set_gdbarch_long_double_bit (gdbarch, 64);
+ set_gdbarch_long_double_format (gdbarch, &floatformat_ieee_double_big);
+
+ set_gdbarch_pc_in_sigtramp (gdbarch, sparc32obsd_pc_in_sigtramp);
+ frame_unwind_append_sniffer (gdbarch, sparc32obsd_sigtramp_frame_sniffer);
+
+ set_solib_svr4_fetch_link_map_offsets
+ (gdbarch, nbsd_ilp32_solib_svr4_fetch_link_map_offsets);
+}
+
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+void _initialize_sparc32obsd_tdep (void);
+
+void
+_initialize_sparc32obsd_tdep (void)
+{
+ gdbarch_register_osabi (bfd_arch_sparc, 0, GDB_OSABI_OPENBSD_ELF,
+ sparc32obsd_init_abi);
+}
diff --git a/gdb/testsuite/gdb.base/gdb1476.c b/gdb/testsuite/gdb.base/gdb1476.c
new file mode 100644
index 00000000000..c3f43760bf3
--- /dev/null
+++ b/gdb/testsuite/gdb.base/gdb1476.c
@@ -0,0 +1,12 @@
+void x()
+{
+ void (*fp)() = 0;
+ fp();
+}
+
+int
+main()
+{
+ x();
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/gdb1476.exp b/gdb/testsuite/gdb.base/gdb1476.exp
new file mode 100644
index 00000000000..b88b2de0652
--- /dev/null
+++ b/gdb/testsuite/gdb.base/gdb1476.exp
@@ -0,0 +1,72 @@
+# Copyright 2004 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@gnu.org
+
+# This file is part of the gdb testsuite.
+
+if $tracelevel {
+ strace $tracelevel
+}
+
+# Testcase for backtrace/gdb1476.
+
+set prms_id 0
+set bug_id 0
+
+set testfile "gdb1476"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+#
+# Run to `main' where we begin our tests.
+#
+
+if ![runto_main] then {
+ gdb_suppress_tests
+}
+
+# If we can examine what's at memory address 0, it is possible that we
+# could also execute it. This could probably make us run away,
+# executing random code, which could have all sorts of ill effects,
+# especially on targets without an MMU. Don't run the tests in that
+# case.
+
+send_gdb "x 0\n"
+gdb_expect {
+ -re "0x0:.*Cannot access memory at address 0x0.*$gdb_prompt $" { }
+ -re "0x0:.*Error accessing memory address 0x0.*$gdb_prompt $" { }
+ -re ".*$gdb_prompt $" {
+ untested "Memory at address 0 is possibly executable"
+ return
+ }
+}
+
+gdb_test "continue" "Program received signal SIGSEGV.*" \
+ "continue to null pointer call"
+
+gdb_test "backtrace 10" \
+ "#0\[ \t\]*0x0* in .*\r\n#1\[ \t\]*$hex in x.*\r\n#2\[ \t\]*$hex in main.*" \
+ "backtrace from null pointer call"
diff --git a/gdb/testsuite/gdb.base/sepdebug.c b/gdb/testsuite/gdb.base/sepdebug.c
new file mode 100644
index 00000000000..adb69210a88
--- /dev/null
+++ b/gdb/testsuite/gdb.base/sepdebug.c
@@ -0,0 +1,150 @@
+/* Copyright 1994, 1995, 1999, 2002, 2003, 2004 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ Please email any bugs, comments, and/or additions to this file to:
+ bug-gdb@prep.ai.mit.edu */
+
+#ifdef vxworks
+
+# include <stdio.h>
+
+/* VxWorks does not supply atoi. */
+static int
+atoi (z)
+ char *z;
+{
+ int i = 0;
+
+ while (*z >= '0' && *z <= '9')
+ i = i * 10 + (*z++ - '0');
+ return i;
+}
+
+/* I don't know of any way to pass an array to VxWorks. This function
+ can be called directly from gdb. */
+
+vxmain (arg)
+char *arg;
+{
+ char *argv[2];
+
+ argv[0] = "";
+ argv[1] = arg;
+ main (2, argv, (char **) 0);
+}
+
+#else /* ! vxworks */
+# include <stdio.h>
+# include <stdlib.h>
+#endif /* ! vxworks */
+
+/*
+ * The following functions do nothing useful. They are included simply
+ * as places to try setting breakpoints at. They are explicitly
+ * "one-line functions" to verify that this case works (some versions
+ * of gcc have or have had problems with this).
+ */
+
+#ifdef PROTOTYPES
+int marker1 (void) { return (0); }
+int marker2 (int a) { return (1); } /* set breakpoint 8 here */
+void marker3 (char *a, char *b) {}
+void marker4 (long d) {} /* set breakpoint 14 here */
+#else
+int marker1 () { return (0); }
+int marker2 (a) int a; { return (1); } /* set breakpoint 9 here */
+void marker3 (a, b) char *a, *b; {}
+void marker4 (d) long d; {} /* set breakpoint 13 here */
+#endif
+
+/*
+ * This simple classical example of recursion is useful for
+ * testing stack backtraces and such.
+ */
+
+#ifdef PROTOTYPES
+int factorial(int);
+
+int
+main (int argc, char **argv, char **envp)
+#else
+int
+main (argc, argv, envp)
+int argc;
+char *argv[], **envp;
+#endif
+{
+#ifdef usestubs
+ set_debug_traps(); /* set breakpoint 5 here */
+ breakpoint();
+#endif
+ if (argc == 12345) { /* an unlikely value < 2^16, in case uninited */ /* set breakpoint 6 here */
+ fprintf (stderr, "usage: factorial <number>\n");
+ return 1;
+ }
+ printf ("%d\n", factorial (atoi ("6"))); /* set breakpoint 1 here */
+ /* set breakpoint 12 here */
+ marker1 (); /* set breakpoint 11 here */
+ marker2 (43);
+ marker3 ("stack", "trace");
+ marker4 (177601976L);
+ argc = (argc == 12345); /* This is silly, but we can step off of it */ /* set breakpoint 2 here */
+ return argc; /* set breakpoint 10 here */
+}
+
+#ifdef PROTOTYPES
+int factorial (int value)
+#else
+int factorial (value)
+int value;
+#endif
+{
+ if (value > 1) { /* set breakpoint 7 here */
+ value *= factorial (value - 1);
+ }
+ return (value);
+}
+
+#ifdef PROTOTYPES
+int multi_line_if_conditional (int a, int b, int c)
+#else
+int multi_line_if_conditional (a, b, c)
+ int a, b, c;
+#endif
+{
+ if (a /* set breakpoint 3 here */
+ && b
+ && c)
+ return 0;
+ else
+ return 1;
+}
+
+#ifdef PROTOTYPES
+int multi_line_while_conditional (int a, int b, int c)
+#else
+int multi_line_while_conditional (a, b, c)
+ int a, b, c;
+#endif
+{
+ while (a /* set breakpoint 4 here */
+ && b
+ && c)
+ {
+ a--, b--, c--;
+ }
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/sepdebug.exp b/gdb/testsuite/gdb.base/sepdebug.exp
new file mode 100644
index 00000000000..1028dab575b
--- /dev/null
+++ b/gdb/testsuite/gdb.base/sepdebug.exp
@@ -0,0 +1,987 @@
+# Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2002, 2003, 2004
+# Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# Based on break.exp, written by Rob Savoye. (rob@cygnus.com)
+# Modified to test gdb's handling of separate debug info files.
+
+# This file has two parts. The first is testing that gdb behaves
+# normally after reading in an executable and its corresponding
+# separate debug file. The second moves the .debug file to a different
+# location and tests the "set debug-file-directory" command.
+
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+#
+# test running programs
+#
+set prms_id 0
+set bug_id 0
+
+set testfile "sepdebug"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+}
+
+# FIXME: this is nasty. We need to check for the stabs debug format.
+# To do this we must run gdb on the unstripped executable, list 'main'
+# (as to have a default source file), use get_debug_format (which does
+# 'info source') and then see if the debug info is stabs. If so, we
+# bail out. We cannot do this any other way because get_debug_format
+# finds out the debug format using gdb itself, and in case of stabs we
+# get an error loading the program if it is already stripped. An
+# alternative would be to find out the debug info from the flags
+# passed to dejagnu when the test is run.
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+gdb_test "list main" "" ""
+get_debug_format
+if { [test_debug_format "stabs"] } then {
+ # the separate debug info feature doesn't work well in binutils with stabs.
+ # It produces a corrupted debug info only file, and gdb chokes on it.
+ # It is almost impossible to capture the failing message out of gdb,
+ # because it happens inside gdb_load. At that point any error message
+ # is intercepted by dejagnu itself, and, because of the error threshold,
+ # any faulty test result is changed into an UNRESOLVED.
+ # (see dejagnu/lib/framework.exp)
+ unsupported "no separate debug info handling with stabs"
+ return -1
+} elseif { [test_debug_format "unknown"] } then {
+ # gdb doesn't know what the debug format is. We are out of luck here.
+ unsupported "unknown debugging format"
+ return -1
+}
+gdb_exit
+
+# Note: the procedure gdb_gnu_strip_debug will produce an executable called
+# ${binfile}, which is just like the executable ($binfile) but without
+# the debuginfo. Instead $binfile has a .gnudebuglink section which contains
+# the name of a debuginfo only file. This file will be stored in the
+# gdb.base/.debug subdirectory.
+
+if [gdb_gnu_strip_debug $binfile] {
+ # check that you have a recent version of strip and objcopy installed
+ unsupported "cannot produce separate debug info files"
+ return -1
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+if [target_info exists gdb_stub] {
+ gdb_step_for_stub;
+}
+#
+# test simple breakpoint setting commands
+#
+
+# Test deleting all breakpoints when there are none installed,
+# GDB should not prompt for confirmation.
+# Note that gdb-init.exp provides a "delete_breakpoints" proc
+# for general use elsewhere.
+
+send_gdb "delete breakpoints\n"
+gdb_expect {
+ -re "Delete all breakpoints.*$" {
+ send_gdb "y\n"
+ gdb_expect {
+ -re "$gdb_prompt $" {
+ fail "Delete all breakpoints when none (unexpected prompt)"
+ }
+ timeout { fail "Delete all breakpoints when none (timeout after unexpected prompt)" }
+ }
+ }
+ -re ".*$gdb_prompt $" { pass "Delete all breakpoints when none" }
+ timeout { fail "Delete all breakpoints when none (timeout)" }
+}
+
+#
+# test break at function
+#
+gdb_test "break main" \
+ "Breakpoint.*at.* file .*$srcfile, line.*" \
+ "breakpoint function"
+
+#
+# test break at quoted function
+#
+gdb_test "break \"marker2\"" \
+ "Breakpoint.*at.* file .*$srcfile, line.*" \
+ "breakpoint quoted function"
+
+#
+# test break at function in file
+#
+gdb_test "break $srcfile:factorial" \
+ "Breakpoint.*at.* file .*$srcfile, line.*" \
+ "breakpoint function in file"
+
+set bp_location1 [gdb_get_line_number "set breakpoint 1 here"]
+
+#
+# test break at line number
+#
+# Note that the default source file is the last one whose source text
+# was printed. For native debugging, before we've executed the
+# program, this is the file containing main, but for remote debugging,
+# it's wherever the processor was stopped when we connected to the
+# board. So, to be sure, we do a list command.
+#
+gdb_test "list main" \
+ ".*main \\(argc, argv, envp\\).*" \
+ "use `list' to establish default source file"
+gdb_test "break $bp_location1" \
+ "Breakpoint.*at.* file .*$srcfile, line $bp_location1\\." \
+ "breakpoint line number"
+
+#
+# test duplicate breakpoint
+#
+gdb_test "break $bp_location1" \
+ "Note: breakpoint \[0-9\]+ also set at pc.*Breakpoint \[0-9\]+ at.* file .*$srcfile, line $bp_location1\\." \
+ "breakpoint duplicate"
+
+set bp_location2 [gdb_get_line_number "set breakpoint 2 here"]
+
+#
+# test break at line number in file
+#
+gdb_test "break $srcfile:$bp_location2" \
+ "Breakpoint.*at.* file .*$srcfile, line $bp_location2\\." \
+ "breakpoint line number in file"
+
+set bp_location3 [gdb_get_line_number "set breakpoint 3 here"]
+set bp_location4 [gdb_get_line_number "set breakpoint 4 here"]
+
+#
+# Test putting a break at the start of a multi-line if conditional.
+# Verify the breakpoint was put at the start of the conditional.
+#
+gdb_test "break multi_line_if_conditional" \
+ "Breakpoint.*at.* file .*$srcfile, line $bp_location3\\." \
+ "breakpoint at start of multi line if conditional"
+
+gdb_test "break multi_line_while_conditional" \
+ "Breakpoint.*at.* file .*$srcfile, line $bp_location4\\." \
+ "breakpoint at start of multi line while conditional"
+
+set bp_location5 [gdb_get_line_number "set breakpoint 5 here"]
+set bp_location6 [gdb_get_line_number "set breakpoint 6 here"]
+
+#
+# check to see what breakpoints are set
+#
+if [target_info exists gdb_stub] {
+ set main_line $bp_location5
+} else {
+ set main_line $bp_location6
+}
+
+set bp_location7 [gdb_get_line_number "set breakpoint 7 here"]
+set bp_location8 [gdb_get_line_number "set breakpoint 8 here"]
+set bp_location9 [gdb_get_line_number "set breakpoint 9 here"]
+
+gdb_test "info break" \
+ "Num Type\[ \]+Disp Enb Address\[ \]+What.*
+\[0-9\]+\[\t \]+breakpoint keep y.* in main at .*$srcfile:$main_line.*
+\[0-9\]+\[\t \]+breakpoint keep y.* in marker2 at .*$srcfile:($bp_location8|$bp_location9).*
+\[0-9\]+\[\t \]+breakpoint keep y.* in factorial at .*$srcfile:$bp_location7.*
+\[0-9\]+\[\t \]+breakpoint keep y.* in main at .*$srcfile:$bp_location1.*
+\[0-9\]+\[\t \]+breakpoint keep y.* in main at .*$srcfile:$bp_location1.*
+\[0-9\]+\[\t \]+breakpoint keep y.* in main at .*$srcfile:$bp_location2.*
+\[0-9\]+\[\t \]+breakpoint keep y.* in multi_line_if_conditional at .*$srcfile:$bp_location3.*
+\[0-9\]+\[\t \]+breakpoint keep y.* in multi_line_while_conditional at .*$srcfile:$bp_location4" \
+ "breakpoint info"
+
+# FIXME: The rest of this test doesn't work with anything that can't
+# handle arguments.
+# Huh? There doesn't *appear* to be anything that passes arguments
+# below.
+if [istarget "mips-idt-*"] then {
+ return
+}
+
+#
+# run until the breakpoint at main is hit. For non-stubs-using targets.
+#
+if ![target_info exists use_gdb_stub] {
+ if [istarget "*-*-vxworks*"] then {
+ send_gdb "run vxmain \"2\"\n"
+ set timeout 120
+ verbose "Timeout is now $timeout seconds" 2
+ } else {
+ send_gdb "run\n"
+ }
+ gdb_expect {
+ -re "The program .* has been started already.*y or n. $" {
+ send_gdb "y\n"
+ exp_continue
+ }
+ -re "Starting program.*Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$srcfile:$bp_location6.*$bp_location6\[\t \]+if .argc.* \{.*$gdb_prompt $"\
+ { pass "run until function breakpoint" }
+ -re ".*$gdb_prompt $" { fail "run until function breakpoint" }
+ timeout { fail "run until function breakpoint (timeout)" }
+ }
+} else {
+ if ![target_info exists gdb_stub] {
+ gdb_test continue ".*Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:$bp_location6.*$bp_location6\[\t \]+if .argc.*\{.*" "stub continue"
+ }
+}
+
+#
+# run until the breakpoint at a line number
+#
+gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:$bp_location1.*$bp_location1\[\t \]+printf.*factorial.*" \
+ "run until breakpoint set at a line number"
+
+#
+# Run until the breakpoint set in a function in a file
+#
+for {set i 6} {$i >= 1} {incr i -1} {
+ gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, factorial \\(value=$i\\) at .*$srcfile:$bp_location7.*$bp_location7\[\t \]+.*if .value > 1. \{.*" \
+ "run until file:function($i) breakpoint"
+}
+
+#
+# Run until the breakpoint set at a quoted function
+#
+gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, (0x\[0-9a-f\]+ in )?marker2 \\(a=43\\) at .*$srcfile:($bp_location8|$bp_location9).*" \
+ "run until quoted breakpoint"
+#
+# run until the file:function breakpoint at a line number in a file
+#
+gdb_test continue "Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:$bp_location2.*$bp_location2\[\t \]+argc = \\(argc == 12345\\);.*" \
+ "run until file:linenum breakpoint"
+
+# Test break at offset +1
+set bp_location10 [gdb_get_line_number "set breakpoint 10 here"]
+
+gdb_test "break +1" \
+ "Breakpoint.*at.* file .*$srcfile, line $bp_location10\\." \
+ "breakpoint offset +1"
+
+# Check to see if breakpoint is hit when stepped onto
+
+gdb_test "step" \
+ ".*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:$bp_location10.*$bp_location10\[\t \]+return argc;.*breakpoint 10 here.*" \
+ "step onto breakpoint"
+
+#
+# delete all breakpoints so we can start over, course this can be a test too
+#
+delete_breakpoints
+
+#
+# test temporary breakpoint at function
+#
+
+gdb_test "tbreak main" "Breakpoint.*at.* file .*$srcfile, line.*" "Temporary breakpoint function"
+
+#
+# test break at function in file
+#
+
+gdb_test "tbreak $srcfile:factorial" "Breakpoint.*at.* file .*$srcfile, line.*" \
+ "Temporary breakpoint function in file"
+
+#
+# test break at line number
+#
+send_gdb "tbreak $bp_location1\n"
+gdb_expect {
+ -re "Breakpoint.*at.* file .*$srcfile, line $bp_location1.*$gdb_prompt $" { pass "Temporary breakpoint line number #1" }
+ -re ".*$gdb_prompt $" { pass "Temporary breakpoint line number #1" }
+ timeout { fail "breakpoint line number #1 (timeout)" }
+}
+
+gdb_test "tbreak $bp_location6" "Breakpoint.*at.* file .*$srcfile, line $bp_location6.*" "Temporary breakpoint line number #2"
+
+#
+# test break at line number in file
+#
+send_gdb "tbreak $srcfile:$bp_location2\n"
+gdb_expect {
+ -re "Breakpoint.*at.* file .*$srcfile, line $bp_location2.*$gdb_prompt $" { pass "Temporary breakpoint line number in file #1" }
+ -re ".*$gdb_prompt $" { pass "Temporary breakpoint line number in file #1" }
+ timeout { fail "Temporary breakpoint line number in file #1 (timeout)" }
+}
+
+set bp_location11 [gdb_get_line_number "set breakpoint 11 here"]
+gdb_test "tbreak $srcfile:$bp_location11" "Breakpoint.*at.* file .*$srcfile, line $bp_location11.*" "Temporary breakpoint line number in file #2"
+
+#
+# check to see what breakpoints are set (temporary this time)
+#
+gdb_test "info break" "Num Type.*Disp Enb Address.*What.*\[\r\n\]
+\[0-9\]+\[\t \]+breakpoint del.*y.*in main at .*$srcfile:$main_line.*\[\r\n\]
+\[0-9\]+\[\t \]+breakpoint del.*y.*in factorial at .*$srcfile:$bp_location7.*\[\r\n\]
+\[0-9\]+\[\t \]+breakpoint del.*y.*in main at .*$srcfile:$bp_location1.*\[\r\n\]
+\[0-9\]+\[\t \]+breakpoint del.*y.*in main at .*$srcfile:$bp_location6.*\[\r\n\]
+\[0-9\]+\[\t \]+breakpoint del.*y.*in main at .*$srcfile:$bp_location2.*\[\r\n\]
+\[0-9\]+\[\t \]+breakpoint del.*y.*in main at .*$srcfile:$bp_location11.*" \
+ "Temporary breakpoint info"
+
+
+#***********
+
+# Verify that catchpoints for fork, vfork and exec don't trigger
+# inappropriately. (There are no calls to those system functions
+# in this test program.)
+#
+if ![runto_main] then { fail "break tests suppressed" }
+
+send_gdb "catch\n"
+gdb_expect {
+ -re "Catch requires an event name.*$gdb_prompt $"\
+ {pass "catch requires an event name"}
+ -re "$gdb_prompt $"\
+ {fail "catch requires an event name"}
+ timeout {fail "(timeout) catch requires an event name"}
+}
+
+
+set name "set catch fork, never expected to trigger"
+send_gdb "catch fork\n"
+gdb_expect {
+ -re "Catchpoint \[0-9\]* .fork..*$gdb_prompt $"
+ {pass $name}
+ -re "Catch of fork not yet implemented.*$gdb_prompt $"
+ {pass $name}
+ -re "$gdb_prompt $"
+ {fail $name}
+ timeout {fail "(timeout) $name"}
+}
+
+
+set name "set catch vfork, never expected to trigger"
+send_gdb "catch vfork\n"
+
+# If we are on HP-UX 10.20, we expect an error message to be
+# printed if we type "catch vfork" at the gdb gdb_prompt. This is
+# because on HP-UX 10.20, we cannot catch vfork events.
+
+if [istarget "hppa*-hp-hpux10.20"] then {
+ gdb_expect {
+ -re "Catch of vfork events not supported on HP-UX 10.20..*$gdb_prompt $"
+ {pass $name}
+ -re "$gdb_prompt $"
+ {fail $name}
+ timeout {fail "(timeout) $name"}
+ }
+} else {
+ gdb_expect {
+ -re "Catchpoint \[0-9\]* .vfork..*$gdb_prompt $"
+ {pass $name}
+ -re "Catch of vfork not yet implemented.*$gdb_prompt $"
+ {pass $name}
+ -re "$gdb_prompt $"
+ {fail $name}
+ timeout {fail "(timeout) $name"}
+ }
+}
+
+set name "set catch exec, never expected to trigger"
+send_gdb "catch exec\n"
+gdb_expect {
+ -re "Catchpoint \[0-9\]* .exec..*$gdb_prompt $"
+ {pass $name}
+ -re "Catch of exec not yet implemented.*$gdb_prompt $"
+ {pass $name}
+ -re "$gdb_prompt $" {fail $name}
+ timeout {fail "(timeout) $name"}
+}
+
+# Verify that GDB responds gracefully when asked to set a breakpoint
+# on a nonexistent source line.
+#
+send_gdb "break 999\n"
+gdb_expect {
+ -re "No line 999 in file .*$gdb_prompt $"\
+ {pass "break on non-existent source line"}
+ -re "$gdb_prompt $"\
+ {fail "break on non-existent source line"}
+ timeout {fail "(timeout) break on non-existent source line"}
+}
+
+# Run to the desired default location. If not positioned here, the
+# tests below don't work.
+#
+gdb_test "until $bp_location1" "main .* at .*:$bp_location1.*" "until bp_location1"
+
+
+# Verify that GDB allows one to just say "break", which is treated
+# as the "default" breakpoint. Note that GDB gets cute when printing
+# the informational message about other breakpoints at the same
+# location. We'll hit that bird with this stone too.
+#
+send_gdb "break\n"
+gdb_expect {
+ -re "Breakpoint \[0-9\]*.*$gdb_prompt $"\
+ {pass "break on default location, 1st time"}
+ -re "$gdb_prompt $"\
+ {fail "break on default location, 1st time"}
+ timeout {fail "(timeout) break on default location, 1st time"}
+}
+
+send_gdb "break\n"
+gdb_expect {
+ -re "Note: breakpoint \[0-9\]* also set at .*Breakpoint \[0-9\]*.*$gdb_prompt $"\
+ {pass "break on default location, 2nd time"}
+ -re "$gdb_prompt $"\
+ {fail "break on default location, 2nd time"}
+ timeout {fail "(timeout) break on default location, 2nd time"}
+}
+
+send_gdb "break\n"
+gdb_expect {
+ -re "Note: breakpoints \[0-9\]* and \[0-9\]* also set at .*Breakpoint \[0-9\]*.*$gdb_prompt $"\
+ {pass "break on default location, 3rd time"}
+ -re "$gdb_prompt $"\
+ {fail "break on default location, 3rd time"}
+ timeout {fail "(timeout) break on default location, 3rd time"}
+}
+
+send_gdb "break\n"
+gdb_expect {
+ -re "Note: breakpoints \[0-9\]*, \[0-9\]* and \[0-9\]* also set at .*Breakpoint \[0-9\]*.*$gdb_prompt $"\
+ {pass "break on default location, 4th time"}
+ -re "$gdb_prompt $"\
+ {fail "break on default location, 4th time"}
+ timeout {fail "(timeout) break on default location, 4th time"}
+}
+
+# Verify that a "silent" breakpoint can be set, and that GDB is indeed
+# "silent" about its triggering.
+#
+if ![runto_main] then { fail "break tests suppressed" }
+
+send_gdb "break $bp_location1\n"
+gdb_expect {
+ -re "Breakpoint (\[0-9\]*) at .*, line $bp_location1.*$gdb_prompt $"\
+ {pass "set to-be-silent break bp_location1"}
+ -re "$gdb_prompt $"\
+ {fail "set to-be-silent break bp_location1"}
+ timeout {fail "(timeout) set to-be-silent break bp_location1"}
+}
+
+send_gdb "commands $expect_out(1,string)\n"
+send_gdb "silent\n"
+send_gdb "end\n"
+gdb_expect {
+ -re ".*$gdb_prompt $"\
+ {pass "set silent break bp_location1"}
+ timeout {fail "(timeout) set silent break bp_location1"}
+}
+
+send_gdb "info break $expect_out(1,string)\n"
+gdb_expect {
+ -re "\[0-9\]*\[ \t\]*breakpoint.*:$bp_location1\r\n\[ \t\]*silent.*$gdb_prompt $"\
+ {pass "info silent break bp_location1"}
+ -re "$gdb_prompt $"\
+ {fail "info silent break bp_location1"}
+ timeout {fail "(timeout) info silent break bp_location1"}
+}
+send_gdb "continue\n"
+gdb_expect {
+ -re "Continuing.\r\n$gdb_prompt $"\
+ {pass "hit silent break bp_location1"}
+ -re "$gdb_prompt $"\
+ {fail "hit silent break bp_location1"}
+ timeout {fail "(timeout) hit silent break bp_location1"}
+}
+send_gdb "bt\n"
+gdb_expect {
+ -re "#0 main .* at .*:$bp_location1.*$gdb_prompt $"\
+ {pass "stopped for silent break bp_location1"}
+ -re "$gdb_prompt $"\
+ {fail "stopped for silent break bp_location1"}
+ timeout {fail "(timeout) stopped for silent break bp_location1"}
+}
+
+# Verify that GDB can at least parse a breakpoint with the
+# "thread" keyword. (We won't attempt to test here that a
+# thread-specific breakpoint really triggers appropriately.
+# The gdb.threads subdirectory contains tests for that.)
+#
+set bp_location12 [gdb_get_line_number "set breakpoint 12 here"]
+send_gdb "break $bp_location12 thread 999\n"
+gdb_expect {
+ -re "Unknown thread 999.*$gdb_prompt $"\
+ {pass "thread-specific breakpoint on non-existent thread disallowed"}
+ -re "$gdb_prompt $"\
+ {fail "thread-specific breakpoint on non-existent thread disallowed"}
+ timeout {fail "(timeout) thread-specific breakpoint on non-existent thread disallowed"}
+}
+send_gdb "break $bp_location12 thread foo\n"
+gdb_expect {
+ -re "Junk after thread keyword..*$gdb_prompt $"\
+ {pass "thread-specific breakpoint on bogus thread ID disallowed"}
+ -re "$gdb_prompt $"\
+ {fail "thread-specific breakpoint on bogus thread ID disallowed"}
+ timeout {fail "(timeout) thread-specific breakpoint on bogus thread ID disallowed"}
+}
+
+# Verify that GDB responds gracefully to a breakpoint command with
+# trailing garbage.
+#
+send_gdb "break $bp_location12 foo\n"
+gdb_expect {
+ -re "Junk at end of arguments..*$gdb_prompt $"\
+ {pass "breakpoint with trailing garbage disallowed"}
+ -re "$gdb_prompt $"\
+ {fail "breakpoint with trailing garbage disallowed"}
+ timeout {fail "(timeout) breakpoint with trailing garbage disallowed"}
+}
+
+# Verify that GDB responds gracefully to a "clear" command that has
+# no matching breakpoint. (First, get us off the current source line,
+# which we know has a breakpoint.)
+#
+send_gdb "next\n"
+gdb_expect {
+ -re ".*$gdb_prompt $"\
+ {pass "step over breakpoint"}
+ timeout {fail "(timeout) step over breakpoint"}
+}
+send_gdb "clear 81\n"
+gdb_expect {
+ -re "No breakpoint at 81..*$gdb_prompt $"\
+ {pass "clear line has no breakpoint disallowed"}
+ -re "$gdb_prompt $"\
+ {fail "clear line has no breakpoint disallowed"}
+ timeout {fail "(timeout) clear line has no breakpoint disallowed"}
+}
+send_gdb "clear\n"
+gdb_expect {
+ -re "No breakpoint at this line..*$gdb_prompt $"\
+ {pass "clear current line has no breakpoint disallowed"}
+ -re "$gdb_prompt $"\
+ {fail "clear current line has no breakpoint disallowed"}
+ timeout {fail "(timeout) clear current line has no breakpoint disallowed"}
+}
+
+# Verify that we can set and clear multiple breakpoints.
+#
+# We don't test that it deletes the correct breakpoints. We do at
+# least test that it deletes more than one breakpoint.
+#
+gdb_test "break marker3" "Breakpoint.*at.*" "break marker3 #1"
+gdb_test "break marker3" "Breakpoint.*at.*" "break marker3 #2"
+gdb_test "clear marker3" {Deleted breakpoints [0-9]+ [0-9]+.*}
+
+# Verify that a breakpoint can be set via a convenience variable.
+#
+send_gdb "set \$foo=$bp_location11\n"
+gdb_expect {
+ -re "$gdb_prompt $"\
+ {pass "set convenience variable \$foo to bp_location11"}
+ timeout {fail "(timeout) set convenience variable \$foo to bp_location11"}
+}
+send_gdb "break \$foo\n"
+gdb_expect {
+ -re "Breakpoint (\[0-9\]*) at .*, line $bp_location11.*$gdb_prompt $"\
+ {pass "set breakpoint via convenience variable"}
+ -re "$gdb_prompt $"\
+ {fail "set breakpoint via convenience variable"}
+ timeout {fail "(timeout) set breakpoint via convenience variable"}
+}
+
+# Verify that GDB responds gracefully to an attempt to set a
+# breakpoint via a convenience variable whose type is not integer.
+#
+send_gdb "set \$foo=81.5\n"
+gdb_expect {
+ -re "$gdb_prompt $"\
+ {pass "set convenience variable \$foo to 81.5"}
+ timeout {fail "(timeout) set convenience variable \$foo to 81.5"}
+}
+send_gdb "break \$foo\n"
+gdb_expect {
+ -re "Convenience variables used in line specs must have integer values..*$gdb_prompt $"\
+ {pass "set breakpoint via non-integer convenience variable disallowed"}
+ -re "$gdb_prompt $"\
+ {fail "set breakpoint via non-integer convenience variable disallowed"}
+ timeout {fail "(timeout) set breakpoint via non-integer convenience variable disallowed"}
+}
+
+# Verify that we can set and trigger a breakpoint in a user-called function.
+#
+send_gdb "break marker2\n"
+gdb_expect {
+ -re "Breakpoint (\[0-9\]*) at .*, line ($bp_location8|$bp_location9).*$gdb_prompt $"\
+ {pass "set breakpoint on to-be-called function"}
+ -re "$gdb_prompt $"\
+ {fail "set breakpoint on to-be-called function"}
+ timeout {fail "(timeout) set breakpoint on to-be-called function"}
+}
+send_gdb "print marker2(99)\n"
+gdb_expect {
+ -re "The program being debugged stopped while in a function called from GDB.\r\nWhen the function .marker2. is done executing, GDB will silently\r\nstop .instead of continuing to evaluate the expression containing\r\nthe function call...*$gdb_prompt $"\
+ {pass "hit breakpoint on called function"}
+ -re "$gdb_prompt $"\
+ {fail "hit breakpoint on called function"}
+ timeout {fail "(timeout) hit breakpoint on called function"}
+}
+
+# As long as we're stopped (breakpointed) in a called function,
+# verify that we can successfully backtrace & such from here.
+#
+# In this and the following test, the _sr4export check apparently is needed
+# for hppa*-*-hpux.
+#
+send_gdb "bt\n"
+gdb_expect {
+ -re "#0\[ \t\]*($hex in )?marker2.*:($bp_location8|$bp_location9)\r\n#1.*_sr4export.*$gdb_prompt $"\
+ {pass "backtrace while in called function"}
+ -re "#0\[ \t\]*($hex in )?marker2.*:($bp_location8|$bp_location9)\r\n#1.*function called from gdb.*$gdb_prompt $"\
+ {pass "backtrace while in called function"}
+ -re "$gdb_prompt $"\
+ {fail "backtrace while in called function"}
+ timeout {fail "(timeout) backtrace while in called function"}
+}
+
+# Return from the called function. For remote targets, it's important to do
+# this before runto_main, which otherwise may silently stop on the dummy
+# breakpoint inserted by GDB at the program's entry point.
+#
+send_gdb "finish\n"
+gdb_expect {
+ -re "Run till exit from .*marker2.* at .*($bp_location8|$bp_location9)\r\n.* in _sr4export.*$gdb_prompt $"\
+ {pass "finish from called function"}
+ -re "Run till exit from .*marker2.* at .*($bp_location8|$bp_location9)\r\n.*function called from gdb.*$gdb_prompt $"\
+ {pass "finish from called function"}
+ -re "Run till exit from .*marker2.* at .*($bp_location8|$bp_location9)\r\n.*Value returned.*$gdb_prompt $"\
+ {pass "finish from called function"}
+ -re "$gdb_prompt $"\
+ {fail "finish from called function"}
+ timeout {fail "(timeout) finish from called function"}
+}
+
+# Verify that GDB responds gracefully to a "finish" command with
+# arguments.
+#
+if ![runto_main] then { fail "break tests suppressed" }
+
+send_gdb "finish 123\n"
+gdb_expect {
+ -re "The \"finish\" command does not take any arguments.\r\n$gdb_prompt $"\
+ {pass "finish with arguments disallowed"}
+ -re "$gdb_prompt $"\
+ {fail "finish with arguments disallowed"}
+ timeout {fail "(timeout) finish with arguments disallowed"}
+}
+
+# Verify that GDB responds gracefully to a request to "finish" from
+# the outermost frame. On a stub that never exits, this will just
+# run to the stubs routine, so we don't get this error... Thus the
+# second condition.
+#
+
+send_gdb "finish\n"
+gdb_expect {
+ -re "\"finish\" not meaningful in the outermost frame.\r\n$gdb_prompt $"\
+ {pass "finish from outermost frame disallowed"}
+ -re "Run till exit from.*\r\n$gdb_prompt $" {
+ pass "finish from outermost frame disallowed"
+ }
+ -re "$gdb_prompt $"\
+ {fail "finish from outermost frame disallowed"}
+ timeout {fail "(timeout) finish from outermost frame disallowed"}
+}
+
+# Verify that we can explicitly ask GDB to stop on all shared library
+# events, and that it does so.
+#
+if [istarget "hppa*-*-hpux*"] then {
+ if ![runto_main] then { fail "break tests suppressed" }
+
+ send_gdb "set stop-on-solib-events 1\n"
+ gdb_expect {
+ -re "$gdb_prompt $"\
+ {pass "set stop-on-solib-events"}
+ timeout {fail "(timeout) set stop-on-solib-events"}
+ }
+
+ send_gdb "run\n"
+ gdb_expect {
+ -re ".*Start it from the beginning.*y or n. $"\
+ {send_gdb "y\n"
+ gdb_expect {
+ -re ".*Stopped due to shared library event.*$gdb_prompt $"\
+ {pass "triggered stop-on-solib-events"}
+ -re "$gdb_prompt $"\
+ {fail "triggered stop-on-solib-events"}
+ timeout {fail "(timeout) triggered stop-on-solib-events"}
+ }
+ }
+ -re "$gdb_prompt $"\
+ {fail "rerun for stop-on-solib-events"}
+ timeout {fail "(timeout) rerun for stop-on-solib-events"}
+ }
+
+ send_gdb "set stop-on-solib-events 0\n"
+ gdb_expect {
+ -re "$gdb_prompt $"\
+ {pass "reset stop-on-solib-events"}
+ timeout {fail "(timeout) reset stop-on-solib-events"}
+ }
+}
+
+# Hardware breakpoints are unsupported on HP-UX. Verify that GDB
+# gracefully responds to requests to create them.
+#
+if [istarget "hppa*-*-hpux*"] then {
+ if ![runto_main] then { fail "break tests suppressed" }
+
+ send_gdb "hbreak\n"
+ gdb_expect {
+ -re "No hardware breakpoint support in the target.*$gdb_prompt $"\
+ {pass "hw breaks disallowed"}
+ -re "$gdb_prompt $"\
+ {fail "hw breaks disallowed"}
+ timeout {fail "(timeout) hw breaks disallowed"}
+ }
+
+ send_gdb "thbreak\n"
+ gdb_expect {
+ -re "No hardware breakpoint support in the target.*$gdb_prompt $"\
+ {pass "temporary hw breaks disallowed"}
+ -re "$gdb_prompt $"\
+ {fail "temporary hw breaks disallowed"}
+ timeout {fail "(timeout) temporary hw breaks disallowed"}
+ }
+}
+
+#********
+
+
+#
+# Test "next" over recursive function call.
+#
+
+proc test_next_with_recursion {} {
+ global gdb_prompt
+ global decimal
+ global binfile
+
+ if [target_info exists use_gdb_stub] {
+ # Reload the program.
+ delete_breakpoints
+ gdb_load ${binfile};
+ } else {
+ # FIXME: should be using runto
+ gdb_test "kill" "" "kill program" "Kill the program being debugged.*y or n. $" "y"
+
+ delete_breakpoints
+ }
+
+ gdb_test "break factorial" "Breakpoint $decimal at .*" "break at factorial"
+
+ # Run until we call factorial with 6
+
+ if [istarget "*-*-vxworks*"] then {
+ send_gdb "run vxmain \"6\"\n"
+ } else {
+ gdb_run_cmd
+ }
+ gdb_expect {
+ -re "Break.* factorial .value=6. .*$gdb_prompt $" {}
+ -re ".*$gdb_prompt $" {
+ fail "run to factorial(6)";
+ gdb_suppress_tests;
+ }
+ timeout { fail "run to factorial(6) (timeout)" ; gdb_suppress_tests }
+ }
+
+ # Continue until we call factorial recursively with 5.
+
+ if [gdb_test "continue" \
+ "Continuing.*Break.* factorial .value=5. .*" \
+ "continue to factorial(5)"] then { gdb_suppress_tests }
+
+ # Do a backtrace just to confirm how many levels deep we are.
+
+ if [gdb_test "backtrace" \
+ "#0\[ \t\]+ factorial .value=5..*" \
+ "backtrace from factorial(5)"] then { gdb_suppress_tests }
+
+ # Now a "next" should position us at the recursive call, which
+ # we will be performing with 4.
+
+ if [gdb_test "next" \
+ ".* factorial .value - 1.;.*" \
+ "next to recursive call"] then { gdb_suppress_tests }
+
+ # Disable the breakpoint at the entry to factorial by deleting them all.
+ # The "next" should run until we return to the next line from this
+ # recursive call to factorial with 4.
+ # Buggy versions of gdb will stop instead at the innermost frame on
+ # the line where we are trying to "next" to.
+
+ delete_breakpoints
+
+ if [istarget "mips*tx39-*"] {
+ set timeout 60
+ }
+ # We used to set timeout here for all other targets as well. This
+ # is almost certainly wrong. The proper timeout depends on the
+ # target system in use, and how we communicate with it, so there
+ # is no single value appropriate for all targets. The timeout
+ # should be established by the Dejagnu config file(s) for the
+ # board, and respected by the test suite.
+ #
+ # For example, if I'm running GDB over an SSH tunnel talking to a
+ # portmaster in California talking to an ancient 68k board running
+ # a crummy ROM monitor (a situation I can only wish were
+ # hypothetical), then I need a large timeout. But that's not the
+ # kind of knowledge that belongs in this file.
+
+ gdb_test next "\[0-9\]*\[\t \]+return \\(value\\);.*" \
+ "next over recursive call"
+
+ # OK, we should be back in the same stack frame we started from.
+ # Do a backtrace just to confirm.
+
+ set result [gdb_test "backtrace" \
+ "#0\[ \t\]+ factorial .value=120.*\r\n#1\[ \t\]+ \[0-9a-fx\]+ in factorial .value=6..*" \
+ "backtrace from factorial(5.1)"]
+ if { $result != 0 } { gdb_suppress_tests }
+
+ if [target_info exists gdb,noresults] { gdb_suppress_tests }
+ gdb_continue_to_end "recursive next test"
+ gdb_stop_suppressing_tests;
+}
+
+test_next_with_recursion
+
+
+#********
+
+# now move the .debug file to a different location so that we can test
+# the "set debug-file-directory" command.
+
+remote_exec build "mv ${objdir}/${subdir}/.debug/${testfile}.debug ${objdir}/${subdir}"
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_test "set debug-file-directory ${objdir}/${subdir}" ".*" "set separate debug location"
+gdb_load ${binfile}
+
+if [target_info exists gdb_stub] {
+ gdb_step_for_stub;
+}
+
+#
+# test break at function
+#
+gdb_test "break main" \
+ "Breakpoint.*at.* file .*$srcfile, line.*" \
+ "breakpoint function, optimized file"
+
+#
+# test break at function
+#
+gdb_test "break marker4" \
+ "Breakpoint.*at.* file .*$srcfile, line.*" \
+ "breakpoint small function, optimized file"
+
+#
+# run until the breakpoint at main is hit. For non-stubs-using targets.
+#
+if ![target_info exists use_gdb_stub] {
+ if [istarget "*-*-vxworks*"] then {
+ send_gdb "run vxmain \"2\"\n"
+ set timeout 120
+ verbose "Timeout is now $timeout seconds" 2
+ } else {
+ send_gdb "run\n"
+ }
+ gdb_expect {
+ -re "The program .* has been started already.*y or n. $" {
+ send_gdb "y\n"
+ exp_continue
+ }
+ -re "Starting program.*Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$srcfile:$bp_location6.*$bp_location6\[\t \]+if .argc.* \{.*$gdb_prompt $"\
+ { pass "run until function breakpoint, optimized file" }
+ -re "Starting program.*Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$gdb_prompt $"\
+ { pass "run until function breakpoint, optimized file (code motion)" }
+ -re ".*$gdb_prompt $" { fail "run until function breakpoint, optimized file" }
+ timeout { fail "run until function breakpoint, optimized file (timeout)" }
+ }
+} else {
+ if ![target_info exists gdb_stub] {
+ gdb_test continue ".*Continuing\\..*Breakpoint \[0-9\]+, main \\(argc=.*, argv=.*, envp=.*\\) at .*$srcfile:$bp_location6.*$bp_location6\[\t \]+if .argc.*\{.*" "stub continue, optimized file"
+ }
+}
+
+#
+# run until the breakpoint at a small function
+#
+
+#
+# Add a second pass pattern. The behavior differs here between stabs
+# and dwarf for one-line functions. Stabs preserves two line symbols
+# (one before the prologue and one after) with the same line number,
+# but dwarf regards these as duplicates and discards one of them.
+# Therefore the address after the prologue (where the breakpoint is)
+# has no exactly matching line symbol, and GDB reports the breakpoint
+# as if it were in the middle of a line rather than at the beginning.
+
+set bp_location13 [gdb_get_line_number "set breakpoint 13 here"]
+set bp_location14 [gdb_get_line_number "set breakpoint 14 here"]
+send_gdb "continue\n"
+gdb_expect {
+ -re "Breakpoint $decimal, marker4 \\(d=177601976\\) at .*$srcfile:$bp_location13\[\r\n\]+$bp_location13\[\t \]+void marker4.*" {
+ pass "run until breakpoint set at small function, optimized file"
+ }
+ -re "Breakpoint $decimal, $hex in marker4 \\(d=177601976\\) at .*$srcfile:$bp_location13\[\r\n\]+$bp_location13\[\t \]+void marker4.*" {
+ pass "run until breakpoint set at small function, optimized file"
+ }
+ -re "Breakpoint $decimal, marker4 \\(d=177601976\\) at .*$srcfile:$bp_location14\[\r\n\]+$bp_location14\[\t \]+void marker4.*" {
+ # marker4() is defined at line 46 when compiled with -DPROTOTYPES
+ pass "run until breakpoint set at small function, optimized file (line bp_location14)"
+ }
+ -re ".*$gdb_prompt " {
+ fail "run until breakpoint set at small function, optimized file"
+ }
+ timeout {
+ fail "run until breakpoint set at small function, optimized file (timeout)"
+ }
+}
+
+
+# Reset the default arguments for VxWorks
+if [istarget "*-*-vxworks*"] {
+ set timeout 10
+ verbose "Timeout is now $timeout seconds" 2
+ send_gdb "set args main\n"
+ gdb_expect -re ".*$gdb_prompt $" {}
+}
diff --git a/gdb/testsuite/gdb.cp/bs15503.cc b/gdb/testsuite/gdb.cp/bs15503.cc
new file mode 100644
index 00000000000..aec5a0b8fcb
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/bs15503.cc
@@ -0,0 +1,74 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 1992, 2004 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ Please email any bugs, comments, and/or additions to this file to:
+ bug-gdb@prep.ai.mit.edu */
+
+#include <string>
+#include <iostream>
+using namespace std;
+
+template <class T>
+class StringTest {
+public:
+ virtual void runTest();
+ void testFunction();
+};
+
+template <class T>
+void StringTest<T>:: runTest() {
+ testFunction ();
+}
+
+template <class T>
+void StringTest <T>::testFunction() {
+ // initialize s with string literal
+ cout << "in StringTest" << endl;
+ string s("I am a shot string");
+ cout << s << endl;
+
+ // insert 'r' to fix "shot"
+ s.insert(s.begin()+10,'r' );
+ cout << s << endl;
+
+ // concatenate another string
+ s += "and now a longer string";
+ cout << s << endl;
+
+ // find position where blank needs to be inserted
+ string::size_type spos = s.find("and");
+ s.insert(spos, " ");
+ cout << s << endl;
+
+ // erase the concatenated part
+ s.erase(spos);
+ cout << s << endl;
+}
+
+int main() {
+ StringTest<wchar_t> ts;
+ ts.runTest();
+}
+
+/* output:
+I am a shot string
+I am a short string
+I am a short stringand now a longer string
+I am a short string and now a longer string
+I am a short string
+*/
diff --git a/gdb/testsuite/gdb.cp/bs15503.exp b/gdb/testsuite/gdb.cp/bs15503.exp
new file mode 100644
index 00000000000..9b6095bec1a
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/bs15503.exp
@@ -0,0 +1,100 @@
+# Copyright 1992, 2004 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+# Test case for CLLbs15503
+# This file was written by Sue Kimura (sue_kimura@hp.com)
+# Rewritten by Michael Chastain (mec.gnu@mindspring.com)
+
+if $tracelevel {
+ strace $tracelevel
+}
+
+set testfile "bs15503"
+set srcfile ${testfile}.cc
+set binfile ${objdir}/${subdir}/${testfile}
+
+if [get_compiler_info ${binfile}] {
+ return -1
+}
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "debug c++"] != "" } {
+ perror "Couldn't compile ${srcfile}"
+ return -1
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+if ![runto_main] then {
+ perror "couldn't run to breakpoint"
+ continue
+}
+
+# Set breakpoint on template function
+
+gdb_test "break StringTest<wchar_t>::testFunction" \
+ "Breakpoint $decimal at $hex: file .*${srcfile}, line $decimal."
+
+gdb_test "continue" \
+ ".*Breakpoint $decimal, StringTest<wchar_t>::testFunction \\(this=$hex\\).*" \
+ "continue to StringTest<wchar_t>"
+
+# Run to some random point in the middle of the function.
+
+gdb_breakpoint [gdb_get_line_number "find position where blank needs to be inserted"]
+gdb_continue_to_breakpoint "find position where blank needs to be inserted"
+
+# Call some string methods.
+
+gdb_test "print s.length()" "\\$\[0-9\]+ = 42"
+gdb_test "print s\[0\]" "\\$\[0-9\]+ =.* 'I'"
+gdb_test "print s\[s.length()-1\]" "\\$\[0-9\]+ =.* 'g'"
+gdb_test "print (const char *) s" \
+ "\\$\[0-9\]+ = $hex \"I am a short stringand now a longer string\""
+
+# TODO: tests that do not work with gcc 2.95.3
+# -- chastain 2004-01-07
+#
+# gdb_test "print s.compare(s)" "\\$\[0-9\]+ = 0"
+# gdb_test "print s.compare(\"AAA\")" "\\$\[0-9\]+ = 1"
+# gdb_test "print s.compare(\"ZZZ\")" "\\$\[0-9\]+ = -1"
+
+# TODO: tests that do not work with gcc 2.95.3 and gcc 3.3.2.
+# cannot call overloaded non-member operator. -- chastain 2004-01-07
+#
+# gdb_test "print s == s" "\\$\[0-9\]+ = true"
+# gdb_test "print s > "AAA" "\\$\[0-9\]+ = true"
+# gdb_test "print s < "ZZZ" "\\$\[0-9\]+ = true"
+
+# TODO crash gdb! This is going to be a great test!
+# -- chastain 2004-01-07
+#
+# gdb_test "print s == \"I am a short stringand now a longer string\"" \
+# "\\$\[0-9\]+ = "true"
+
+gdb_test "print (const char *) s.substr(0,4)" "\\$\[0-9\]+ = $hex \"I am\""
+gdb_test "print (const char *) (s=s.substr(0,4))" \
+ "\\$\[0-9\]+ = $hex \"I am\""
+
+# TODO: cannot call overloaded non-member operator again.
+# -- chastain 2004-01-07
+#
+# gdb_test "print (const char *) (s + s)" \
+# "\\$\[0-9\]+ = $hex \"I amI am\""
+# gdb_test "print (const char *) (s + \" \" + s)" \
+# "\\$\[0-9\]+ = $hex \"I am I am\""
diff --git a/gdb/testsuite/gdb.cp/exception.cc b/gdb/testsuite/gdb.cp/exception.cc
new file mode 100644
index 00000000000..4134fbcf7e7
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/exception.cc
@@ -0,0 +1,69 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 1997, 1998, 2004 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ Please email any bugs, comments, and/or additions to this file to:
+ bug-gdb@prep.ai.mit.edu */
+
+// Test file for exception handling support.
+
+#include <iostream>
+using namespace std;
+
+int foo (int i)
+{
+ if (i < 32)
+ throw (int) 13;
+ else
+ return i * 2;
+}
+
+extern "C" int bar (int k, unsigned long eharg, int flag);
+
+int bar (int k, unsigned long eharg, int flag)
+{
+ cout << "k is " << k << " eharg is " << eharg << " flag is " << flag << endl;
+ return 1;
+}
+
+int main()
+{
+ int j;
+
+ try {
+ j = foo (20);
+ }
+ catch (int x) {
+ cout << "Got an except " << x << endl;
+ }
+
+ try {
+ try {
+ j = foo (20);
+ }
+ catch (int x) {
+ cout << "Got an except " << x << endl;
+ throw;
+ }
+ }
+ catch (int y) {
+ cout << "Got an except (rethrown) " << y << endl;
+ }
+
+ // Not caught
+ foo (20);
+}
diff --git a/gdb/testsuite/gdb.cp/exception.exp b/gdb/testsuite/gdb.cp/exception.exp
new file mode 100644
index 00000000000..d921eade955
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/exception.exp
@@ -0,0 +1,222 @@
+# Copyright 1997, 1998, 2004 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file is part of the gdb testsuite.
+# tests for exception-handling support
+# Written by Satish Pai <pai@apollo.hp.com> 1997-07-23
+# Rewritten by Michael Chastain <mec.gnu@mindspring.com> 2004-01-08
+
+# This file used to have two copies of the tests with different
+# compiler flags for hp-ux. Instead, the user should set CXXOPTS
+# or run runtest with --target_board unix/gdb:debug_flags="..."
+# to choose the compiler flags.
+#
+# The interesting compiler flags are: "aCC +A -Wl,-a,-archive" .
+# Static-linked executables use a different mechanism to get the
+# address of the notification hook in the C++ support library.
+
+# TODO: this file is not ready for production yet. If you are working
+# on C++ exception support for gdb, you can take out the "continue"
+# statement and try your luck. -- chastain 2004-01-09
+
+# TODO: this file has many absolute line numbers.
+# Replace them with gdb_get_line_number.
+
+set ws "\[\r\n\t \]+"
+set nl "\[\r\n\]+"
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+set testfile "exception"
+set srcfile ${testfile}.cc
+set binfile ${objdir}/${subdir}/${testfile}
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+}
+
+# Start with a fresh gdb
+
+set prms_id 0
+set bug_id 0
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+if ![runto_main] then {
+ perror "couldn't run to breakpoint"
+ continue
+}
+
+# As I said before, this test script is not ready yet!
+
+continue
+
+# Set a catch catchpoint
+
+gdb_test "catch catch" "Catchpoint \[0-9\]+ \\(catch\\)"
+
+# Set a throw catchpoint
+
+gdb_test "catch throw" "Catchpoint \[0-9\]+ \\(throw\\)" \
+ "catch throw (static executable)"
+
+# The catchpoints should be listed in the list of breakpoints.
+
+set re_head "Num${ws}Type${ws}Disp${ws}Enb${ws}Address${ws}What"
+set re_1_main "1${ws}breakpoint${ws}keep${ws}y${ws}$hex${ws}in main.*breakpoint already hit.*"
+set re_2_catch "2${ws}catch catch${ws}keep${ws}y${ws}$hex${ws}exception catch"
+set re_3_catch "3${ws}catch throw${ws}keep${ws}y${ws}$hex${ws}exception throw"
+set re_2_bp "2${ws}breakpoint${ws}keep${ws}y${ws}$hex${ws}exception catch"
+set re_3_bp "3${ws}breakpoint${ws}keep${ws}y${ws}$hex${ws}exception throw"
+
+set name "info breakpoints"
+gdb_test_multiple "info breakpoints" $name {
+ -re "$re_head${ws}$re_1_main${ws}$re_2_catch${ws}$re_3_catch\r\n$gdb_prompt $" {
+ pass $name
+ }
+ -re "$re_head${ws}$re_1_main${ws}$re_2_bp${ws}$re_3_bp\r\n$gdb_prompt $" {
+ # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
+ unresolved $name
+ }
+}
+
+# Some targets support "info catch".
+# Some do not.
+
+set name "info catch"
+gdb_test_multiple "info catch" $name {
+ -re "Info catch not supported with this target/compiler combination.\r\n$gdb_prompt $" {
+ unsupported $name
+ }
+ -re "No catches.\r\n$gdb_prompt $" {
+ # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
+ unresolved $name
+ }
+}
+
+# Get the first exception thrown
+
+set name "continue to first throw"
+gdb_test_multiple "continue" $name {
+ -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception thrown\\), throw location.*${srcfile}:30, catch location .*${srcfile}:50\r\n$gdb_prompt $" {
+ pass $name
+ }
+ -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception thrown\\)\r\n.*\r\n$gdb_prompt $" {
+ # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
+ unresolved $name
+ }
+}
+
+# Backtrace from the throw point.
+# This should get to user code.
+
+set name "backtrace after first throw"
+gdb_test_multiple "backtrace" $name {
+ -re ".*#\[0-9\]+${ws}$hex in foo \\(i=20\\) at .*${srcfile}:30\r\n#\[0-9\]+${ws}$hex in main \\((void|)\\) at .*${srcfile}:48\r\n$gdb_prompt $" {
+ pass $name
+ }
+}
+
+# Continue to the catch.
+
+set name "continue to first catch"
+gdb_test_multiple "continue" $name {
+ -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception caught\\), throw location.*${srcfile}:30, catch location .*${srcfile}:50\r\n$gdb_prompt $" {
+ pass $name
+ }
+ -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception caught\\)\r\n.*\r\n$gdb_prompt $" {
+ # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
+ unresolved $name
+ }
+}
+
+# Backtrace from the catch point.
+# This should get to user code.
+
+set name "backtrace after first catch"
+gdb_test_multiple "backtrace" $name {
+ -re ".*#\[0-9\]+${ws}$hex in main \\((void|)\\) at .*$srcfile:50\r\n$gdb_prompt $" {
+ pass $name
+ }
+}
+
+# Continue to second throw.
+
+set name "continue to second throw"
+gdb_test_multiple "continue" $name {
+ -re "Continuing.${ws}Got an except 13${ws}Catchpoint \[0-9\]+ \\(exception thrown\\), throw location.*${srcfile}:30, catch location .*${srcfile}:58\r\n$gdb_prompt $" {
+ pass $name
+ }
+ -re "Continuing.${ws}Got an except 13${ws}Catchpoint \[0-9\]+ \\(exception thrown\\)\r\n.*\r\n$gdb_prompt $" {
+ # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
+ unresolved $name
+ }
+}
+
+# Backtrace from the throw point.
+# This should get to user code.
+
+set name "backtrace after second throw"
+gdb_test_multiple "backtrace" $name {
+ -re ".*#\[0-9\]+${ws}$hex in foo \\(i=20\\) at .*${srcfile}:30\r\n#\[0-9\]+${ws}$hex in main \\((void|)\\) at .*${srcfile}:56\r\n$gdb_prompt $" {
+ pass $name
+ }
+}
+
+# Continue to second catch.
+
+set name "continue to second catch"
+gdb_test_multiple "continue" $name {
+ -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception caught\\), throw location.*${srcfile}:30, catch location .*${srcfile}:58\r\n$gdb_prompt $" {
+ pass $name
+ }
+ -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception caught\\)\r\n.*\r\n$gdb_prompt $" {
+ # TODO: gdb HEAD 2004-01-08 does this. Is this okay?
+ unresolved $name
+ }
+}
+
+# Backtrace from the catch point.
+# This should get to user code.
+
+set name "backtrace after second catch"
+gdb_test_multiple "backtrace" $name {
+ -re ".*#\[0-9\]+${ws}$hex in main \\((void|)\\) at .*$srcfile:58\r\n$gdb_prompt $" {
+ pass $name
+ }
+}
+
+# That is all for now.
+#
+# The original code had:
+#
+# continue to re-throw ; backtrace
+# continue to catch ; backtrace
+# continue to throw out of main
+#
+# The problem is that "re-throw" does not show a throw; only a catch.
+# I do not know if this is because of a bug, or because the generated
+# code is optimized for a throw into the same function.
+#
+# -- chastain 2004-01-09
diff --git a/gdb/testsuite/gdb.mi/ChangeLog-1999-2003 b/gdb/testsuite/gdb.mi/ChangeLog-1999-2003
new file mode 100644
index 00000000000..6f263c33056
--- /dev/null
+++ b/gdb/testsuite/gdb.mi/ChangeLog-1999-2003
@@ -0,0 +1,768 @@
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * mi2-basics.exp: Copy base MI .exp file, set MIFLAGS to -i=mi2.
+ * mi2-break.exp, mi2-cli.exp, mi2-console.exp: Ditto.
+ * mi2-disassemble.exp, mi2-eval.exp, mi2-file.exp: Ditto.
+ * mi2-hack-cli.exp, mi2-pthreads.exp, mi2-read-memory.exp: Ditto.
+ * mi2-regs.exp, mi2-return.exp, mi2-simplerun.exp: Ditto.
+ * mi2-stack.exp, mi2-stepi.exp, mi2-syn-frame.exp: Ditto.
+ * mi2-until.exp, mi2-var-block.exp, mi2-var-child.exp: Ditto.
+ * mi2-var-cmd.exp, mi2-var-display.exp, mi2-watch.exp: Ditto.
+
+2003-05-03 J. Brobecker <brobecker@gnat.com>
+
+ From Thierry Schneider <tpschneider1@yahoo.com>:
+ * mi1-symbol.exp (-symbol-list-lines): New test file to
+ validate all symbol-related commands
+
+2003-04-08 Andrew Cagney <cagney@redhat.com>
+
+ * gdb792.exp: Skip when C++.
+
+2003-02-23 Stephane Carrez <stcarrez@nerim.fr>
+
+ * mi-syn-frame.exp: Don't run this test when gdb,nosignals is set.
+
+2002-12-13 Jeff Johnston <jjohnstn@redhat.com>
+
+ * mi-basics.exp: Change tests for -environment-directory. Also add
+ tests for -environment-cd, -environment-pwd, and -environment-path.
+ Part of fix for PR gdb/741.
+
+2002-11-05 Jeff Johnston <jjohnstn@redhat.com>
+
+ * gdb792.cc: New file to test patch for PR gdb/792.
+ * gdb792.exp: Ditto.
+
+2002-11-04 Elena Zannoni <ezannoni@redhat.com>
+
+ * mi-console.exp: Use mi_runto, mi_run_to_main, mi_next_to,
+ mi_step_to wherever possible. Update copyright notices.
+ * mi-disassemble.exp: Ditto.
+ * mi-eval.exp: Ditto.
+ * mi-read-memory.exp: Ditto.
+ * mi-regs.exp: Ditto.
+ * mi-return.exp: Ditto.
+ * mi-stack.exp: Ditto.
+ * mi-stepi.exp: Ditto.
+ * mi-var-block.exp: Ditto.
+ * mi-var-cmd.exp: Ditto.
+ * mi-watch.exp: Ditto.
+ * mi1-console.exp: Ditto.
+ * mi1-disassemble.exp: Ditto.
+ * mi1-eval.exp: Ditto.
+ * mi1-read-memory.exp: Ditto.
+ * mi1-regs.exp: Ditto.
+ * mi1-return.exp: Ditto.
+ * mi1-stack.exp: Ditto.
+ * mi1-stepi.exp: Ditto.
+ * mi1-var-block.exp: Ditto.
+ * mi1-var-cmd.exp: Ditto.
+ * mi1-watch.exp: Ditto.
+
+2002-10-23 Jeff Johnston <jjohnstn@redhat.com>
+
+ * mi-var-cmd.exp: Add tests to verify that a -var-assign that changes
+ a value shows up in the changelist of a -var-update. Part of fix
+ for gdb/702.
+ * mi1-var-cmd.exp: Ditto.
+
+2002-10-03 Jeff Johnston <jjohnstn@redhat.com>
+
+ * mi-return.exp: Change expected frame output to remove extraneous
+ space in level field when frame level is single digit. Part of
+ fix for PR gdb/192.
+ * mi-stack.exp: Ditto.
+ * mi1-return.exp: Ditto.
+ * mi1-stack.exp: Ditto.
+
+2002-10-03 Jeff Johnston <jjohnstn@redhat.com>
+
+ * mi-var-block.exp: Change expected output from -var-update
+ command to expect list format for "changelist". Fix for
+ PR gdb/672.
+ * mi-var-cmd.exp: Ditto.
+ * mi-var-child: Ditto.
+
+2002-09-25 Keith Seitz <keiths@redhat.com>
+
+ * mi-pthreads.exp (get_mi_thread_list): Check if expect_out
+ exists before using it.
+ (check_mi_and_console_threads): Likewise.
+ * gdb669.exp (get_mi_thread_list): Likewise.
+ (check_mi_and_console_threads): Likewise.
+
+2002-09-24 Keith Seitz <keiths@redhat.com>
+
+ * configure.in: Add config header.
+ Check for pthread.h.
+ * configure: Regenerate.
+ * config.in: New file.
+ * pthreads.c: New file.
+ * mi-pthreads.exp: New file to test thread functionality.
+ * gdb669.exp: New file.
+
+2002-09-17 Keith Seitz <keiths@redhat.com>
+
+ * mi-var-cmd.exp: Add tests to check when varobj pinned to a
+ selected frame changes type.
+
+2002-09-17 Keith Seitz <keiths@redhat.com>
+
+ * mi-console.exp: Update copyright.
+ * mi-var-block.exp: Likewise.
+ * mi-var-cmd.exp: Likewise.
+ * mi-var-display.exp: Likewise.
+ * mi0-console.exp: Likewise.
+ * mi0-var-child.exp: Likewise.
+ * mi0-var-cmd.exp: Likewise.
+ * mi0-var-display.exp: Likewise.
+
+2002-09-16 Keith Seitz <keiths@redhat.com>
+
+ * gdb701.exp: New file for testing varobj target type bug.
+ * gdb701.c: New file.
+
+2002-09-13 Keith Seitz <keiths@redhat.com>
+
+ * mi-var-child.exp: Use mi_step_to and mi_execute_to instead
+ of a bunch of repeated send_gdb/gdb_expect statements.
+ Fix line numbers.
+
+2002-09-10 Keith Seitz <keiths@redhat.com>
+
+ * mi-simplerun.exp (test_controlled_execution): Follow renaming of
+ mi_run_to to mi_execute_to.
+ * mi-var-cmd.exp: Likewise.
+ * mi0-simplerun.exp: Likewise.
+ * mi0-var-cmd.exp: Likewise.
+
+2002-09-03 Keith Seitz <keiths@redhat.com>
+
+ * gdb680.exp: New file to test to check for uiout list/tuple
+ nesting bug.
+
+2002-03-04 Michael Chastain <mec@shout.net>
+
+ * mi-var-cmd.exp: In test "create local variable func",
+ accommodate gcc v3 function signature.
+ * mi0-var-cmd-exp: Ditto.
+
+2002-02-05 Jim Blandy <jimb@redhat.com>
+
+ * mi-regs.exp: Various cleanups for SPARC-only tests.
+ (test_breakpoints_creation_and_listing): Format of breakpoint
+ table has changed.
+ (sparc_register_tests): Expand floating-point number regexp to
+ recognize NaN values, too. Replace ineffectual single backslash
+ before a hyphen with a double backslash. Don't check the exact
+ numbers of the registers which have changed, since there's no way
+ to know which registers changed, exactly; just check that the
+ result is well-formed.
+ * mi0-regs.exp: (sparc_register_tests): Same as for
+ sparc_register_tests in mi-regs.exp.
+
+ * mi-var-child.exp ("get children of struct_declarations", "get
+ children of struct_declarations.s2.u2.u1s2", "get children of
+ weird"): Tolerate argument types when they appear in function
+ types. (Dwarf 2 includes prototype info; STABS does not.)
+ * mi0-var-child.exp: Same.
+
+2001-12-19 Keith Seitz <keiths@redhat.com>
+
+ * mi-var-display.exp: char* variables have a child. Update all
+ occurences.
+ * mi0-var-display.exp: Likewise.
+
+2001-08-29 Andrew Cagney <cagney@redhat.com>
+
+ * mi-var-cmd.exp, mi0-var-cmd.exp: Variable lpcharacter has one
+ child. Soften floating point tests.
+
+2001-08-09 Andrew Cagney <ac131313@redhat.com>
+
+ * mi0-var-block.exp, mi0-stack.exp, mi0-simplerun.exp,
+ mi0-regs.exp, mi0-watch.exp, mi0-stepi.exp, mi0-until.exp,
+ mi0-return.exp, mi0-read-memory.exp, mi0-eval.exp,
+ mi0-disassemble.exp, mi0-console.exp, mi-watch.exp,
+ mi-var-display.exp, mi-var-cmd.exp, mi-var-child.exp,
+ mi-until.exp, mi-var-block.exp, mi-stepi.exp, mi-stack.exp,
+ mi-simplerun.exp, mi-return.exp, mi-regs.exp, mi-read-memory.exp,
+ mi-disassemble.exp, mi-eval.exp, mi-console.exp: Replace pattern
+ matching thread=0 with one to also match thread=1.
+ Fix PR gdb/190.
+
+2001-08-18 Andrew Cagney <ac131313@redhat.com>
+
+ * mi0-until.exp, mi-until.exp, mi0-stepi.exp, mi-stepi.exp,
+ mi-simplerun.exp, mi0-simplerun.exp, mi0-return.exp,
+ mi-return.exp, mi0-console.exp, mi-console.exp: Recognize an
+ unexpected run-to-main response. Report as a fail.
+
+2001-06-27 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-disassemble.exp: Update to accept mi1 breakpoint tables.
+ * mi-basics.exp: Ditto.
+ * mi-simplerun.exp: Ditto.
+ * mi-watch.exp: Ditto. Add check for full header.
+ * mi-break.exp: Ditto. Add check for full header.
+
+2001-06-26 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-stack.exp: Update. Output for args=... and
+ locals=... changed to a list.
+
+2001-06-26 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-stack.exp: Update. Output for stack=..., args=... and
+ stack-args=... changed to a list.
+
+2001-06-25 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-console.exp: Update args=... part of stop-reason
+ patterns. Output changed to a list of arguments.
+ * mi-disassemble.exp: Ditto.
+ * mi-simplerun.exp: Ditto.
+ * mi-return.exp: Ditto.
+ * mi-read-memory.exp: Ditto.
+ * mi-eval.exp: Ditto.
+ * mi-watch.exp: Ditto.
+ * mi-var-display.exp: Ditto.
+ * mi-var-cmd.exp: Ditto.
+ * mi-var-child.exp: Ditto.
+ * mi-var-block.exp: Ditto.
+ * mi-until.exp: Ditto.
+ * mi-stepi.exp: Ditto.
+ * mi-stack.exp: Ditto.
+ * mi-regs.exp: Ditto.
+
+2001-06-25 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-read-memory.exp: Update patterns matching data-read-memory.
+ Outputs a list.
+
+2001-06-25 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-regs.exp: Update patterns matching register-values. Outputs a
+ list.
+
+2001-06-25 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-regs.exp: Update patters matching register-names. Now
+ outputs a list.
+
+2001-06-25 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-regs.exp: Update patterns matching changed-registers. Now
+ outputs a list.
+
+2001-06-23 Andrew Cagney <ac131313@redhat.com>
+
+ * ChangeLog-mi: Rename to ChangeLog.
+ * mi-basics.exp: Remove local emacs variable defining
+ change-log-default-name.
+ * mi-break.exp, mi-console.exp, mi-disassemble.exp: Ditto.
+ * mi-eval.exp, mi-hack-cli.exp, mi-read-memory.exp: Ditto.
+ * mi-regs.exp, mi-return.exp, mi-simplerun.exp: Ditto.
+ * mi-stack.exp, mi-stepi.exp, mi-until.exp: Ditto.
+ * mi-var-block.exp, mi-var-child.exp, mi-var-cmd.exp: Ditto.
+ * mi-var-display.exp, mi-watch.exp, mi0-basics.exp: Ditto.
+ * mi0-break.exp, mi0-console.exp, mi0-disassemble.exp: Ditto.
+ * mi0-eval.exp, mi0-hack-cli.exp, mi0-read-memory.exp: Ditto.
+ * mi0-regs.exp, mi0-return.exp, mi0-simplerun.exp: Ditto.
+ * mi0-stack.exp, mi0-stepi.exp, mi0-until.exp: Ditto.
+ * mi0-var-block.exp, mi0-var-child.exp, mi0-var-cmd.exp: Ditto.
+ * mi0-var-display.exp, mi0-watch.exp: Ditto.
+
+2001-06-23 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-disassemble.exp: Update patterns matching data-disassemble
+ output. Now produces a list of instructions and a list of
+ source/assembly lines.
+
+2001-06-18 Andrew Cagney <ac131313@redhat.com>
+
+ * mi-basics.exp, mi-break.exp, mi-console.exp, mi-disassemble.exp,
+ mi-eval.exp, mi-hack-cli.exp, mi-read-memory.exp, mi-regs.exp,
+ mi-return.exp, mi-simplerun.exp, mi-stack.exp, mi-stepi.exp,
+ mi-until.exp, mi-var-block.exp, mi-var-child.exp, mi-var-cmd.exp,
+ mi-var-display.exp, mi-watch.exp, mi0-basics.exp, mi0-break.exp,
+ mi0-console.exp, mi0-disassemble.exp, mi0-eval.exp,
+ mi0-hack-cli.exp, mi0-read-memory.exp, mi0-regs.exp,
+ mi0-return.exp, mi0-simplerun.exp, mi0-stack.exp, mi0-stepi.exp,
+ mi0-until.exp, mi0-var-block.exp, mi0-var-child.exp,
+ mi0-var-cmd.exp, mi0-var-display.exp, mi0-watch.exp: Use MIFLAGS
+ to explictly select an interpreter.
+
+2001-06-16 Andrew Cagney <ac131313@redhat.com>
+
+ MI0 was the never enabled MI interface included in GDB 5.0.
+ * mi0-basics.exp: Copy mi-basics.exp.
+ * mi0-break.exp: Copy mi-break.exp.
+ * mi0-console.exp: Copy mi-console.exp.
+ * mi0-disassemble.exp: Copy mi-disassemble.exp.
+ * mi0-eval.exp: Copy mi-eval.exp.
+ * mi0-hack-cli.exp: Copy mi-hack-cli.exp.
+ * mi0-read-memory.exp: Copy mi-read-memory.exp.
+ * mi0-regs.exp: Copy mi-regs.exp.
+ * mi0-return.exp: Copy mi-return.exp.
+ * mi0-simplerun.exp: Copy mi-simplerun.exp.
+ * mi0-stack.exp: Copy mi-stack.exp.
+ * mi0-stepi.exp: Copy mi-stepi.exp.
+ * mi0-until.exp: Copy mi-until.exp.
+ * mi0-var-block.exp: Copy mi-var-block.exp.
+ * mi0-var-child.exp: Copy mi-var-child.exp.
+ * mi0-var-cmd.exp: Copy mi-var-cmd.exp.
+ * mi0-var-display.exp: Copy mi-var-display.exp.
+ * mi0-watch.exp: Copy mi-watch.exp.
+
+2001-05-11 Fernando Nasser <fnasser@redhat.com>
+
+ * mi-var-child.exp: Adjust for the fact that now (char *) can be
+ dereferenced.
+
+2001-03-06 Kevin Buettner <kevinb@redhat.com>
+
+ * mi-basics.exp, mi-break.exp, mi-disassemble.exp,
+ mi-eval.exp, mi-hack-cli.exp, mi-read-memory.exp, mi-regs.exp,
+ mi-return.exp, mi-simplerun.exp, mi-stack.exp, mi-stepi.exp,
+ mi-until.exp, mi-watch.exp: Update/correct copyright notices.
+
+2001-01-20 Mark Kettenis <kettenis@gnu.org>
+
+ * mi-support.exp (mi_gdb_start): Skip mi tests if -i flag is
+ recognized (i.e. if GDB was compiled with UI_OUT, but the mi
+ interpreter wasn't recognized (because it wasn't compiled in).
+
+Tue Apr 18 15:36:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * Makefile.in (clean mostlyclean): Do not delete $(MISCELLANEOUS).
+
+Tue Mar 14 15:54:57 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * basics.c: Add EMACS local variable pointing change-log at this
+ file.
+ * Makefile.in: Ditto
+
+2000-03-13 James Ingham <jingham@leda.cygnus.com>
+
+ * mi-var-block.exp: The error report from varobj_create changed
+ since I am now trapping parse_exp_1 errors. Change the tests to
+ match the new error message.
+ * mi-var-child.exp: Ditto.
+ * mi-var-cmd.exp: Ditto.
+
+2000-03-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-disassemble.exp: Don't assume numbers for the offset
+ values. They can be different depending on the architecture.
+
+ * mi-watch.exp (test_watchpoint_triggering): In same cases the
+ type can be 'hw wathcpoint' not just 'watchpoint'. Adjust for that.
+
+ * basics.c (callee4): Make the function return something,
+ otherwise the return value is undefined.
+
+2000-03-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-basics.exp: Comment out test for a still unimplemented operation.
+
+ * mi-disassemble.exp: Rewrite most of the tests to conform to new
+ disassemble interface.
+
+Sat Mar 4 13:55:08 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ From Fri 3 Mar 2000 Peter Schauer:
+ * mi-support.exp (mi_gdb_start): When GDB doesn't recongize -i=mi
+ option, assume no MI support present.
+
+2000-02-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-support.exp (mi_gdb_start): Update to recognize start up
+ message with 'UI_OUT' instead of 'HEADLESS'.
+
+2000-01-27 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-regs.exp (test_running_the_program): Add global var 'hex'.
+
+ * mi-stack.exp, mi-stepi.exp, mi-until.exp, mi-watch.exp,
+ mi-var-display.exp, mi-var-cmd.exp, mi-var-child.exp,
+ mi-var-block.exp: Update all stopped messages.
+
+2000-01-17 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-console.exp, mi-disassemble.exp, mi-eval.exp,
+ mi-read-memory.exp, mi-regs.exp, mi-return.exp, mi-simplerun.exp:
+ Update stopped messages, update copyright.
+
+ * mi-disassemble.exp: Update error messages output.
+
+ * mi-support.exp (proc mi_step): Make gdb do a 'step' command, not
+ a 'next'. Update stopped message.
+ (proc mi_next): Update stop message.
+ (proc mi_run_to_main): Update stopped message.
+ Update copyright.
+
+2000-01-11 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-simplerun.exp: Remove stack frames tests from here, to:
+
+ * mi-stack.exp: New file, tests for stack commands.
+
+ * mi-support.exp (mi_run_to_main, mi_next, mi_step) : Update to
+ include thread-id in stopped message.
+
+ * mi-regs.exp: Update break-insert output.
+
+ * (mi-console.exp, mi-disassemble.exp, mi-eval.exp,
+ mi-read-memory.exp, mi-regs.exp, mi-return.exp, mi-simplerun.exp,
+ mi-stepi.exp, mi-until.exp, mi-var-block.exp, mi-var-child.exp,
+ mi-var-cmd.exp, mi-var-display.exp, mi-watch.exp): Update stopped
+ message to include thread-id.
+
+Wed Dec 29 22:06:05 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-watch.exp, mi-var-display.exp, mi-var-cmd.exp,
+ mi-var-child.exp, mi-var-block.exp, mi-until.exp, mi-stepi.exp,
+ mi-simplerun.exp, mi-return.exp, mi-support.exp, mi-eval.exp,
+ mi-console.exp, mi-disassemble.exp, mi-break.exp: Update to
+ reflect extended output from -break-insert command.
+
+ * mi-break.exp (test_rbreak_creation_and_listing): XFAIL regexp
+ tests. -r flag broken by above.
+
+Sun Dec 19 19:28:13 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * cpp_variable.cc, cpp_variable.h, c_variable.c: Delete.
+
+Fri Dec 17 20:59:55 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-read-memory.exp: Test of ``-o <offset>'' now works.
+
+1999-12-16 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-var-cmd.exp: Fix 2 tests outputs.
+
+ * mi-var-child.exp: Add many more tests.
+
+ * mi-var-display.exp: Add many more tests.
+
+ * var-cmd.c: Change type of incr_a parameter to char.
+
+1999-12-15 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-var-block.exp: Set up xfails fro known problems.
+
+ * mi-var-display.exp: Set up printing of values of 'e' and 'anone'
+ as xfails.
+
+ * mi-var-child.exp: Fix typos.
+
+1999-12-15 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-var-child.exp: Space was missing before ``[10]''.
+
+Wed Dec 15 19:23:38 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-read-memory.exp: Add test for ``-o <offset>''. Update checks
+ and match next-row et.al.
+
+1999-12-14 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-var-display.exp : New file. Tests for format and type, with
+ unions, structs and enums.
+
+ * mi-var-cmd.exp: Add some var-assign tests.
+
+1999-12-14 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-var-cmd.exp, mi-var-block.exp, mi-var-child.exp: New files
+ some tests for -var* commands.
+
+ * var-cmd.c: New source file for var-* commands tests.
+ * gdb.mi/Makefile.in (PROGS): Add var-cmd.
+
+Mon Dec 13 18:06:09 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-break.exp: Fix quoting. Changed "srcfile.c":6 to
+ "\"srcfile.c\":6".
+ * mi-simplerun.exp: Fix quoting.
+
+Sat Dec 11 21:33:37 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-simplerun.exp (exec-finish): Fix return value was zero,
+ should have been three.
+
+ * mi-disassemble.exp: Reduce number of wild card matches in
+ * patterns. Remove all numeric constants.
+
+1999-12-09 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-eval.exp: New file. Some initial tests for
+ -data-evaluate-expression.
+
+1999-12-09 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * c_variable.c, cpp_variable.cc, cpp_variable.h: New files. Used
+ for testing "var" operations.
+ * Makefile.in: Add reference to the above files.
+
+1999-12-08 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-regs.exp: Fix test for format 'N' for
+ data-list-register-values.
+
+1999-12-07 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-disassemble.exp: Update expected output. Break test of
+ disassembly in mixed mode into 2 functions.
+
+ * mi-regs.exp: Initial register tests. Works only on sparc right
+ now.
+
+1999-12-02 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-stepi.exp: New file. Tests exec-step-instruction and
+ exec-next-instruction.
+ * mi-until.exp: New file. Tests exec-until.
+ * until.c: New file.
+ * mi-return.exp: New file. Tests exec-return.
+
+Thu Dec 2 09:38:23 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-hack-cli.exp: New test. Check the hacked up access to the
+ CLI.
+
+Wed Dec 1 16:47:40 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-basics.exp: Delete calls to mi_delete_breakpoints,
+ mi_gdb_reinitialize_dir and mi_gdb_load. This test is checking
+ that these can work.
+
+ * mi-support.exp (mi_step, mi_next, mi_run_to_main): New
+ procedures.
+
+ * mi-read-memory.exp, mi-read-memory.c: New files. Test
+ data-read-memory command.
+
+Tue Nov 30 23:54:16 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-support.exp: Don't start SID until after GDB has been started
+ and verified.
+
+Tue Nov 30 22:21:33 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-support.exp (mi_uncatched_gdb_exit): When SID, call sid_exit.
+ (mi_gdb_start): When SID, call sid_start.
+ (mi_gdb_start): Add MIFLAGS to spawn-GDB command. Check for
+ HEADLESS gdb. Return non-zero when GDB fails to start.
+ (mi_gdb_load): When SID or SIM, download program.
+ (mi_run_cmd): Don't do download here. Assume target supports the
+ 00-exec-run command.
+ (skip_mi_tests, setup_gdbmi, unset_gdbmi): Delete. Merged into
+ mi_gdb_start.
+
+ * mi-basics.exp, mi-break.exp, mi-console.exp, mi-disassemble.exp,
+ mi-simplerun.exp, mi-watch.exp: Update. Check status from
+ mi_gdb_start indicating that GDB started correctly.
+
+Tue Nov 30 15:22:08 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-support.exp (setup_gdbmi, unset_gdbmi): New
+ procedures. Setup/unset dejagnu for mi tests.
+ * mi-basics.exp, mi-console.exp, mi-simplerun.exp, mi-break.exp,
+ mi-disassemble.exp, mi-watch.exp: Update.
+
+1999-11-29 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-simplerun.exp (test_running_the_program): Remove XFAIL. The
+ output is fixed now.
+ (test_program_termination): Update output pattern.
+
+Tue Nov 30 00:19:10 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-console.c, mi-console.exp: New files. Test console output.
+
+Mon Nov 29 17:59:13 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-support.exp (mi_run_command): Check for exec-run command
+ failure due to MI not having an active target.
+ (mi_run_command): Check for and handle a builtin simulator target.
+ (mi_run_command): Don't check/handle for ``The program has been
+ started already'', not a valid MI response.
+
+ * mi-simplerun.exp (test_running_the_program): Update all patterns
+ to match async output.
+ (test_running_the_program): Mark ``step to callee4'' as XFAIL. MI
+ output contains {,reason="end-stepping-range"}+.
+
+ * mi-simplerun.exp: Limit the timeout for ``step to callee4'' to
+ 30 seconds.
+
+Mon Nov 29 17:30:00 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * mi-support.exp (skip_mi_tests): Print UNTESTED when MI interface
+ isn't available. Start/stop instead of assuming GDB is running.
+ (MIFLAGS): Define.
+ * mi-simplerun.exp, mi-disassemble.exp, mi-break.exp,
+ mi-basics.exp, mi-watch.exp: Update.
+
+1999-11-26 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * mi-simplerun.exp: Move break-insert {-t, -r} from here.
+ * mi-break.exp: To here. New file.
+ * mi-watch.exp: New file. Tests for watchpoints.
+
+Wed Nov 24 17:42:07 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * gdb.mi/ChangeLog-mi: MI entries moved to here.
+
+Wed Nov 24 17:31:04 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * gdb.mi/mi-basics.exp, gdb.mi/mi-disassemble.exp,
+ gdb.mi/mi-simplerun.exp: Print warning message when test isn't
+ run.
+
+1999-11-23 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdb.mi/mi-simplerun.exp: Update output of break-list to account for
+ "times" field.
+
+1999-11-05 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdb.mi/mi-simplerun.exp: Add tests for temporary breakpoints
+ and bp based on regular expressions.
+ * gdb.mi/mi-disassemble.exp: Fix typo.
+
+1999-11-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdb.mi/mi-disassemble.exp: Update output of execution commands
+ to reflect new 'reason' field.
+ * gdb.mi/mi-simplerun.exp: Ditto.
+
+1999-10-25 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdb.mi/mi-simplerun.exp: Add more stack-list-frames tests.
+
+ * gdb.mi/mi-disassemble.exp: Update 'run to main' output.
+
+ * gdb.mi/mi-simplerun.exp: Update execution commands
+ output. Update backtrace output.
+
+1999-10-18 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdb.mi/mi-disassemble.exp: Add new tests for the new
+ disassembly command parameter, number of lines.
+
+Mon Oct 11 13:57:21 1999 Andrew Cagney <cagney@amy.cygnus.com>
+
+ * lib/mi-support.exp: Break complicated gdb_expect containing
+ exp_continue into a while within an expect. Don't attempt a start
+ more than three times. Check return value from gdb_load.
+
+1999-10-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * gdb.mi/mi-disassemble.exp: New file.
+
+Wed Oct 6 12:05:58 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * lib/mi-support.exp (mi_run_cmd): Give up after two restart
+ attempts.
+
+1999-09290 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * gdb.mi/mi-basics.exp: Update to current syntax and output formats.
+ * gdb.mi/mi-simplerun.exp: Ditto.
+ * lib/mi-support.exp (mi_delete_breakpoints): Ditto.
+
+1999-06-30 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * gdb.mi/basics.c (main): Fix return code. Add a print "Hello,
+ World".
+ * gdb.mi/mi-basics.exp: Fix message texts and numbering.
+ * gdb.mi/mi-simplerun.exp: Ditto. Also, add new tests and improve
+ some patterns.
+
+1999-06-30 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * lib/mi-support.exp (mi_gdb_reinitialize_dir): Remove query as an
+ acceptable response to the environment-dir command.
+
+1999-06-30 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * lib/mi-support.exp (mi_delete_breakpoints): Remove references to
+ gdb-cli.
+ (mi_run_cmd): Ditto.
+
+1999-06-25 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * lib/mi-support.exp (skip_mi_tests): Use gdb-version to check for
+ headless output format.
+
+1999-06-24 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * gdb.mi/mi-simplerun.exp (test_controlled_execution): Add global
+ spec for hex.
+
+1999-06-24 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * lib/mi-support.exp (mi_run_cmd): Fix pattern and add a timeout
+ clause.
+
+1999-06-24 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * lib/mi-support.exp: Use mi_gdb_prompt instead of a modified
+ gdb_prompt. Remove uneeded loading of libgloss.
+ (mi_gdb_exit): Remove prompt argument.
+ (mi_uncatched_gdb_exit): Ditto.
+ (mi_run_cmd): New proc. MI version of gdb_run.
+ (skip_mi_tests): New proc. Check if gdb is capable of producing
+ headless formatted output.
+ * gdb.mi/mi-basics.exp: Use mi_gdb_prompt instead of a modified
+ gdb_prompt. Eliminate parameter to mi_gdb_exit (as a result of
+ the above). Test for skip_mi_tests before running.
+ Note: The above changes are interelated (need each other).
+ * gdb.mi/mi-simplerun.exp: Same changes as for mi-basics.exe
+ above.
+ (test_breakpoint_creation_and_listing): Remove insertion of
+ breakpoint at callee1 (and renumber tokens). Add tests for
+ break-list, break-disable and break-info.
+ (test_running_the_program): Use mi_run_cmd so it can run on remote
+ targets.
+ (test_controlled_execution): Fix broken test.
+ (test_program_termination): Test implemented.
+ * gdb.mi/basic.c (main): Small change to allow for testing of both
+ exec-next and exec-step operations.
+
+1999-06-22 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * lib/mi-support.exp (mi_gdb_test): New proc. MI version of gdb_test.
+ * gdb.mi/mi-basics.exp: Use the above instead of gdb_test.
+ * gdb.mi/mi-simplerun.exp: Ditto.
+
+1999-06-22 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * gdb.mi/mi-simplerun.exp: New file. Tests simple debugging tasks.
+ * gdb.mi/mi-basics.exp: Remove tests moved to above new file.
+ * lib/mi-support.exp: New file. Support procedures for mi tests.
+
+1999-06-08 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * gdb.mi/mi-basics.exp: Skip all tests if the MI interpreter is
+ not active.
+
+1999-06-03 Fernando Nasser <fnasser@totem.to.cygnus.com>
+
+ * gdb.mi: New directory.
+ * configure.in: Configure it.
+ * configure: Regenerate.
+ * gdb.mi/{Makefile.in,configure.in,configure}: New files.
+ * gdb.mi/{mi-basics.exp,basics.c,testcmds}: New files.
+
+
+Local Variables:
+mode: indented-text
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff --git a/gdb/tui/ChangeLog-1998-2003 b/gdb/tui/ChangeLog-1998-2003
new file mode 100644
index 00000000000..fc5886c1ae1
--- /dev/null
+++ b/gdb/tui/ChangeLog-1998-2003
@@ -0,0 +1,1217 @@
+2003-09-27 Andrew Cagney <cagney@redhat.com>
+
+ * tuiRegs.c: Rename REGISTER_RAW_SIZE to
+ DEPRECATED_REGISTER_RAW_SIZE.
+
+2003-09-13 Andrew Cagney <cagney@redhat.com>
+
+ * tui.h (struct ui_file): Add opaque declaration.
+
+2003-08-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * tui-interp.c: Include "cli-out.h".
+ (tui_resume): Update tui_old_uiout's stream to gdb_stdout.
+
+2003-07-24 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui.c (tui_rl_other_window): New function to switch the TUI active
+ window and give focus to a next window.
+ (tui_initialize_readline): Bind it to c-x o.
+ (tui_rl_next_keymap): Activate TUI mode when entering SingleKey mode.
+
+2003-07-23 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui.c (tui_enable): Call tuiRefreshAll to make sure the window
+ is accurate.
+
+2003-07-23 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui-interp.c (tui_resume): Enable tui when we expected it.
+ (tui_suspend): Remember in which TUI mode we are.
+ (_initialize_tui_interp): Use the tui interpreter even when no
+ other interpreter was set and define in which TUI mode to start.
+
+2003-06-28 Daniel Jacobowitz <drow@mvista.com>
+
+ * tui-out.c (tui_ui_out_impl): Add NULL for redirect member.
+
+2003-06-22 Daniel Jacobowitz <drow@mvista.com>
+
+ * tui-hooks.c: Update include order.
+ * tui.c: Likewise.
+ * tuiCommand.c: Likewise.
+ * tuiData.c: Likewise.
+ * tuiDataWin.c: Likewise.
+ * tuiDisassem.c: Likewise.
+ * tuiGeneralWin.c: Likewise.
+ * tuiIO.c: Likewise.
+ * tuiLayout.c: Likewise.
+ * tuiRegs.c: Likewise.
+ * tuiSource.c: Likewise.
+ * tuiSourceWin.c: Likewise.
+ * tuiStack.c: Likewise.
+ * tuiWin.c: Likewise.
+
+2003-06-12 Andreas Schwab <schwab@suse.de>
+
+ * tuiSource.c (tuiVerticalSourceScroll): Use get_frame_pc.
+ * tuiSourceWin.c (tuiHorizontalSourceScroll): Likewise.
+ * tuiStack.c (tui_get_function_from_frame): Likewise.
+ (tuiShowFrameInfo): Likewise.
+ * tuiWin.c (_makeVisibleWithNewHeight): Likewise.
+ * tui-hooks.c (tui_selected_frame_level_changed_hook): Likewise.
+ * tuiDisassem.c (tuiVerticalDisassemScroll): Likewise.
+ Include "disasm.h".
+
+2003-05-08 Andrew Cagney <cagney@redhat.com>
+
+ * tuiRegs.c: Use MAX_REGISTER_SIZE instead of
+ MAX_REGISTER_RAW_SIZE.
+
+2003-05-03 Andrew Cagney <cagney@redhat.com>
+
+ * tuiDisassem.c (tui_disassemble): Call gdb_print_insn, instead of
+ TARGET_PRINT_INSN. Do not initialize a disassemble_info object.
+
+2003-04-30 Andrew Cagney <cagney@redhat.com>
+
+ * tuiDisassem.c (tui_disassemble): Use
+ "deprecated_tm_print_insn_info" instead of TARGET_PRINT_INSN_INFO,
+ add comment.
+
+2003-03-14 Andrew Cagney <cagney@redhat.com>
+
+ * tuiRegs.c (_tuiGetRegisterRawValue): Use frame_read_register,
+ instead of get_saved_register.
+
+2003-03-13 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui-out.c (tui_out_data): Fix typedef.
+
+2003-03-08 Andrew Cagney <cagney@redhat.com>
+
+ * tui-out.c: Update copyright.
+ (tui_out_data): Define typedef. Use instead of ui_out_data.
+
+2003-02-14 Andrew Cagney <ac131313@redhat.com>
+
+ * tui.c (tui_enable, tui_disable): Don't modify tui_version.
+ (tui_is_window_visible, tui_get_command_dimension): Test
+ tui_active instead of tui_version.
+ * tuiData.h (tui_version): Delete declaration.
+ * tui-hooks.c (tui_init_hook, tui_event_loop): Delete function,
+ moved to "tui-interp.c".
+ (tui_exit, tui_command_loop): Ditto.
+ (_initialize_tui): Don't initialize init_ui_hook. Initialize
+ target_new_objfile_hook.
+ * tui-interp.c: New file.
+
+2003-02-12 Andrew Cagney <ac131313@redhat.com>
+
+ * tuiIO.c (tui_prep_terminal): Add one notused parameter.
+ * tui.c (tui_rl_switch_mode): Add two notused parameters.
+ (tui_rl_change_windows, tui_rl_next_keymap): Ditto.
+ (tui_rl_delete_other_windows): Ditto.
+ (tui_rl_change_windows, tui_rl_delete_other_windows): Update
+ calls.
+
+2002-12-08 Elena Zannoni <ezannoni@redhat.com>
+
+ Import of readline 4.3.
+ Fix PR gdb/675
+ * tuiWin.c: Include readline/readline.h.
+ (tui_update_gdb_sizes): Use accessor function rl_get_screen_size.
+ (tuiResizeAll): Ditto.
+
+2002-12-06 Elena Zannoni <ezannoni@redhat.com>
+
+ * tuiStack.c (tuiShowFrameInfo): Fix typo.
+
+2002-11-29 Andrew Cagney <ac131313@redhat.com>
+
+ * tui/tui-hooks.c: Update to use deprecated_selected_frame.
+ * tui/tui.c, tui/tuiDisassem.c, tui/tuiRegs.c: Ditto.
+ * tui/tuiSource.c, tui/tuiSourceWin.c, tui/tuiWin.c: Ditto.
+
+2002-11-28 Andrew Cagney <ac131313@redhat.com>
+
+ * tuiStack.c (tuiShowFrameInfo): Use find_frame_sal instead of
+ find_pc_line.
+
+2002-11-23 Andrew Cagney <ac131313@redhat.com>
+
+ * tuiStack.c (tuiShowFrameInfo): Use get_frame_type instead of
+ deprecated_frame_in_dummy. Fix coding style.
+
+2002-11-21 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui-hooks.c (tui_init_hook): Don't enable the TUI if a specific
+ interpreter is installed.
+
+2002-11-18 Andrew Cagney <ac131313@redhat.com>
+
+ * tuiStack.c (tuiShowFrameInfo): Use get_frame_type instead of
+ signal_handler_caller.
+
+2002-11-10 Andrew Cagney <ac131313@redhat.com>
+
+ * tuiStack.c (tuiShowFrameInfo): Replace frame_in_dummy with
+ deprecated_frame_in_dummy.
+
+2002-10-26 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiIO.c (tui_prep_terminal): Save the prompt registered in readline.
+ (tui_redisplay_readline): Use the last saved prompt.
+ (tui_rl_saved_prompt): New.
+
+2002-10-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ Fix PR gdb/787
+ * tuiWin.c (ACS_LRCORNER, ACS_LLCORNER, ACS_ULCORNER, ACS_URCORNER,
+ ACS_HLINE, ACS_VLINE): Define if they don't exist.
+
+2002-10-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ Fix PR gdb/478
+ * tuiIO.c (tui_initialize_io): Use setvbuf since this is portable.
+
+2002-10-02 Elena Zannoni <ezannoni@redhat.com>
+
+ * tui-hooks.c (selected_frame_level_changed_hook): Use the one
+ exported from frame.h.
+
+2002-09-29 Elena Zannoni <ezannoni@redhat.com>
+
+ * tui.c (tui_show_source): Don't access current_source_symtab, use
+ accessor function instead. Include source.h and symtab.h
+ * tuiDisassem.c (tuiShowDisassemAndUpdateSource,
+ tuiVerticalDisassemScroll): Use accessor functions for current
+ source line and symtab. Include source.h.
+ * tuiLayout.c (_extractDisplayStartAddr): Use accessor functions
+ for current source line and symtab. Include source.h.
+ * tuiWin.c (_makeVisibleWithNewHeight): Ditto.
+ * tuiSourceWin.c (tuiUpdateSourceWindowAsIs,
+ tuiHorizontalSourceScroll): Ditto.
+ * tuiSource.c (tuiVerticalSourceScroll): Ditto.
+
+2002-09-13 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui.c (tui_rl_switch_mode): Remove unecessary TUI switch printfs.
+ (tui_initialize_readline): Allow to use space to leave SingleKey
+ to enter one gdb command.
+ (tui_enable): Restore the TUI keymap when we are back to TUI.
+ (tui_disable): Restore normal keymap when leaving TUI.
+ * tuiIO.c (tui_redisplay_readline): Restore the SingleKey mode
+ when the buffer becomes empty and we are in tui_one_command_mode.
+
+2002-09-13 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiIO.c (tui_setup_io): rl_already_prompted must be cleared
+ when leaving TUI mode so that gdb prompt is displayed.
+
+2002-09-13 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiStack.c (tui_make_status_line): Make sure the local buffer
+ is large enough to hold the complete line.
+
+2002-09-10 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui-hooks.c (tui_event_loop): New function.
+ (tui_command_loop): New function to override gdb loop and make sure
+ uiout is set according to TUI mode.
+ (tui_command_loop): Install the specific TUI command hook.
+ * tuiIO.c (tui_initialize_io): Initialize tui_old_uiout.
+ (tui_uiout, tui_old_uiout): Make public.
+ * tuiIO.h (tui_uiout, tui_old_uiout): Declare.
+
+2002-09-04 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiIO.c (tui_putc): New function to print one character.
+ (printable_part): New function from readline/complete.c.
+ (PUTX): New macro, likewise.
+ (print_filename): New function, likewise.
+ (get_y_or_n): New function, likewise and adapted for TUI.
+ (tui_rl_display_match_list): New function from readline/complete.c
+ and writes on TUI command window.
+ (tui_setup_io): Install or remove the readline hook
+ rl_completion_display_matches_hook so that completion is written
+ directly in TUI command window instead of in the TUI pipe.
+ (tui_initialize_io): Use #ifdef TUI_USE_PIPE_FOR_READLINE for the
+ TUI redirection pipe.
+ (tui_getc): Likewise for call to tui_readline_output.
+ (tui_readline_output): Likewise for function.
+ * tui.c (tui_rl_startup_hook): Always take care of gdb prompt.
+
+2002-09-02 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiWin.c (_newHeightOk): Fix compilation warnings.
+
+2002-09-01 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiWin.c (_tuiAllWindowsInfo): Don't crash if the window
+ is not displayed.
+
+2002-09-01 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui-out.c (tui_out_new): Clear start_of_line.
+ * tuiSource.c (tuiVerticalSourceScroll): Use print_source_lines
+ to update the current source line.
+
+2002-09-01 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui-hooks.c (tui_detach_hook): New hook to know when a process dies.
+ (tui_install_hooks): Install it.
+ (tui_remove_hooks): Remove it.
+
+2002-09-01 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiData.h (FILE_PREFIX): Don't define.
+ (blankStr, locationStr, breakStr): Don't declare.
+ (breakLocationStr, nullStr, historyLimit, setHistoryLimitTo): Likewise.
+ (displayableWinContentOf, displayableWinContentAt): Likewise.
+ (winElementHeight, winByName, freeAllWindows): Likewise.
+
+ * tuiData.c (blankStr, locationStr, breakStr): Remove.
+ (breakLocationStr, nullStr, historyLimit, setHistoryLimitTo): Remove.
+ (displayableWinContentOf, displayableWinContentAt): Remove.
+ (winElementHeight, winByName, freeAllWindows): Remove.
+
+2002-09-01 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiStack.c (tui_make_status_line): New function to create the
+ status line.
+ (tuiShowLocatorContent): Use it instead of displayableWinContentAt.
+ * tuiData.h (PROC_PREFIX): Use "In:" to reduce length of prefix.
+ (PC_PREFIX): Use upper case.
+ (SINGLE_KEY, MIN_LINE_WIDTH, MIN_PROC_WIDTH): Define.
+ (MAX_TARGET_WIDTH, MAX_PID_WIDTH): Define.
+
+2002-08-31 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSourceWin.h (tuiUpdateAllExecInfos): Don't declare.
+ (tuiClearAllExecInfosContent): Likewise.
+ (tuiEraseAllExecInfosContent): Ditto.
+ (tuiUpdateSourceWindowsFromLocator): Ditto.
+ * tuiSourceWin.c (tuiUpdateAllExecInfos): Remove.
+ * tui.h (tui_vCheckDataValues): Don't declare.
+ (tui_vStartNewLines, tui_vAllSetHasBreakAt): Likewise.
+ (tui_vUpdateLocatorFilename, tui_vUpdateSourceWindowsWithAddr): Ditto.
+ (tui_vShowFrameInfo): Ditto.
+
+2002-08-31 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui.c (tui_commands): Table of single key commands.
+ (tui_rl_command_key): New function to execute gdb command.
+ (tui_rl_command_mode): New function to temporarily leave SingleKey.
+ (tui_rl_next_keymap): New function to enter/leave the SingleKey mode.
+ (tui_rl_startup_hook): New function to avoid prompt display by
+ readline functions.
+ (tui_set_key_mode): New function to set the key mode and install
+ the readline keymap.
+ (tui_initialize_readline): Create TUI SingleKey readline map.
+ (tui_enable): Install rl_startup_hook.
+ (tui_disable): Remove it.
+ * tui.h (enum tui_key_mode): Declare.
+ (tui_set_key_mode, tui_current_key_mode): Declare.
+ * tuiIO.c (tui_redisplay_readline): Don't display the prompt in
+ SingleKey mode.
+ * tuiIO.h (tui_redisplay_readline): Declare.
+
+2002-08-31 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSourceWin.c (tuiSetIsExecPointAt): Redraw the previous and
+ current line.
+
+2002-08-31 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSource.c (tuiSetSourceContent): Remove old breakpoint code.
+ (_hasBreak): Remove.
+ (tuiShowSource): Fix comment indentation.
+ (tuiSourceIsDisplayed): Likewise.
+ (tuiVerticalSourceScroll): Likewise.
+
+2002-08-30 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSourceWin.h (tui_update_all_breakpoint_info): Declare.
+ (tui_update_breakpoint_info): Declare.
+ (tuiSetHasBreakAt, tuiAllSetHasBreakAt): Remove.
+
+ * tuiSourceWin.c (tuiUpdateSourceWindowAsIs): Update breakpoint
+ information using tui_update_breakpoint_info.
+ (tui_update_all_breakpoint_info): New function to refresh all
+ execution windows.
+ (tui_update_breakpoint_info): New function to recompute the status
+ of exec info window from breakpoints.
+ (tuiSetHasBreakAt, tuiAllSetHasBreakAt): Remove.
+ (tuiSetExecInfoContent): Use the exec info flags computed by
+ tui_update_breakpoint_info to display a short status about breakpoints.
+
+ * tuiData.h (TuiExecInfoContent): New for exec info string.
+ (TuiWhichElement): Use it.
+ (TUI_BP_ENABLED, TUI_BP_DISABLED, TUI_BP_HIT): New defines.
+ (TUI_BP_CONDITIONAL, TUI_BP_HARDWARE): New defines.
+ (TUI_BP_HIT_POS, TUI_BP_BREAK_POS, TUI_EXEC_POS): Likewise.
+ (TUI_EXECINFO_SIZE): Likewise.
+ * tuiData.c (initContentElement): Clear exec info string.
+
+ * tui-hooks.c (get_breakpoint): Remove.
+ (tui_event_create_breakpoint): Call tui_update_all_breakpoint_info.
+ (tui_event_delete_breakpoint): Likewise.
+ (tui_event_modify_breakpoint): Likewise.
+
+2002-08-29 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui.c (tuiGetLowDisassemblyAddress): Moved from here.
+ * tuiDisassem.c (tuiGetLowDisassemblyAddress): To here, and use
+ tui_find_disassembly_address to find the starting address of
+ disassemble window.
+
+2002-08-28 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiDisassem.c (tui_disassemble): New function to disassemble
+ several lines in a buffer.
+ (tui_find_disassembly_address): New function to search backward
+ or forward a disassembly line.
+ (tuiSetDisassemContent): Use tui_disassemble to obtain the real
+ content and format it in the window.
+ (tuiShowDisassemAndUpdateSource): Remove unused locals.
+ (tuiVerticalDisassemScroll): Use tui_find_disassembly_address to
+ obtain the address to disassemble for the scrolling.
+ * tuiDisassem.h (tuiGetBeginAsmAddress): Update.
+ * tuiSourceWin.c (tuiUpdateSourceWindowAsIs): Don't pass symtab.
+
+2002-08-28 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiIO.c (CTRL_CHAR): Redefine and use readline 4.3 definition.
+
+2002-08-26 Stephane Carrez <stcarrez@nerim.fr>
+
+ Fix PR gdb/393:
+ * tui.c (tui_disable): Update gdb's knowledge of its terminal
+ using target_terminal_save_ours.
+ (tui_enable): Likewise.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui.c (tui_rl_switch_mode): Renames tui_switch_mode.
+ (tui_rl_change_windows): Renames tui_change_windows.
+ (tui_rl_delete_other_windows): Renames tui_delete_other_windows.
+ (tui_initialize_readline): Update.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiDisassem.c (tuiSetDisassemContent): Use breakpoint_here_p.
+ (_hasBreak): Remove.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiDisassem.c (tuiGetBeginAsmAddress): Use lookup_minimal_symbol
+ to find symbol address.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSourceWin.c (tui_display_main): Rename from tuiDisplayMainFunction
+ and use tuiGetBeginAsmAddress.
+ * tuiSourceWin.h (tui_display_main): Declare.
+ * tui.h (tuiDisplayMainFunction): Remove.
+ * tui-hooks.c (tui_new_objfile_hook): Update.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSource.h (m_tuiShowSourceAsIs): Remove macro.
+ (tuiShowSourceAsIs): Don't declare.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui-hooks.c (tui_selected_frame_level_changed_hook): Always update
+ the frame position.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiStack.c (tuiSetLocatorContent): Remove.
+ (tuiUpdateLocatorInfoFromFrame): Remove.
+ (tui_set_locator_info): Allocate the content buffer if necessary.
+ (tui_set_locator_filename): Call tui_set_locator_info directly.
+ (tuiShowFrameInfo): Likewise and use find_pc_line instead of
+ find_pc_symtab.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSourceWin.c (tuiDisplayMainFunction): Update to use
+ tuiUpdateLocatorFilename.
+ * tuiStack.c (tuiSetLocatorInfo): Make it static.
+ (tuiSetLocatorContent): Likewise.
+ (tuiUpdateLocatorInfoFromFrame): Likewise.
+ (tuiSwitchFilename): Remove.
+ (tui_set_locator_filename): New function
+ (tui_set_locator_info): Rename from tuiSetLocatorInfo to GNU-ify;
+ use tui_set_locator_filename to record the filename.
+ (tuiUpdateLocatorFilename): Likewise.
+ (tuiUpdateLocatorInfoFromFrame): Update.
+ (tuiSetLocatorContent): Likewise.
+ * tuiStack.h (tuiClearLocatorContent): Don't declare.
+ (tuiSetLocatorInfo, tuiSetLocatorContent): Likewise.
+ (tuiUpdateLocatorInfoFromFrame, tuiSwitchFilename): Likewise.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSourceWin.c (tuiSetHasBreakAt): Use filename for breakpoint
+ comparison; cleanup.
+ * tuiSource.c (tuiSetSourceContent): Set window title and filename.
+ * tuiGeneralWin.c (boxWin): Print optional title on top of window.
+ * tuiData.h (TuiSourceInfo): Add filename member.
+ (TuiGenWinInfo): Add title member.
+ * tuiData.c (initGenericPart): Clear title.
+ (freeWindow): Free title and filename; remove unused locals.
+ (initWinInfo): Clear filename.
+ (tuiDelWindow): Free it; remove unused locals.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiStack.h (tuiGetLocatorFilename): Don't declare.
+ (tuiUpdateLocatorDisplay): Likewise.
+ * tuiStack.c (tuiGetLocatorFilename): Remove.
+ (tuiShowFrameInfo): Use tuiSetLocatorContent and tuiShowLocatorContent
+ instead of tuiUpdateLocatorDisplay.
+ (tuiUpdateLocatorDisplay): Remove.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiStack.h (tuiClearLocatorDisplay): Don't declare.
+ * tuiStack.c (tuiClearLocatorDisplay): Remove.
+ (tuiShowLocatorContent): Use wclrtoeol to clear end of status line.
+ (tuiUpdateLocatorDisplay): Don't call tuiClearLocatorDisplay.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiStack.c (tui_get_function_from_frame): Rename from
+ _getFuncNameFromFrame; use print_address_symbolic to get symbolic
+ name of address.
+ (tuiUpdateLocatorInfoFromFrame): Update.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiRegs.c (tuiDisplayRegistersFrom): Remove unused locals.
+ (_tuiRegisterFormat, _tuiSetSpecialRegsContent): Likewise.
+ (_tuiSetGeneralAndSpecialRegsContent): Likewise.
+ (_tuiSetFloatRegsContent): Likewise.
+ (_tuiRegisterName): Return a const char*.
+ * tuiData.h (_TuiDataElement): Use const char* for name.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSourceWin.h (tuiEraseAllSourceContent): Don't declare.
+ (tuiShowAllExecInfosContent): Likewise.
+ * tuiSourceWin.c (tuiEraseAllSourceContent): Remove.
+ (tuiShowAllExecInfosContent): Remove.
+ (tuiAllocSourceBuffer): Remove unused locals.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiStack.c (tui_update_command): Rename _tuiUpdateLocation_command
+ to follow other gdb's command names; use execute_command; cleanup.
+ (_initialize_tuiStack): Update.
+
+2002-08-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiWin.h (tui_update_gdb_sizes): Declare.
+
+2002-08-24 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui.c (strcat_to_buf): Use const char* for source item.
+ (tui_enable): Update the windows if there is a selected frame.
+ * tui.h (strcat_to_buf): Update prototype.
+ (strcat_to_buf_with_fmt): Remove.
+
+2002-08-24 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiWin.c (tui_update_gdb_sizes): New function to tell gdb what
+ is the size of command window.
+ (tuiResizeAll): Call it instead of init_page_info.
+ * tui.c (tui_enable): Call it to resize to TUI command window.
+ (tui_disable): Likewise for plain screen.
+
+2002-08-24 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tui.c (tui_enable): Use tuiSetLayout instead of showLayout and
+ use tuiShowFrameInfo instead of tuiSetLocatorContent.
+ * tuiLayout.h (showLayout): Remove.
+ * tuiLayout.c (_showSourceOrDisassemAndCommand): Remove unused locals.
+ (_showSourceDisassemCommand): Likewise.
+ (showLayout): Make it static.
+ (lastLayout): Remove.
+
+2002-08-24 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSourceWin.c (tui_show_source_line): New function.
+ (tuiShowSourceContent): Call it and avoid clearing the window before
+ redrawing it.
+ (tuiClearAllSourceWinsContent): Remove.
+ * tuiSourceWin.h (tuiClearAllSourceWinsContent): Don't declare.
+ * tuiWin.h (tuiClearWinFocus, tuiClearWinFocusFrom): Don't declare.
+ * tuiWin.c (tuiClearWinFocus, tuiClearWinFocusFrom): Remove.
+ (tuiRefreshAll): Don't clear the window.
+ (_makeVisibleWithNewHeight): Don't clear locator line.
+ (tuiResizeAll): Remove unused locals.
+ (_tuiAdjustWinHeights): Likewise.
+ (_makeInvisibleAndSetNewHeight): Likewise.
+ (_newHeightOk): Likewise.
+ * tuiLayout.c (showLayout): Don't clear source windows.
+ (tuiSetLayout): Don't clear the window.
+ (_initAndMakeWin): Likewise for status line.
+ * tuiGeneralWin.c (makeVisible): Don't clear or refresh the window.
+ (makeWindow): Likewise.
+ (tuiClearWin): Remove.
+ * tuiGeneralWin.h (tuiClearWin): Don't declare.
+
+2002-08-24 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiSourceWin.c (tuiSrcWinIsDisplayed): Remove.
+ (tuiAsmWinIsDisplayed): Remove.
+ (tuiShowAllSourceWinsContent): Remove.
+ (tuiUpdateOnEnd): Remove.
+ * tuiGeneralWin.c (scrollWinForward): Remove.
+ (scrollWinBackward): Remove.
+ (_winResize): Don't declare.
+ * tui.h (tuiUpdateOnEnd): Don't declare.
+ (vcatch_errors, va_catch_errors): Likewise.
+ * tuiSourceWin.h (tuiUpdateOnEnd): Likewise.
+ (tuiShowAllSourceWinsContent): Likewise.
+ * tuiGeneralWin.h (scrollWinForward): Likewise.
+ (scrollWinBackward): Likewise.
+
+2002-08-24 Stephane Carrez <stcarrez@nerim.fr>
+
+ * tuiRegs.c (_tuiRegisterFormat): Use gdbarch_print_registers_info.
+
+2002-08-18 Daniel Jacobowitz <drow@mvista.com>
+
+ Fix PR gdb/655
+ * tui.c: Disable <termio.h> include.
+
+2002-03-15 Andrew Cagney <ac131313@redhat.com>
+
+ * tui-out.c (XMALLOC): Delete macro. Update copyright.
+
+2002-03-01 Andrew Cagney <ac131313@redhat.com>
+
+ * tui-hooks.c: Add FIXME to explain true/false problem. Update
+ copyright.
+ * tui.c, tuiCommand.c, tuiData.c, tuiDataWin.c: Ditto.
+ * tuiDisassem.c, tuiGeneralWin.c, tuiIO.c, tuiLayout.c: Ditto.
+ * tuiRegs.c, tuiSource.c, tuiSourceWin.c, tuiStack.c: Ditto.
+ * tuiWin.c: Ditto.
+
+ 2002-02-08 Daniel Jacobowitz <drow@mvista.com>
+ * tui-hooks.c: Include <curses.h> before "bfd.h".
+ * tui.c: Likewise.
+ * tuiCommand.c: Likewise.
+ * tuiData.c: Likewise.
+ * tuiDataWin.c: Likewise.
+ * tuiDisassem.c: Likewise.
+ * tuiGeneralWin.c: Likewise.
+ * tuiIO.c: Likewise.
+ * tuiLayout.c: Likewise.
+ * tuiRegs.c: Likewise.
+ * tuiSource.c: Likewise.
+ * tuiSourceWin.c: Likewise.
+ * tuiStack.c: Likewise.
+ * tuiWin.c: Likewise.
+
+2002-02-01 Andrew Cagney <ac131313@redhat.com>
+
+ * tuiWin.c (_initialize_tuiWin): Replace NO_FUNCTION with NULL.
+
+2001-10-20 Andrew Cagney <ac131313@redhat.com>
+
+ * tuiDisassem.c: Include "value.h".
+ * tuiSourceWin.c: Ditto.
+
+2001-09-28 Tom Tromey <tromey@redhat.com>
+
+ * tuiLayout.h (tui_set_layout): Don't declare.
+ * tui.h (tui_vAddWinToLayout): Don't declare.
+ (tui_vSetLayoutTo): Likewise.
+ (tui_set_layout): Declare.
+
+2001-08-02 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * tuiSourceWin.c: Use disp_del instead of del.
+
+ * tuiSource.c: Use disp_del instead of del.
+
+ * tuiDisassem.c: Use disp_del instead of del.
+
+2001-07-31 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tui.c (tui_enable): Remove call to terminal_save_ours().
+ (tui_disable): Likewise.
+
+2001-07-28 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiWin.c (_initialize_tuiWin): Use specific tui prefix for
+ set/show configuration variables.
+ (show_tui_cmd): New function.
+ (set_tui_cmd): New function.
+
+2001-07-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tui-hooks.c: New file, gdb hooks for tui.
+ * tui-out.c: New file, image copied from cli-out.c.
+ (tui_field_int): Identify "line" fields and keep track of them.
+ (tui_field_string): Likewise for "file".
+ (tui_out_new): Use flags = 0 to avoid printing the sources.
+
+2001-07-23 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiIO.c (tui_cont_sig): Update cursor position on the screen to
+ leave it in the command window.
+ (tui_redisplay_readline): Save cursor position to restore the
+ cursor after we go back from background.
+ * tuiData.h (TuiCommandInfo): Add start_line member.
+
+2001-07-23 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiStack.c (tuiUpdateLocatorFilename): Use const char*.
+ * tuiStack.h (tuiUpdateLocatorFilename): Update prototype.
+ * tuiWin.c (_initialize_tuiWin): Don't cast table of enum in calls
+ to add_set_enum_cmd.
+ * tui.c (tui_show_source): New function.
+ (tuiGetLowDisassemblyAddress): Use CORE_ADDR for newLow.
+ (tui_switch_mode): Prep or deprep readline terminal;
+ make sure the \n we return does not redo the last command.
+ * tui.h (tui_show_source): Declare.
+ (tui_out_new, tui_install_hooks, tui_remove_hooks): Likewise.
+ (tui_active, tui_initialize_io, tui_initialize_readline): Likewise.
+
+2001-07-22 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiIO.c (tui_initialize_io): Install tui_cont_sig signal handler
+ if SIGCONT is defined.
+ (tui_cont_sig): New function when SIGCONT is defined.
+ (tui_setup_io): Save tty setting to restore by SIGCONT.
+
+2001-07-22 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tui.h (tui_show_assembly): Declare.
+ (tui_is_window_visible): Declare.
+ * tui.c (tui_show_assembly): New function.
+ (tui_is_window_visible): New function.
+ (tui_get_command_dimension): New function.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiWin.c (tuiRefreshAll): Use clearok to force a refresh.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tui-file.c (tui_file_fputs): Use tui_puts.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiStack.c (tuiSetLocatorInfo): Cleanup.
+ * tuiStack.h (tuiGetLocatorFilename): Declare.
+ * tuiRegs.h (tuiFirstRegElementNoInLine): Declare.
+ * tuiData.h (addToSourceWindows): Declare.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tui.c (tui_change_windows): New function.
+ (tui_delete_other_windows): New function.
+ (tui_initialize_readline): Bind them to C-X 1 and C-X 2.
+ (tui_enable): Enable the keypad; call tui_update_variables.
+ (strcat_to_buf_with_fmt): Remove.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tui.h: Remove old declarations, add the new ones.
+ * tui.c (tui_switch_mode): New function.
+ (tui_initialize_readline): New function.
+ (tui_enable): New function.
+ (tui_disable): New function.
+ (tuiGetLowDisassemblyAddress): Use CORE_ADDR, cleanup.
+ (tui_vSelectSourceSymtab): Remove.
+ (tuiInitWindows): Remove.
+ (_initialize_tui): Remove.
+ (_tuiReset): Keep but put arround #if 0.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiIO.h: Remove old declarations and add the new ones.
+ * tuiIO.c: New management for curses and gdb terminal interactions.
+ (tui_tputs): Remove.
+ (tuiTermSetup, tuiTermUnsetup): Remove, must use normal curses ops.
+ (tuiBufferGetc, tui_vStartNewLines, _updateCommandInfo): Remove.
+ (tui_owns_terminal): Remove.
+ (tui_redisplay_readline): New function.
+ (tui_puts): New function.
+ (tui_prep_terminal): New function.
+ (tui_deprep_terminal): New function.
+ (tui_getc): Rename of tuiGetc, simplify and fix.
+ (tui_setup_io): New function.
+ (tui_initialize_io): New function.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiRegs.c (tuiDisplayRegistersFrom): Call touchwin.
+ (_tuiRegisterFormat): Reduce size of format result.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiGeneralWin.c (boxWin): Use the tui configuration variables.
+ * tuiWin.h: Declare the new variables.
+ * tuiWin.c (_initialize_tuiWin): Create TUI configuration variables.
+ (tui_update_variables): New function.
+ (translate): New function.
+ (tui_border_kind_enums, tui_border_mode_enums): New tables.
+ (tui_border_mode_translate): New table.
+ (tui_border_kind_translate_*): New tables.
+ (tui_active_border_mode): New variables.
+ (tui_border_*): New variables.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiWin.c (_parseScrollingArgs): Fix uninitialized variable.
+ (_makeVisibleWithNewHeight): Use TuiLineOrAddress type.
+
+ * tuiStack.c (tuiShowFrameInfo): Use TuiLineOrAddress type.
+ (tui_vUpdateLocatorFilename): Remove.
+ * tuiStack.h: Update prototypes.
+
+ * tuiSourceWin.c (tuiAddrIsDisplayed): New function.
+ (tuiLineIsDisplayed): Split for address and line.
+ (tuiUpdateSourceWindow): Use TuiLineOrAddress type.
+ (tuiUpdateSourceWindowAsIs): Likewise.
+ (tuiUpdateSourceWindowsWithAddr): Likewise.
+ (tuiUpdateSourceWindowsWithLine): Likewise.
+ (tuiHorizontalSourceScroll): Likewise.
+ (tuiSetIsExecPointAt): Likewise.
+ (tuiUpdateOnEnd): Likewise.
+ * tuiSourceWin.h: Update prototypes.
+
+ * tuiSource.c (tuiVerticalSourceScroll): Use TuiLineOrAddress type.
+ (tuiShowSource): Likewise.
+ (tuiVerticalSourceScroll): Likewise.
+ * tuiSource.h (tuiShowSource): Update prototype.
+
+ * tuiDisassem.c (tuiSetDisassemContent): Use CORE_ADDR for address.
+ (tuiShowDisassem): Use TuiLineOrAddress type.
+ (tuiShowDisassemAndUpdateSource): Likewise.
+ (tuiVerticalDisassemScroll): Likewise.
+ (tuiShowDisassemAsIs): Remove.
+ * tuiDisassem.h (tuiSetDisassemContent): Update prototype.
+
+ * tuiData.c (initWinInfo): Use CORE_ADDR for address.
+ (clearWinDetail): Likewise.
+ (displayableWinContentOf): Fix address conversion.
+ (tuiNextWin): Fix crash when the window is not yet created.
+ (partialWinByName): Likewise.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiSourceWin.h: Remove unused declarations.
+ * tuiSourceWin.c (tui_vUpdateSourceWindowsWithAddr): Remove.
+ (tui_vUpdateSourceWindowsWithLine): Remove.
+ (tui_vAllSetHasBreakAt): Remove.
+
+ * tuiLayout.h (tui_set_layout): Declare.
+ (tui_vSetLayoutTo): Remove.
+ (tui_vAddWinToLayout): Remove.
+ * tuiLayout.c (_tuiLayout_command): Call tui_enable() to force TUI.
+ (_tuiToggleLayout_command): Remove.
+ (_tuiToggleSplitLayout_command): Remove.
+ (_tuiLayout_command): Remove.
+ (tui_vSetLayoutTo): Remove.
+ (tui_vAddWinToLayout): Remove.
+
+ * tuiDataWin.h (tui_vCheckDataValues): Remove.
+ * tuiDataWin.c (tui_vCheckDataValues): Remove.
+
+2001-07-20 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiWin.c (tuiStrDup): Remove, replaced by xstrdup.
+ (_parseScrollingArgs): Use xstrdup.
+ (_tuiScrollForward_command): Call tui_enable() to force TUI mode.
+ (_tuiScrollBackward_command): Likewise.
+ (_tuiScrollLeft_command): Likewise.
+ (_tuiScrollRight_command): Likewise.
+ (_tuiSetFocus): Likewise.
+ (_tuiSetFocus_command): Likewise.
+ (_tuiRefreshAll_command): Likewise.
+ (_tuiSetTabWidth_command): Likewise.
+ (_tuiSetWinHeight): Likewise.
+ (_tuiSetWinHeight_command): Likewise.
+ (_tuiXDBsetWinHeight): Likewise.
+ (_tui_vSetFocus): Remove.
+ (_tui_vSetWinHeight): Remove.
+ (_tui_vXDBsetWinHeight): Remove.
+
+2001-07-21 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiCommand.h: Remove unused declarations.
+ * tuiCommand.c (tuiDispatchCtrlChar): Fix escape sequences.
+ (tuiIncrCommandCharCountBy): Remove.
+ (tuiDecrCommandCharCountBy): Remove.
+ (tuiSetCommandCharCountTo): Remove.
+ (tuiClearCommandCharCount): Remove.
+
+2001-07-20 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiWin.c (_initialize_tuiWin): Always define the tui commands;
+ create the tui class help.
+ * tuiLayout.c (_initialize_tuiLayout): Always define the tui commands.
+ * tuiRegs.c (_initialize_tuiRegs): Likewise.
+ * tuiStack.c (_initialize_tuiStack): Likewise.
+
+2001-07-19 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiDisassem.c (tuiVerticalDisassemScroll): Use CORE_ADDR.
+ (tuiVerticalDisassemScroll): Likewise.
+ (tuiShowDisassemAndUpdateSource): Check for null symtab to
+ prevent a crash.
+
+2001-07-18 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiIO.c (_tuiHandleResizeDuringIO): Call tuiRefreshAll.
+ (tuiRead, tui_vread): Remove.
+
+ * tui.c (va_catch_errors, tuiDo, tuiDoAndReturnToTop): Remove.
+ (vcatch_errors, _tui_vDo): Remove.
+ * tui.h (tuiDo, tuiDoAndReturnToTop): Remove.
+
+ * tuiLayout.c (tuiSetLayout): Remove vcatch_errors.
+ (tui_set_layout): Rename of _tuiSetLayoutTo, public.
+ (_tuiToggleLayout_command): Merge with _tui_vToggleLayout_command.
+ (_tuiToggleSplitLayout_command): Merge with _tui_vToggleSplitLayout_command.
+ (_tuiLayout_command): Call tui_set_layout.
+
+ * tuiRegs.c (_tuiScrollRegsBackward_command): Call tui_scroll.
+ (_tuiScrollRegsForward_command): Likewise.
+ (_tuiShowFloat_command): Call _tui_vShowRegisters_commandSupport.
+ (_tuiShowGeneral_command): Likewise.
+ (_tuiShowSpecial_command): Likewise.
+ (_tuiToggleFloatRegs_command): Call tuiToggleFloatRegs.
+ * tuiWin.c (tui_scroll): Rename of tui_vScroll, update parameters.
+ (_tuiScrollForward_command): Call tui_scroll.
+ (_tuiScrollBackward_command): Likewise.
+ (_tuiScrollLeft_command): Likewise.
+ (_tuiScrollRight_command): Likewise.
+ (_tuiSetFocus_command): Call _tuiSetFocus.
+ (_tuiRefreshAll_command): Call tuiRefreshAll.
+ (_tuiSetWinHeight_command): Call _tuiSetWinHeight.
+ (_tuiXDBsetWinHeight_command): Call _tuiXDBsetWinHeight.
+ * tuiWin.h (tui_scroll): Rename of tui_vScroll, update parameters.
+
+2001-07-18 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiData.h (TuiLocatorElement): Use CORE_ADDR for address member.
+ (TuiLineOrAddress): Likewise.
+ * tuiDisassem.c (tuiGetBeginAsmAddress): Use CORE_ADDR to specify
+ an address.
+ (tuiSetDisassemContent): Likewise.
+ (tuiShowDisassem, tuiShowDisassemAndUpdateSource): Likewise.
+ * tuiLayout.c (_extractDisplayStartAddr): Likewise.
+ (tuiSetLayout): Likewise.
+ * tuiSourceWin.c (tuiDisplayMainFunction): Likewise.
+ (tuiUpdateSourceWindowsWithAddr): Likewise.
+ (tuiUpdateSourceWindowsWithLine): Likewise.
+ (tuiSetHasBreakAt): Likewise.
+ * tuiStack.c (tuiSetLocatorInfo): Likewise.
+ (tuiSwitchFilename): Likewise.
+ (tuiUpdateLocatorInfoFromFrame): Likewise.
+ (tuiSetLocatorContent): Likewise.
+ (tuiShowFrameInfo): Likewise.
+ * tuiDisassem.h: Update prototypes to use CORE_ADDR.
+ * tuiSourceWin.h: Likewise.
+ * tuiStack.h: Likewise.
+
+2001-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiWin.c: Add missing includes.
+ (_makeVisibleWithNewHeight): Fix call to find_line_pc.
+ * tuiLayout.c: Add missing includes.
+ (_initAndMakeWin): Don't put curses in echo mode.
+ (_extractDisplayStartAddr): Fix calls to find_line_pc.
+ (_tuiLayout_command): Missing ',' in warning call.
+ * tuiSourceWin.c (tuiUpdateSourceWindowsWithLine): Fix calls to
+ find_line_pc.
+ (tuiSetHasBreakAt): Check for null source file.
+
+2001-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiWin.c (_tuiSetFocus): Replace subsetCompare with subset_compare.
+ * tuiLayout.c (_tuiSetLayoutTo): Likewise.
+ * tui.c (_tui_vToggle_command): Likewise.
+
+2001-07-17 Elena Zannoni <ezannoni@redhat.com>
+
+ * tui-file.c: Add include of tuiIO.h, for tuiPuts_unfiltered.
+
+2001-07-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiRegs.c (tuiDisplayRegistersFrom): Set scrollok to FALSE in
+ each register window.
+ (tuiCheckRegisterValues): Use REGISTER_RAW_SIZE to obtain the size
+ of the register to check.
+ (_tuiRegValueHasChanged): Likewise.
+ (_tuiRegisterName): Use REGISTER_NAME.
+ (tui_restore_gdbout): New function.
+ (_tuiRegisterFormat): Use do_registers_info with gdb_stdout redirected
+ to a string.
+ (START_SPECIAL_REGS): Define.
+ (_tuiGetRegisterRawValue): Use get_saved_register.
+ (_tuiDisplayRegister): Fix clearing of register window.
+
+2001-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tui-file.h (fputs_unfiltered_hook): Remove.
+ * tui-file.c (tui_file_flush): Remove fputs_unfiltered_hook.
+ (tui_file_fputs): Likewise; simplify
+
+2001-07-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiStack.c: Add missing includes.
+ (tuiShowFrameInfo): Don't crash when there is no symbol table
+ associated with the pc.
+ * tuiSource.c (_hasBreak): Check for null source file.
+ * tuiWin.c (tuiRefreshAll): Check for null winList[type].
+ (_tuiSetFocus): Check for null dataWin.
+ * tuiGeneralWin.c (refreshAll): Check for null list[type].
+
+2001-07-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiDisassem.c (tuiSetDisassemContent): Use tm_print_insn_info
+ to disassemble in the curses window.
+
+2001-07-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tui.h: Cleanup to avoid inclusion of curses includes.
+ (TuiGenWinInfo, TuiGenWinInfoPtr): Move from here.
+ * tuiData.h: To here; include curses includes here.
+ (setTermHeightTo): Rename of setTermHeight to follow reality.
+ (setTermWidthTo): Likewise with setTermWidth.
+
+2001-07-14 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiWin.c, tui.c, tuiCommand.c: Use ansi prototype.
+ tuiIO.c, tuiData.c: Likewise.
+ tuiDataWin.c, tuiDisassem.c: Likewise.
+ tuiGeneralWin.c, tuiLayout.c: Likewise.
+ tuiRegs.c, tuiSource.c: Likewise.
+ tuiSouceWin.c, tuiStack.c: Likewise.
+
+2001-07-14 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * tuiWin.c, tuiWin.h, tui.c, tui.h, tuiCommand.c: Add FSF copyright.
+ tuiCommand.h, tuiIO.c, tuiIO.h, tuiData.h, tuiData.c: Likewise.
+ tuiDataWin.c, tuiDataWin.h, tuiDisassem.c, tuiDisassem.h: Likewise.
+ tuiGeneralWin.c, tuiGeneralWin.h, tuiLayout.c, tuiLayout.h: Likewise.
+ tuiRegs.c, tuiRegs.h, tuiSource.c, tuiSource.h: Likewise.
+ tuiSouceWin.c, tuiSourceWin.h, tuiStack.c, tuiStack.h: Likewise.
+
+2001-03-08 Andrew Cagney <ac131313@redhat.com>
+
+ * tuiRegs.c: Use NUM_REGS, not ARCH_NUM_REGS.
+
+2001-03-06 Kevin Buettner <kevinb@redhat.com>
+
+ * tui-file.h: Update/correct copyright notice.
+
+Wed Feb 7 19:54:27 2001 Andrew Cagney <cagney@redhat.com>
+
+ * tui-file.c: Add __FILE__ and __LINE__ parameter to calls to
+ internal_error.
+
+2000-12-14 Kevin Buettner <kevinb@redhat.com>
+
+ * tui-file.c, tui.c, tuiData.c, tuiLayout.c: Replace occurrences
+ of free() with xfree().
+
+2000-06-22 Kevin Buettner <kevinb@redhat.com>
+
+ * tuiSourceWin.h: Eliminate use of PARAMS from this file.
+
+2000-06-20 Kevin Buettner <kevinb@redhat.com>
+
+ * tuiLayout.c: Eliminate use of PARAMS from this file.
+
+2000-06-17 Kevin Buettner <kevinb@redhat.com>
+
+ * tuiIO.c: Eliminate use of PARAMS from this file.
+
+Thu May 25 14:46:20 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * tui-file.c: Include "tui.h", "tuiData.h", "tuiIO.h" and
+ "tuiCommand.h".
+ (tui_file_fputs): Pass ``file'' and not ``stream'' to
+ tui_file_adjust_strbuf.
+
+Thu May 25 16:58:01 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * tui.h: Include <ncurses.h> when available.
+ * tui.c, tuiGeneralWin.c: Do not include <curses.h>.
+
+Mon May 15 17:16:10 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * Makefile.in: Delete.
+
+Tue Apr 18 15:32:15 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * Makefile.in (distclean, maintainer-clean, realclean,
+ mostlyclean): New targets.
+
+Tue Feb 1 00:17:12 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * tui-file.c, tui-file.h, tuiDisassem.c, tuiIO.c, tuiIO.h,
+ tuiRegs.c: Update to reflect rename of gdb-file / GDB_FILE to
+ ui-file / ``struct ui_file''.
+
+Mon Jan 31 18:12:43 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * tui-file.c (enum streamtype, struct tui_stream, tui_file_new,
+ tui_file_delete, tui_fileopen, tui_sfileopen, tui_file_isatty,
+ tui_file_rewind, tui_file_put, tui_file_fputs,
+ tui_file_get_strbuf, tui_file_adjust_strbuf, tui_file_flush,
+ fputs_unfiltered_hook): Move to here from ../utils.c
+
+ * tui-file.h, tui-file.c: New files.
+
+Mon Nov 8 17:47:37 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * tuiRegs.c (_tuiRegisterFormat), tuiDisassem.c
+ (tuiSetDisassemContent): Replace gdb_file_init_astring with
+ tui_sfileopen. Replace gdb_file_get_strbuf with
+ tui_file_get_strbuf.
+
+Mon Nov 8 16:54:51 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * tuiRegs.c (_tuiRegisterFormat), tuiDisassem.c
+ (tuiSetDisassemContent): Repace gdb_file_deallocate with
+ gdb_file_delete. Replace gdb_file_init_astring with tui_sfileopen.
+
+Fri Sep 17 19:34:38 1999 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * tuiSource.c: Include "source.h".
+ (open_source_file, find_source_lines): Delete declarations.
+
+1999-01-26 Jason Molenda (jsm@bugshack.cygnus.com)
+
+ * tui.h: Include stdarg.h instead of varargs.h if we're on an ISO Cish
+ system.
+
+Thu Dec 31 12:08:32 1998 David Taylor <taylor@texas.cygnus.com>
+
+ The following changes were made by Jim Blandy <jimb@cygnus.com>,
+ Edith Epstein <eepstein@cygnus.com>, Elena Zannoni
+ <ezannoni@cygnus.com> Stan Shebs <shebs@cygnus.com>, and David
+ Taylor <taylor@cygnus.com>, as part of the project to merge in
+ changes originally made by HP; HP did not create ChangeLog
+ entries.
+
+ * Makefile.in: New file; we're merging HP's changes into GDB, and
+ we've moved the TUI files into a subdirectory, so we need a new
+ Makefile.
+
+ * tui.c:
+ #include <term.h>, if we have it, to get declarations for
+ the termcap functions on Solaris.
+ (tgoto): Add external K&R declaration for this; Solaris doesn't
+ bother to actually declare it in their header files.
+ (_tuiReset): Ignore the #definition of TIOCGETC if USG is defined;
+ we'd rather use the USG mechanisms than the Berkeley mechanisms
+ (TIOCGETC is one of the Berkeley terminal control ioctls).
+ Apologies if this causes trouble later; this should all be handled
+ by autoconf...
+ (strcat_to_buf, strcat_to_buf_with_fmt): New functions, moved here
+ from ../utils.h.
+ (tuiFree): replace safe_free with free.
+ (strcat_to_buf): new function, copied from utils.c.
+ (tuiInit): Add ignored `argv0' argument, to match the type that
+ init_ui_hook expects; updated declaration. Call the
+ initialize_tui_files function constructed above. Initialize
+ flush_hook to NULL.
+ (tuiInitWindows): Call tuiSetLocatorContent, to get the first
+ element of the locator window's content allocated. This seems
+ wrong, because it must have been initialized somehow in HP's
+ sources, and we should do it the same way now. But we do get
+ further before it segfaults. [Postscript: HP didn't bother to
+ initialize it; they compile
+ (va_catch_errors, vcatch_errors): Functions moved here from
+ ../utils.c in HP's sources. They're not used anywhere else.
+ (xdb_style): Delete this variable, and remove all references to
+ it. It's always true.
+ (tuiInit, _tui_vDo): References removed.
+
+ * tui.h: Add prototypes.
+ Don't #include "gendefs.h"; it's only used in the TUI.
+ Integrate its contents into this file:
+ #include <ansidecl.h> here.
+ (Opaque, OpaqueFuncPtr): Typedefs moved to here.
+
+ * tuiCommand.c: #include "defs.h", so we get the appropriate
+ definition of GDB_FILE.
+
+ * tuiData.c
+ (freeWindow): replace safe_free with free.
+ (tui_version): don't define it here; it's defined in main.c now.
+
+ * tuiDisassem.c
+ (tuiSetDisassemContent): Call strcat_address_numeric instead of
+ strcat_address. Simplify the control structure. Use predefined
+ GDB function to print asm inst address. Use GDB_FILE to collect
+ output into buffers.
+
+ * tuiIO.c
+ (tgoto): Add external K&R declaration for this here too.
+ (tuiGetc, tuiTermSetup, tuiTermUnsetup): Same.
+ (tuiPuts_unfiltered): change FILE to GDB_FILE.
+ (tui_tputs): fix prototype for 3rd argument.
+
+ * tuiIO.h (tuiPuts_unfiltered): change declaration.
+
+ * tuiLayout.c
+ (_tuiSetLayoutTo): for displaying registers, hook up the HP code
+ that decides which registers to display (i.e. single precision
+ float, double precision float, general, special). Previously,
+ only handled TUI_GENERAL_REGS. Now that the code is hooked up,
+ compiling with -z poses a problem. When the first layout command
+ is 'layout regs', dataWin->detail is a NULL pointer, and gdb
+ core dumps.
+
+ * tuiLayout.c (_tuiSetLayoutTo): replace safe_free with free.
+
+ * tuiRegs.c #include "defs.h" earlier, to avoid problems in
+ <stdarg.h>. No idea exactly what's conflicting with what, but the
+ errors went away...
+ (_tuiRegisterFormat): Change so that function creates a GDB_FILE
+ object, calls pa_do_strcat_registers_info, copies the register
+ info into a buffer, and deallocates the GDB_FILE object. Remove
+ some code that is not executed. Also, call to
+ pa_do_strcat_registers_info has an additional parameter,
+ precision. This code requires some new per-target functions that
+ we don't want to merge. Dyke it out, with #ifdef
+ TUI_EXTENDED_FORMATTERS.
+ (_tuiSetSpecialRegsContent): this function was ifdefed out.
+ Hooked this up.
+ (_tuiSetGeneralAndSpecialRegsContent): this function was ifdefed
+ out. Hooked it up.
+ (IS_64BIT): Just define this to be zero; we're not merging in the
+ 64-bit support.
+ (tuiShowRegisters): Comment out all references to the "special"
+ regs; we don't have a distinction between the "special" and
+ "non-special" regs in most of our machine descriptions. This code
+ is PA-specific in other ways as well, and needs to be redesigned
+ to be portable to other processors.
+
+ * tuiWin.c: #include <string.h>, to get a declaration for
+ strchr.
+
+ * tui.c, tuiCommand.c, tuiData.c, tuiDataWin.c, tuiDisassem.c,
+ tuiGeneralWin.c, tuiIO.c, tuiLayout.c, tuiRegs.c, tuiSource.c,
+ tuiSourceWin.c, tuiStack.c, tuiWin.c: New files (from HP). Changed
+ bool to int throughout. Re-indented, GNU style.
+
+ * tui.h, tuiCommand.h, tuiData.h, tuiDataWin.h, tuiDisassem.h,
+ tuiGeneralWin.h, tuiIO.h, tuiLayout.h, tuiRegs.h, tuiSource.h,
+ tuiSourceWin.h, tuiStack.h, tuiWin.h: new files (from HP).
+ Changed bool to int throughout.
diff --git a/gdb/tui/tui-command.c b/gdb/tui/tui-command.c
new file mode 100644
index 00000000000..4b1c0fd8e0d
--- /dev/null
+++ b/gdb/tui/tui-command.c
@@ -0,0 +1,135 @@
+/* Specific command window processing.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include <ctype.h>
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-win.h"
+#include "tui/tui-io.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+
+/*****************************************
+** STATIC LOCAL FUNCTIONS FORWARD DECLS **
+******************************************/
+
+
+
+/*****************************************
+** PUBLIC FUNCTIONS **
+******************************************/
+
+/* Dispatch the correct tui function based upon the control character. */
+unsigned int
+tui_dispatch_ctrl_char (unsigned int ch)
+{
+ TuiWinInfoPtr winInfo = tuiWinWithFocus ();
+ WINDOW *w = cmdWin->generic.handle;
+
+ /*
+ ** If the command window has the logical focus, or no-one does
+ ** assume it is the command window; in this case, pass the
+ ** character on through and do nothing here.
+ */
+ if (winInfo == (TuiWinInfoPtr) NULL || winInfo == cmdWin)
+ return ch;
+ else
+ {
+ unsigned int c = 0, chCopy = ch;
+ register int i;
+ char *term;
+
+ /* If this is an xterm, page next/prev keys aren't returned
+ ** by keypad as a single char, so we must handle them here.
+ ** Seems like a bug in the curses library?
+ */
+ term = (char *) getenv ("TERM");
+ for (i = 0; (term && term[i]); i++)
+ term[i] = toupper (term[i]);
+ if ((strcmp (term, "XTERM") == 0) && key_is_start_sequence (ch))
+ {
+ unsigned int pageCh = 0, tmpChar;
+
+ tmpChar = 0;
+ while (!key_is_end_sequence (tmpChar))
+ {
+ tmpChar = (int) wgetch (w);
+ if (tmpChar == ERR)
+ {
+ return ch;
+ }
+ if (!tmpChar)
+ break;
+ if (tmpChar == 53)
+ pageCh = KEY_PPAGE;
+ else if (tmpChar == 54)
+ pageCh = KEY_NPAGE;
+ else
+ {
+ return 0;
+ }
+ }
+ chCopy = pageCh;
+ }
+
+ switch (chCopy)
+ {
+ case KEY_NPAGE:
+ tuiScrollForward (winInfo, 0);
+ break;
+ case KEY_PPAGE:
+ tuiScrollBackward (winInfo, 0);
+ break;
+ case KEY_DOWN:
+ case KEY_SF:
+ tuiScrollForward (winInfo, 1);
+ break;
+ case KEY_UP:
+ case KEY_SR:
+ tuiScrollBackward (winInfo, 1);
+ break;
+ case KEY_RIGHT:
+ tuiScrollLeft (winInfo, 1);
+ break;
+ case KEY_LEFT:
+ tuiScrollRight (winInfo, 1);
+ break;
+ case '\f':
+ tuiRefreshAll ();
+ break;
+ default:
+ c = chCopy;
+ break;
+ }
+ return c;
+ }
+}
diff --git a/gdb/tui/tui-command.h b/gdb/tui/tui-command.h
new file mode 100644
index 00000000000..9653bf07ee5
--- /dev/null
+++ b/gdb/tui/tui-command.h
@@ -0,0 +1,30 @@
+/* Specific command window processing.
+
+ Copyright 1998, 1999, 2000, 2001, 2004 Free Software Foundation,
+ Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef TUI_COMMAND_H
+#define TUI_COMMAND_H
+
+extern unsigned int tui_dispatch_ctrl_char (unsigned int);
+
+#endif
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
new file mode 100644
index 00000000000..c6f4fb5dafc
--- /dev/null
+++ b/gdb/tui/tui-data.c
@@ -0,0 +1,1055 @@
+/* TUI data manipulation routines.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation,
+ Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "symtab.h"
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-wingeneral.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+/****************************
+** GLOBAL DECLARATIONS
+****************************/
+TuiWinInfoPtr winList[MAX_MAJOR_WINDOWS];
+
+/***************************
+** Private data
+****************************/
+static TuiLayoutType _currentLayout = UNDEFINED_LAYOUT;
+static int _termHeight, _termWidth;
+static TuiGenWinInfo _locator;
+static TuiGenWinInfo _execInfo[2];
+static TuiWinInfoPtr _srcWinList[2];
+static TuiList _sourceWindows =
+{(OpaqueList) _srcWinList, 0};
+static int _defaultTabLen = DEFAULT_TAB_LEN;
+static TuiWinInfoPtr _winWithFocus = (TuiWinInfoPtr) NULL;
+static TuiLayoutDef _layoutDef =
+{SRC_WIN, /* displayMode */
+ FALSE, /* split */
+ TUI_UNDEFINED_REGS, /* regsDisplayType */
+ TUI_SFLOAT_REGS}; /* floatRegsDisplayType */
+static int _winResized = FALSE;
+
+
+/*********************************
+** Static function forward decls
+**********************************/
+static void freeContent (TuiWinContent, int, TuiWinType);
+static void freeContentElements (TuiWinContent, int, TuiWinType);
+
+
+
+/*********************************
+** PUBLIC FUNCTIONS
+**********************************/
+
+/******************************************
+** ACCESSORS & MUTATORS FOR PRIVATE DATA
+******************************************/
+
+/*
+ ** tuiWinResized().
+ ** Answer a whether the terminal window has been resized or not
+ */
+int
+tuiWinResized (void)
+{
+ return _winResized;
+} /* tuiWinResized */
+
+
+/*
+ ** tuiSetWinResized().
+ ** Set a whether the terminal window has been resized or not
+ */
+void
+tuiSetWinResizedTo (int resized)
+{
+ _winResized = resized;
+
+ return;
+} /* tuiSetWinResizedTo */
+
+
+/*
+ ** tuiLayoutDef().
+ ** Answer a pointer to the current layout definition
+ */
+TuiLayoutDefPtr
+tuiLayoutDef (void)
+{
+ return &_layoutDef;
+} /* tuiLayoutDef */
+
+
+/*
+ ** tuiWinWithFocus().
+ ** Answer the window with the logical focus
+ */
+TuiWinInfoPtr
+tuiWinWithFocus (void)
+{
+ return _winWithFocus;
+} /* tuiWinWithFocus */
+
+
+/*
+ ** tuiSetWinWithFocus().
+ ** Set the window that has the logical focus
+ */
+void
+tuiSetWinWithFocus (TuiWinInfoPtr winInfo)
+{
+ _winWithFocus = winInfo;
+
+ return;
+} /* tuiSetWinWithFocus */
+
+
+/*
+ ** tuiDefaultTabLen().
+ ** Answer the length in chars, of tabs
+ */
+int
+tuiDefaultTabLen (void)
+{
+ return _defaultTabLen;
+} /* tuiDefaultTabLen */
+
+
+/*
+ ** tuiSetDefaultTabLen().
+ ** Set the length in chars, of tabs
+ */
+void
+tuiSetDefaultTabLen (int len)
+{
+ _defaultTabLen = len;
+
+ return;
+} /* tuiSetDefaultTabLen */
+
+
+/*
+ ** currentSourceWin()
+ ** Accessor for the current source window. Usually there is only
+ ** one source window (either source or disassembly), but both can
+ ** be displayed at the same time.
+ */
+TuiListPtr
+sourceWindows (void)
+{
+ return &_sourceWindows;
+} /* currentSourceWindows */
+
+
+/*
+ ** clearSourceWindows()
+ ** Clear the list of source windows. Usually there is only one
+ ** source window (either source or disassembly), but both can be
+ ** displayed at the same time.
+ */
+void
+clearSourceWindows (void)
+{
+ _sourceWindows.list[0] = (Opaque) NULL;
+ _sourceWindows.list[1] = (Opaque) NULL;
+ _sourceWindows.count = 0;
+
+ return;
+} /* currentSourceWindows */
+
+
+/*
+ ** clearSourceWindowsDetail()
+ ** Clear the pertinant detail in the source windows.
+ */
+void
+clearSourceWindowsDetail (void)
+{
+ int i;
+
+ for (i = 0; i < (sourceWindows ())->count; i++)
+ clearWinDetail ((TuiWinInfoPtr) (sourceWindows ())->list[i]);
+
+ return;
+} /* currentSourceWindows */
+
+
+/*
+ ** addSourceWindowToList().
+ ** Add a window to the list of source windows. Usually there is
+ ** only one source window (either source or disassembly), but
+ ** both can be displayed at the same time.
+ */
+void
+addToSourceWindows (TuiWinInfoPtr winInfo)
+{
+ if (_sourceWindows.count < 2)
+ _sourceWindows.list[_sourceWindows.count++] = (Opaque) winInfo;
+
+ return;
+} /* addToSourceWindows */
+
+
+/*
+ ** clearWinDetail()
+ ** Clear the pertinant detail in the windows.
+ */
+void
+clearWinDetail (TuiWinInfoPtr winInfo)
+{
+ if (m_winPtrNotNull (winInfo))
+ {
+ switch (winInfo->generic.type)
+ {
+ case SRC_WIN:
+ case DISASSEM_WIN:
+ winInfo->detail.sourceInfo.startLineOrAddr.addr = 0;
+ winInfo->detail.sourceInfo.horizontalOffset = 0;
+ break;
+ case CMD_WIN:
+ winInfo->detail.commandInfo.curLine =
+ winInfo->detail.commandInfo.curch = 0;
+ break;
+ case DATA_WIN:
+ winInfo->detail.dataDisplayInfo.dataContent =
+ (TuiWinContent) NULL;
+ winInfo->detail.dataDisplayInfo.dataContentCount = 0;
+ winInfo->detail.dataDisplayInfo.regsContent =
+ (TuiWinContent) NULL;
+ winInfo->detail.dataDisplayInfo.regsContentCount = 0;
+ winInfo->detail.dataDisplayInfo.regsDisplayType =
+ TUI_UNDEFINED_REGS;
+ winInfo->detail.dataDisplayInfo.regsColumnCount = 1;
+ winInfo->detail.dataDisplayInfo.displayRegs = FALSE;
+ break;
+ default:
+ break;
+ }
+ }
+
+ return;
+} /* clearWinDetail */
+
+
+/*
+ ** sourceExecInfoPtr().
+ ** Accessor for the source execution info ptr.
+ */
+TuiGenWinInfoPtr
+sourceExecInfoWinPtr (void)
+{
+ return &_execInfo[0];
+} /* sourceExecInfoWinPtr */
+
+
+/*
+ ** disassemExecInfoPtr().
+ ** Accessor for the disassem execution info ptr.
+ */
+TuiGenWinInfoPtr
+disassemExecInfoWinPtr (void)
+{
+ return &_execInfo[1];
+} /* disassemExecInfoWinPtr */
+
+
+/*
+ ** locatorWinInfoPtr().
+ ** Accessor for the locator win info. Answers a pointer to the
+ ** static locator win info struct.
+ */
+TuiGenWinInfoPtr
+locatorWinInfoPtr (void)
+{
+ return &_locator;
+} /* locatorWinInfoPtr */
+
+
+/*
+ ** termHeight().
+ ** Accessor for the termHeight
+ */
+int
+termHeight (void)
+{
+ return _termHeight;
+} /* termHeight */
+
+
+/*
+ ** setTermHeightTo().
+ ** Mutator for the term height
+ */
+void
+setTermHeightTo (int h)
+{
+ _termHeight = h;
+
+ return;
+} /* setTermHeightTo */
+
+
+/*
+ ** termWidth().
+ ** Accessor for the termWidth
+ */
+int
+termWidth (void)
+{
+ return _termWidth;
+} /* termWidth */
+
+
+/*
+ ** setTermWidth().
+ ** Mutator for the termWidth
+ */
+void
+setTermWidthTo (int w)
+{
+ _termWidth = w;
+
+ return;
+} /* setTermWidthTo */
+
+
+/*
+ ** currentLayout().
+ ** Accessor for the current layout
+ */
+TuiLayoutType
+currentLayout (void)
+{
+ return _currentLayout;
+} /* currentLayout */
+
+
+/*
+ ** setCurrentLayoutTo().
+ ** Mutator for the current layout
+ */
+void
+setCurrentLayoutTo (TuiLayoutType newLayout)
+{
+ _currentLayout = newLayout;
+
+ return;
+} /* setCurrentLayoutTo */
+
+
+/*
+ ** setGenWinOrigin().
+ ** Set the origin of the window
+ */
+void
+setGenWinOrigin (TuiGenWinInfoPtr winInfo, int x, int y)
+{
+ winInfo->origin.x = x;
+ winInfo->origin.y = y;
+
+ return;
+} /* setGenWinOrigin */
+
+
+/*****************************
+** OTHER PUBLIC FUNCTIONS
+*****************************/
+
+
+/*
+ ** tuiNextWin().
+ ** Answer the next window in the list, cycling back to the top
+ ** if necessary
+ */
+TuiWinInfoPtr
+tuiNextWin (TuiWinInfoPtr curWin)
+{
+ TuiWinType type = curWin->generic.type;
+ TuiWinInfoPtr nextWin = (TuiWinInfoPtr) NULL;
+
+ if (curWin->generic.type == CMD_WIN)
+ type = SRC_WIN;
+ else
+ type = curWin->generic.type + 1;
+ while (type != curWin->generic.type && m_winPtrIsNull (nextWin))
+ {
+ if (winList[type] && winList[type]->generic.isVisible)
+ nextWin = winList[type];
+ else
+ {
+ if (type == CMD_WIN)
+ type = SRC_WIN;
+ else
+ type++;
+ }
+ }
+
+ return nextWin;
+} /* tuiNextWin */
+
+
+/*
+ ** tuiPrevWin().
+ ** Answer the prev window in the list, cycling back to the bottom
+ ** if necessary
+ */
+TuiWinInfoPtr
+tuiPrevWin (TuiWinInfoPtr curWin)
+{
+ TuiWinType type = curWin->generic.type;
+ TuiWinInfoPtr prev = (TuiWinInfoPtr) NULL;
+
+ if (curWin->generic.type == SRC_WIN)
+ type = CMD_WIN;
+ else
+ type = curWin->generic.type - 1;
+ while (type != curWin->generic.type && m_winPtrIsNull (prev))
+ {
+ if (winList[type]->generic.isVisible)
+ prev = winList[type];
+ else
+ {
+ if (type == SRC_WIN)
+ type = CMD_WIN;
+ else
+ type--;
+ }
+ }
+
+ return prev;
+}
+
+
+/*
+ ** partialWinByName().
+ ** Answer the window represented by name
+ */
+TuiWinInfoPtr
+partialWinByName (char *name)
+{
+ TuiWinInfoPtr winInfo = (TuiWinInfoPtr) NULL;
+
+ if (name != (char *) NULL)
+ {
+ int i = 0;
+
+ while (i < MAX_MAJOR_WINDOWS && m_winPtrIsNull (winInfo))
+ {
+ if (winList[i] != 0)
+ {
+ char *curName = winName (&winList[i]->generic);
+ if (strlen (name) <= strlen (curName) &&
+ strncmp (name, curName, strlen (name)) == 0)
+ winInfo = winList[i];
+ }
+ i++;
+ }
+ }
+
+ return winInfo;
+} /* partialWinByName */
+
+
+/*
+ ** winName().
+ ** Answer the name of the window
+ */
+char *
+winName (TuiGenWinInfoPtr winInfo)
+{
+ char *name = (char *) NULL;
+
+ switch (winInfo->type)
+ {
+ case SRC_WIN:
+ name = SRC_NAME;
+ break;
+ case CMD_WIN:
+ name = CMD_NAME;
+ break;
+ case DISASSEM_WIN:
+ name = DISASSEM_NAME;
+ break;
+ case DATA_WIN:
+ name = DATA_NAME;
+ break;
+ default:
+ name = "";
+ break;
+ }
+
+ return name;
+} /* winName */
+
+
+/*
+ ** initializeStaticData
+ */
+void
+initializeStaticData (void)
+{
+ initGenericPart (sourceExecInfoWinPtr ());
+ initGenericPart (disassemExecInfoWinPtr ());
+ initGenericPart (locatorWinInfoPtr ());
+
+ return;
+} /* initializeStaticData */
+
+
+/*
+ ** allocGenericWinInfo().
+ */
+TuiGenWinInfoPtr
+allocGenericWinInfo (void)
+{
+ TuiGenWinInfoPtr win;
+
+ if ((win = (TuiGenWinInfoPtr) xmalloc (
+ sizeof (TuiGenWinInfoPtr))) != (TuiGenWinInfoPtr) NULL)
+ initGenericPart (win);
+
+ return win;
+} /* allocGenericWinInfo */
+
+
+/*
+ ** initGenericPart().
+ */
+void
+initGenericPart (TuiGenWinInfoPtr win)
+{
+ win->width =
+ win->height =
+ win->origin.x =
+ win->origin.y =
+ win->viewportHeight =
+ win->contentSize =
+ win->lastVisibleLine = 0;
+ win->handle = (WINDOW *) NULL;
+ win->content = (OpaquePtr) NULL;
+ win->contentInUse =
+ win->isVisible = FALSE;
+ win->title = 0;
+}
+
+
+/*
+ ** initContentElement().
+ */
+void
+initContentElement (TuiWinElementPtr element, TuiWinType type)
+{
+ element->highlight = FALSE;
+ switch (type)
+ {
+ case SRC_WIN:
+ case DISASSEM_WIN:
+ element->whichElement.source.line = (char *) NULL;
+ element->whichElement.source.lineOrAddr.lineNo = 0;
+ element->whichElement.source.isExecPoint = FALSE;
+ element->whichElement.source.hasBreak = FALSE;
+ break;
+ case DATA_WIN:
+ initGenericPart (&element->whichElement.dataWindow);
+ element->whichElement.dataWindow.type = DATA_ITEM_WIN;
+ ((TuiGenWinInfoPtr) & element->whichElement.dataWindow)->content =
+ (OpaquePtr) allocContent (1, DATA_ITEM_WIN);
+ ((TuiGenWinInfoPtr)
+ & element->whichElement.dataWindow)->contentSize = 1;
+ break;
+ case CMD_WIN:
+ element->whichElement.command.line = (char *) NULL;
+ break;
+ case DATA_ITEM_WIN:
+ element->whichElement.data.name = (char *) NULL;
+ element->whichElement.data.type = TUI_REGISTER;
+ element->whichElement.data.itemNo = UNDEFINED_ITEM;
+ element->whichElement.data.value = (Opaque) NULL;
+ element->whichElement.data.highlight = FALSE;
+ break;
+ case LOCATOR_WIN:
+ element->whichElement.locator.fileName[0] =
+ element->whichElement.locator.procName[0] = (char) 0;
+ element->whichElement.locator.lineNo = 0;
+ element->whichElement.locator.addr = 0;
+ break;
+ case EXEC_INFO_WIN:
+ memset(element->whichElement.simpleString, ' ',
+ sizeof(element->whichElement.simpleString));
+ break;
+ default:
+ break;
+ }
+ return;
+} /* initContentElement */
+
+/*
+ ** initWinInfo().
+ */
+void
+initWinInfo (TuiWinInfoPtr winInfo)
+{
+ initGenericPart (&winInfo->generic);
+ winInfo->canHighlight =
+ winInfo->isHighlighted = FALSE;
+ switch (winInfo->generic.type)
+ {
+ case SRC_WIN:
+ case DISASSEM_WIN:
+ winInfo->detail.sourceInfo.executionInfo = (TuiGenWinInfoPtr) NULL;
+ winInfo->detail.sourceInfo.hasLocator = FALSE;
+ winInfo->detail.sourceInfo.horizontalOffset = 0;
+ winInfo->detail.sourceInfo.startLineOrAddr.addr = 0;
+ winInfo->detail.sourceInfo.filename = 0;
+ break;
+ case DATA_WIN:
+ winInfo->detail.dataDisplayInfo.dataContent = (TuiWinContent) NULL;
+ winInfo->detail.dataDisplayInfo.dataContentCount = 0;
+ winInfo->detail.dataDisplayInfo.regsContent = (TuiWinContent) NULL;
+ winInfo->detail.dataDisplayInfo.regsContentCount = 0;
+ winInfo->detail.dataDisplayInfo.regsDisplayType =
+ TUI_UNDEFINED_REGS;
+ winInfo->detail.dataDisplayInfo.regsColumnCount = 1;
+ winInfo->detail.dataDisplayInfo.displayRegs = FALSE;
+ break;
+ case CMD_WIN:
+ winInfo->detail.commandInfo.curLine = 0;
+ winInfo->detail.commandInfo.curch = 0;
+ break;
+ default:
+ winInfo->detail.opaque = (Opaque) NULL;
+ break;
+ }
+
+ return;
+} /* initWinInfo */
+
+
+/*
+ ** allocWinInfo().
+ */
+TuiWinInfoPtr
+allocWinInfo (TuiWinType type)
+{
+ TuiWinInfoPtr winInfo = (TuiWinInfoPtr) NULL;
+
+ winInfo = (TuiWinInfoPtr) xmalloc (sizeof (TuiWinInfo));
+ if (m_winPtrNotNull (winInfo))
+ {
+ winInfo->generic.type = type;
+ initWinInfo (winInfo);
+ }
+
+ return winInfo;
+} /* allocWinInfo */
+
+
+/*
+ ** allocContent().
+ ** Allocates the content and elements in a block.
+ */
+TuiWinContent
+allocContent (int numElements, TuiWinType type)
+{
+ TuiWinContent content = (TuiWinContent) NULL;
+ char *elementBlockPtr = (char *) NULL;
+ int i;
+
+ if ((content = (TuiWinContent)
+ xmalloc (sizeof (TuiWinElementPtr) * numElements)) != (TuiWinContent) NULL)
+ { /*
+ ** All windows, except the data window, can allocate the elements
+ ** in a chunk. The data window cannot because items can be
+ ** added/removed from the data display by the user at any time.
+ */
+ if (type != DATA_WIN)
+ {
+ if ((elementBlockPtr = (char *)
+ xmalloc (sizeof (TuiWinElement) * numElements)) != (char *) NULL)
+ {
+ for (i = 0; i < numElements; i++)
+ {
+ content[i] = (TuiWinElementPtr) elementBlockPtr;
+ initContentElement (content[i], type);
+ elementBlockPtr += sizeof (TuiWinElement);
+ }
+ }
+ else
+ {
+ tuiFree ((char *) content);
+ content = (TuiWinContent) NULL;
+ }
+ }
+ }
+
+ return content;
+} /* allocContent */
+
+
+/*
+ ** addContentElements().
+ ** Adds the input number of elements to the windows's content. If
+ ** no content has been allocated yet, allocContent() is called to
+ ** do this. The index of the first element added is returned,
+ ** unless there is a memory allocation error, in which case, (-1)
+ ** is returned.
+ */
+int
+addContentElements (TuiGenWinInfoPtr winInfo, int numElements)
+{
+ TuiWinElementPtr elementPtr;
+ int i, indexStart;
+
+ if (winInfo->content == (OpaquePtr) NULL)
+ {
+ winInfo->content = (OpaquePtr) allocContent (numElements, winInfo->type);
+ indexStart = 0;
+ }
+ else
+ indexStart = winInfo->contentSize;
+ if (winInfo->content != (OpaquePtr) NULL)
+ {
+ for (i = indexStart; (i < numElements + indexStart); i++)
+ {
+ if ((elementPtr = (TuiWinElementPtr)
+ xmalloc (sizeof (TuiWinElement))) != (TuiWinElementPtr) NULL)
+ {
+ winInfo->content[i] = (Opaque) elementPtr;
+ initContentElement (elementPtr, winInfo->type);
+ winInfo->contentSize++;
+ }
+ else /* things must be really hosed now! We ran out of memory!? */
+ return (-1);
+ }
+ }
+
+ return indexStart;
+} /* addContentElements */
+
+
+/* Delete all curses windows associated with winInfo, leaving everything
+ else intact. */
+void
+tuiDelWindow (TuiWinInfoPtr winInfo)
+{
+ TuiGenWinInfoPtr genericWin;
+
+ switch (winInfo->generic.type)
+ {
+ case SRC_WIN:
+ case DISASSEM_WIN:
+ genericWin = locatorWinInfoPtr ();
+ if (genericWin != (TuiGenWinInfoPtr) NULL)
+ {
+ tuiDelwin (genericWin->handle);
+ genericWin->handle = (WINDOW *) NULL;
+ genericWin->isVisible = FALSE;
+ }
+ if (winInfo->detail.sourceInfo.filename)
+ {
+ xfree (winInfo->detail.sourceInfo.filename);
+ winInfo->detail.sourceInfo.filename = 0;
+ }
+ genericWin = winInfo->detail.sourceInfo.executionInfo;
+ if (genericWin != (TuiGenWinInfoPtr) NULL)
+ {
+ tuiDelwin (genericWin->handle);
+ genericWin->handle = (WINDOW *) NULL;
+ genericWin->isVisible = FALSE;
+ }
+ break;
+ case DATA_WIN:
+ if (winInfo->generic.content != (OpaquePtr) NULL)
+ {
+ tuiDelDataWindows (winInfo->detail.dataDisplayInfo.regsContent,
+ winInfo->detail.dataDisplayInfo.regsContentCount);
+ tuiDelDataWindows (winInfo->detail.dataDisplayInfo.dataContent,
+ winInfo->detail.dataDisplayInfo.dataContentCount);
+ }
+ break;
+ default:
+ break;
+ }
+ if (winInfo->generic.handle != (WINDOW *) NULL)
+ {
+ tuiDelwin (winInfo->generic.handle);
+ winInfo->generic.handle = (WINDOW *) NULL;
+ winInfo->generic.isVisible = FALSE;
+ }
+}
+
+
+/*
+ ** freeWindow().
+ */
+void
+freeWindow (TuiWinInfoPtr winInfo)
+{
+ TuiGenWinInfoPtr genericWin;
+
+ switch (winInfo->generic.type)
+ {
+ case SRC_WIN:
+ case DISASSEM_WIN:
+ genericWin = locatorWinInfoPtr ();
+ if (genericWin != (TuiGenWinInfoPtr) NULL)
+ {
+ tuiDelwin (genericWin->handle);
+ genericWin->handle = (WINDOW *) NULL;
+ }
+ freeWinContent (genericWin);
+ if (winInfo->detail.sourceInfo.filename)
+ {
+ xfree (winInfo->detail.sourceInfo.filename);
+ winInfo->detail.sourceInfo.filename = 0;
+ }
+ genericWin = winInfo->detail.sourceInfo.executionInfo;
+ if (genericWin != (TuiGenWinInfoPtr) NULL)
+ {
+ tuiDelwin (genericWin->handle);
+ genericWin->handle = (WINDOW *) NULL;
+ freeWinContent (genericWin);
+ }
+ break;
+ case DATA_WIN:
+ if (winInfo->generic.content != (OpaquePtr) NULL)
+ {
+ freeDataContent (
+ winInfo->detail.dataDisplayInfo.regsContent,
+ winInfo->detail.dataDisplayInfo.regsContentCount);
+ winInfo->detail.dataDisplayInfo.regsContent =
+ (TuiWinContent) NULL;
+ winInfo->detail.dataDisplayInfo.regsContentCount = 0;
+ freeDataContent (
+ winInfo->detail.dataDisplayInfo.dataContent,
+ winInfo->detail.dataDisplayInfo.dataContentCount);
+ winInfo->detail.dataDisplayInfo.dataContent =
+ (TuiWinContent) NULL;
+ winInfo->detail.dataDisplayInfo.dataContentCount = 0;
+ winInfo->detail.dataDisplayInfo.regsDisplayType =
+ TUI_UNDEFINED_REGS;
+ winInfo->detail.dataDisplayInfo.regsColumnCount = 1;
+ winInfo->detail.dataDisplayInfo.displayRegs = FALSE;
+ winInfo->generic.content = (OpaquePtr) NULL;
+ winInfo->generic.contentSize = 0;
+ }
+ break;
+ default:
+ break;
+ }
+ if (winInfo->generic.handle != (WINDOW *) NULL)
+ {
+ tuiDelwin (winInfo->generic.handle);
+ winInfo->generic.handle = (WINDOW *) NULL;
+ freeWinContent (&winInfo->generic);
+ }
+ if (winInfo->generic.title)
+ xfree (winInfo->generic.title);
+ xfree (winInfo);
+}
+
+
+/*
+ ** freeAllSourceWinsContent().
+ */
+void
+freeAllSourceWinsContent (void)
+{
+ int i;
+
+ for (i = 0; i < (sourceWindows ())->count; i++)
+ {
+ TuiWinInfoPtr winInfo = (TuiWinInfoPtr) (sourceWindows ())->list[i];
+
+ if (m_winPtrNotNull (winInfo))
+ {
+ freeWinContent (&(winInfo->generic));
+ freeWinContent (winInfo->detail.sourceInfo.executionInfo);
+ }
+ }
+
+ return;
+} /* freeAllSourceWinsContent */
+
+
+/*
+ ** freeWinContent().
+ */
+void
+freeWinContent (TuiGenWinInfoPtr winInfo)
+{
+ if (winInfo->content != (OpaquePtr) NULL)
+ {
+ freeContent ((TuiWinContent) winInfo->content,
+ winInfo->contentSize,
+ winInfo->type);
+ winInfo->content = (OpaquePtr) NULL;
+ }
+ winInfo->contentSize = 0;
+
+ return;
+} /* freeWinContent */
+
+
+void
+tuiDelDataWindows (TuiWinContent content, int contentSize)
+{
+ int i;
+
+ /*
+ ** Remember that data window content elements are of type TuiGenWinInfoPtr,
+ ** each of which whose single element is a data element.
+ */
+ for (i = 0; i < contentSize; i++)
+ {
+ TuiGenWinInfoPtr genericWin = &content[i]->whichElement.dataWindow;
+
+ if (genericWin != (TuiGenWinInfoPtr) NULL)
+ {
+ tuiDelwin (genericWin->handle);
+ genericWin->handle = (WINDOW *) NULL;
+ genericWin->isVisible = FALSE;
+ }
+ }
+
+ return;
+} /* tuiDelDataWindows */
+
+
+void
+freeDataContent (TuiWinContent content, int contentSize)
+{
+ int i;
+
+ /*
+ ** Remember that data window content elements are of type TuiGenWinInfoPtr,
+ ** each of which whose single element is a data element.
+ */
+ for (i = 0; i < contentSize; i++)
+ {
+ TuiGenWinInfoPtr genericWin = &content[i]->whichElement.dataWindow;
+
+ if (genericWin != (TuiGenWinInfoPtr) NULL)
+ {
+ tuiDelwin (genericWin->handle);
+ genericWin->handle = (WINDOW *) NULL;
+ freeWinContent (genericWin);
+ }
+ }
+ freeContent (content,
+ contentSize,
+ DATA_WIN);
+
+ return;
+} /* freeDataContent */
+
+
+/**********************************
+** LOCAL STATIC FUNCTIONS **
+**********************************/
+
+
+/*
+ ** freeContent().
+ */
+static void
+freeContent (TuiWinContent content, int contentSize, TuiWinType winType)
+{
+ if (content != (TuiWinContent) NULL)
+ {
+ freeContentElements (content, contentSize, winType);
+ tuiFree ((char *) content);
+ }
+
+ return;
+} /* freeContent */
+
+
+/*
+ ** freeContentElements().
+ */
+static void
+freeContentElements (TuiWinContent content, int contentSize, TuiWinType type)
+{
+ if (content != (TuiWinContent) NULL)
+ {
+ int i;
+
+ if (type == SRC_WIN || type == DISASSEM_WIN)
+ {
+ /* free whole source block */
+ if (content[0]->whichElement.source.line != (char *) NULL)
+ tuiFree (content[0]->whichElement.source.line);
+ }
+ else
+ {
+ for (i = 0; i < contentSize; i++)
+ {
+ TuiWinElementPtr element;
+
+ element = content[i];
+ if (element != (TuiWinElementPtr) NULL)
+ {
+ switch (type)
+ {
+ case DATA_WIN:
+ tuiFree ((char *) element);
+ break;
+ case DATA_ITEM_WIN:
+ /*
+ ** Note that data elements are not allocated
+ ** in a single block, but individually, as needed.
+ */
+ if (element->whichElement.data.type != TUI_REGISTER)
+ tuiFree ((char *)
+ element->whichElement.data.name);
+ tuiFree ((char *) element->whichElement.data.value);
+ tuiFree ((char *) element);
+ break;
+ case CMD_WIN:
+ tuiFree ((char *) element->whichElement.command.line);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ }
+ if (type != DATA_WIN && type != DATA_ITEM_WIN)
+ tuiFree ((char *) content[0]); /* free the element block */
+ }
+
+ return;
+} /* freeContentElements */
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
new file mode 100644
index 00000000000..6657fcdbda1
--- /dev/null
+++ b/gdb/tui/tui-data.h
@@ -0,0 +1,386 @@
+/* TUI data manipulation routines.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef TUI_DATA_H
+#define TUI_DATA_H
+
+#if defined (HAVE_NCURSES_H)
+#include <ncurses.h>
+#elif defined (HAVE_CURSES_H)
+#include <curses.h>
+#endif
+
+/* Generic window information */
+ typedef struct _TuiGenWinInfo
+ {
+ WINDOW *handle; /* window handle */
+ TuiWinType type; /* type of window */
+ int width; /* window width */
+ int height; /* window height */
+ TuiPoint origin; /* origin of window */
+ OpaquePtr content; /* content of window */
+ int contentSize; /* Size of content (# of elements) */
+ int contentInUse; /* Can it be used, or is it already used? */
+ int viewportHeight; /* viewport height */
+ int lastVisibleLine; /* index of last visible line */
+ int isVisible; /* whether the window is visible or not */
+ char* title; /* Window title to display. */
+ }
+TuiGenWinInfo, *TuiGenWinInfoPtr;
+
+/* Constant definitions */
+#define DEFAULT_TAB_LEN 8
+#define NO_SRC_STRING "[ No Source Available ]"
+#define NO_DISASSEM_STRING "[ No Assembly Available ]"
+#define NO_REGS_STRING "[ Register Values Unavailable ]"
+#define NO_DATA_STRING "[ No Data Values Displayed ]"
+#define MAX_CONTENT_COUNT 100
+#define SRC_NAME "SRC"
+#define CMD_NAME "CMD"
+#define DATA_NAME "REGS"
+#define DISASSEM_NAME "ASM"
+#define TUI_NULL_STR ""
+#define DEFAULT_HISTORY_COUNT 25
+#define BOX_WINDOW TRUE
+#define DONT_BOX_WINDOW FALSE
+#define HILITE TRUE
+#define NO_HILITE FALSE
+#define WITH_LOCATOR TRUE
+#define NO_LOCATOR FALSE
+#define EMPTY_SOURCE_PROMPT TRUE
+#define NO_EMPTY_SOURCE_PROMPT FALSE
+#define UNDEFINED_ITEM -1
+#define MIN_WIN_HEIGHT 3
+#define MIN_CMD_WIN_HEIGHT 3
+
+/* Strings to display in the TUI status line. */
+#define PROC_PREFIX "In: "
+#define LINE_PREFIX "Line: "
+#define PC_PREFIX "PC: "
+#define SINGLE_KEY "(SingleKey)"
+
+/* Minimum/Maximum length of some fields displayed in the TUI status line. */
+#define MIN_LINE_WIDTH 4 /* Use at least 4 digits for line numbers. */
+#define MIN_PROC_WIDTH 12
+#define MAX_TARGET_WIDTH 10
+#define MAX_PID_WIDTH 14
+
+#define TUI_FLOAT_REGS_NAME "$FREGS"
+#define TUI_FLOAT_REGS_NAME_LOWER "$fregs"
+#define TUI_GENERAL_REGS_NAME "$GREGS"
+#define TUI_GENERAL_REGS_NAME_LOWER "$gregs"
+#define TUI_SPECIAL_REGS_NAME "$SREGS"
+#define TUI_SPECIAL_REGS_NAME_LOWER "$sregs"
+#define TUI_GENERAL_SPECIAL_REGS_NAME "$REGS"
+#define TUI_GENERAL_SPECIAL_REGS_NAME_LOWER "$regs"
+
+/* Scroll direction enum */
+typedef enum tui_scroll_direction
+ {
+ FORWARD_SCROLL,
+ BACKWARD_SCROLL,
+ LEFT_SCROLL,
+ RIGHT_SCROLL
+ }
+TuiScrollDirection, *TuiScrollDirectionPtr;
+
+
+/* General list struct */
+typedef struct _TuiList
+ {
+ OpaqueList list;
+ int count;
+ }
+TuiList, *TuiListPtr;
+
+
+/* The kinds of layouts available */
+typedef enum tui_layout_type
+ {
+ SRC_COMMAND,
+ DISASSEM_COMMAND,
+ SRC_DISASSEM_COMMAND,
+ SRC_DATA_COMMAND,
+ DISASSEM_DATA_COMMAND,
+ UNDEFINED_LAYOUT
+ }
+TuiLayoutType, *TuiLayoutTypePtr;
+
+/* Basic data types that can be displayed in the data window. */
+typedef enum _TuiDataType
+ {
+ TUI_REGISTER,
+ TUI_SCALAR,
+ TUI_COMPLEX,
+ TUI_STRUCT
+ }
+TuiDataType, TuiDataTypePtr;
+
+/* Types of register displays */
+typedef enum tui_register_display_type
+ {
+ TUI_UNDEFINED_REGS,
+ TUI_GENERAL_REGS,
+ TUI_SFLOAT_REGS,
+ TUI_DFLOAT_REGS,
+ TUI_SPECIAL_REGS,
+ TUI_GENERAL_AND_SPECIAL_REGS
+ }
+TuiRegisterDisplayType, *TuiRegisterDisplayTypePtr;
+
+/* Structure describing source line or line address */
+typedef union _TuiLineOrAddress
+ {
+ int lineNo;
+ CORE_ADDR addr;
+ }
+TuiLineOrAddress, *TuiLineOrAddressPtr;
+
+/* Current Layout definition */
+typedef struct _TuiLayoutDef
+ {
+ TuiWinType displayMode;
+ int split;
+ TuiRegisterDisplayType regsDisplayType;
+ TuiRegisterDisplayType floatRegsDisplayType;
+ }
+TuiLayoutDef, *TuiLayoutDefPtr;
+
+/* Elements in the Source/Disassembly Window */
+typedef struct _TuiSourceElement
+ {
+ char *line;
+ TuiLineOrAddress lineOrAddr;
+ int isExecPoint;
+ int hasBreak;
+ }
+TuiSourceElement, *TuiSourceElementPtr;
+
+
+/* Elements in the data display window content */
+typedef struct _TuiDataElement
+ {
+ const char *name;
+ int itemNo; /* the register number, or data display number */
+ TuiDataType type;
+ Opaque value;
+ int highlight;
+ }
+TuiDataElement, *TuiDataElementPtr;
+
+
+/* Elements in the command window content */
+typedef struct _TuiCommandElement
+ {
+ char *line;
+ }
+TuiCommandElement, *TuiCommandElementPtr;
+
+
+#define MAX_LOCATOR_ELEMENT_LEN 100
+
+/* Elements in the locator window content */
+typedef struct _TuiLocatorElement
+ {
+ char fileName[MAX_LOCATOR_ELEMENT_LEN];
+ char procName[MAX_LOCATOR_ELEMENT_LEN];
+ int lineNo;
+ CORE_ADDR addr;
+ }
+TuiLocatorElement, *TuiLocatorElementPtr;
+
+/* Flags to tell what kind of breakpoint is at current line. */
+#define TUI_BP_ENABLED 0x01
+#define TUI_BP_DISABLED 0x02
+#define TUI_BP_HIT 0x04
+#define TUI_BP_CONDITIONAL 0x08
+#define TUI_BP_HARDWARE 0x10
+
+/* Position of breakpoint markers in the exec info string. */
+#define TUI_BP_HIT_POS 0
+#define TUI_BP_BREAK_POS 1
+#define TUI_EXEC_POS 2
+#define TUI_EXECINFO_SIZE 4
+
+typedef char TuiExecInfoContent[TUI_EXECINFO_SIZE];
+
+/* An content element in a window */
+typedef union
+ {
+ TuiSourceElement source; /* the source elements */
+ TuiGenWinInfo dataWindow; /* data display elements */
+ TuiDataElement data; /* elements of dataWindow */
+ TuiCommandElement command; /* command elements */
+ TuiLocatorElement locator; /* locator elements */
+ TuiExecInfoContent simpleString; /* simple char based elements */
+ }
+TuiWhichElement, *TuiWhichElementPtr;
+
+typedef struct _TuiWinElement
+ {
+ int highlight;
+ TuiWhichElement whichElement;
+ }
+TuiWinElement, *TuiWinElementPtr;
+
+
+/* This describes the content of the window. */
+typedef TuiWinElementPtr *TuiWinContent;
+
+
+/* This struct defines the specific information about a data display window */
+typedef struct _TuiDataInfo
+ {
+ TuiWinContent dataContent; /* start of data display content */
+ int dataContentCount;
+ TuiWinContent regsContent; /* start of regs display content */
+ int regsContentCount;
+ TuiRegisterDisplayType regsDisplayType;
+ int regsColumnCount;
+ int displayRegs; /* Should regs be displayed at all? */
+ }
+TuiDataInfo, *TuiDataInfoPtr;
+
+
+typedef struct _TuiSourceInfo
+ {
+ int hasLocator; /* Does locator belongs to this window? */
+ TuiGenWinInfoPtr executionInfo; /* execution information window */
+ int horizontalOffset; /* used for horizontal scroll */
+ TuiLineOrAddress startLineOrAddr;
+ char* filename;
+ }
+TuiSourceInfo, *TuiSourceInfoPtr;
+
+
+typedef struct _TuiCommandInfo
+ {
+ int curLine; /* The current line position */
+ int curch; /* The current cursor position */
+ int start_line;
+ }
+TuiCommandInfo, *TuiCommandInfoPtr;
+
+
+/* This defines information about each logical window */
+typedef struct _TuiWinInfo
+ {
+ TuiGenWinInfo generic; /* general window information */
+ union
+ {
+ TuiSourceInfo sourceInfo;
+ TuiDataInfo dataDisplayInfo;
+ TuiCommandInfo commandInfo;
+ Opaque opaque;
+ }
+ detail;
+ int canHighlight; /* Can this window ever be highlighted? */
+ int isHighlighted; /* Is this window highlighted? */
+ }
+TuiWinInfo, *TuiWinInfoPtr;
+
+/* MACROS (prefixed with m_) */
+
+/* Testing macros */
+#define m_genWinPtrIsNull(winInfo) \
+ ((winInfo) == (TuiGenWinInfoPtr)NULL)
+#define m_genWinPtrNotNull(winInfo) \
+ ((winInfo) != (TuiGenWinInfoPtr)NULL)
+#define m_winPtrIsNull(winInfo) \
+ ((winInfo) == (TuiWinInfoPtr)NULL)
+#define m_winPtrNotNull(winInfo) \
+ ((winInfo) != (TuiWinInfoPtr)NULL)
+
+#define m_winIsSourceType(type) \
+ (type == SRC_WIN || type == DISASSEM_WIN)
+#define m_winIsAuxillary(winType) \
+ (winType > MAX_MAJOR_WINDOWS)
+#define m_hasLocator(winInfo) \
+ ( ((winInfo) != (TuiWinInfoPtr)NULL) ? \
+ (winInfo->detail.sourceInfo.hasLocator) : \
+ FALSE )
+
+#define m_setWinHighlightOn(winInfo) \
+ if ((winInfo) != (TuiWinInfoPtr)NULL) \
+ (winInfo)->isHighlighted = TRUE
+#define m_setWinHighlightOff(winInfo) \
+ if ((winInfo) != (TuiWinInfoPtr)NULL) \
+ (winInfo)->isHighlighted = FALSE
+
+
+/* Global Data */
+extern TuiWinInfoPtr winList[MAX_MAJOR_WINDOWS];
+
+/* Macros */
+#define srcWin winList[SRC_WIN]
+#define disassemWin winList[DISASSEM_WIN]
+#define dataWin winList[DATA_WIN]
+#define cmdWin winList[CMD_WIN]
+
+/* Data Manipulation Functions */
+extern void initializeStaticData (void);
+extern TuiGenWinInfoPtr allocGenericWinInfo (void);
+extern TuiWinInfoPtr allocWinInfo (TuiWinType);
+extern void initGenericPart (TuiGenWinInfoPtr);
+extern void initWinInfo (TuiWinInfoPtr);
+extern TuiWinContent allocContent (int, TuiWinType);
+extern int addContentElements (TuiGenWinInfoPtr, int);
+extern void initContentElement (TuiWinElementPtr, TuiWinType);
+extern void freeWindow (TuiWinInfoPtr);
+extern void freeWinContent (TuiGenWinInfoPtr);
+extern void freeDataContent (TuiWinContent, int);
+extern void freeAllSourceWinsContent (void);
+extern void tuiDelWindow (TuiWinInfoPtr);
+extern void tuiDelDataWindows (TuiWinContent, int);
+extern TuiWinInfoPtr partialWinByName (char *);
+extern char *winName (TuiGenWinInfoPtr);
+extern TuiLayoutType currentLayout (void);
+extern void setCurrentLayoutTo (TuiLayoutType);
+extern int termHeight (void);
+extern void setTermHeightTo (int);
+extern int termWidth (void);
+extern void setTermWidthTo (int);
+extern void setGenWinOrigin (TuiGenWinInfoPtr, int, int);
+extern TuiGenWinInfoPtr locatorWinInfoPtr (void);
+extern TuiGenWinInfoPtr sourceExecInfoWinPtr (void);
+extern TuiGenWinInfoPtr disassemExecInfoWinPtr (void);
+extern TuiListPtr sourceWindows (void);
+extern void clearSourceWindows (void);
+extern void clearSourceWindowsDetail (void);
+extern void clearWinDetail (TuiWinInfoPtr winInfo);
+extern void tuiAddToSourceWindows (TuiWinInfoPtr);
+extern int tuiDefaultTabLen (void);
+extern void tuiSetDefaultTabLen (int);
+extern TuiWinInfoPtr tuiWinWithFocus (void);
+extern void tuiSetWinWithFocus (TuiWinInfoPtr);
+extern TuiLayoutDefPtr tuiLayoutDef (void);
+extern int tuiWinResized (void);
+extern void tuiSetWinResizedTo (int);
+
+extern TuiWinInfoPtr tuiNextWin (TuiWinInfoPtr);
+extern TuiWinInfoPtr tuiPrevWin (TuiWinInfoPtr);
+
+extern void addToSourceWindows (TuiWinInfoPtr winInfo);
+
+#endif /* TUI_DATA_H */
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
new file mode 100644
index 00000000000..493c00ded68
--- /dev/null
+++ b/gdb/tui/tui-disasm.c
@@ -0,0 +1,403 @@
+/* Disassembly display.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "symtab.h"
+#include "breakpoint.h"
+#include "frame.h"
+#include "value.h"
+#include "source.h"
+#include "disasm.h"
+
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-win.h"
+#include "tui/tui-layout.h"
+#include "tui/tui-winsource.h"
+#include "tui/tui-stack.h"
+#include "tui/tui-file.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+struct tui_asm_line
+{
+ CORE_ADDR addr;
+ char* addr_string;
+ char* insn;
+};
+
+/* Function to set the disassembly window's content.
+ Disassemble count lines starting at pc.
+ Return address of the count'th instruction after pc. */
+static CORE_ADDR
+tui_disassemble (struct tui_asm_line* lines, CORE_ADDR pc, int count)
+{
+ struct ui_file *gdb_dis_out;
+
+ /* now init the ui_file structure */
+ gdb_dis_out = tui_sfileopen (256);
+
+ /* Now construct each line */
+ for (; count > 0; count--, lines++)
+ {
+ if (lines->addr_string)
+ xfree (lines->addr_string);
+ if (lines->insn)
+ xfree (lines->insn);
+
+ print_address (pc, gdb_dis_out);
+ lines->addr = pc;
+ lines->addr_string = xstrdup (tui_file_get_strbuf (gdb_dis_out));
+
+ ui_file_rewind (gdb_dis_out);
+
+ pc = pc + gdb_print_insn (pc, gdb_dis_out);
+
+ lines->insn = xstrdup (tui_file_get_strbuf (gdb_dis_out));
+
+ /* reset the buffer to empty */
+ ui_file_rewind (gdb_dis_out);
+ }
+ ui_file_delete (gdb_dis_out);
+ return pc;
+}
+
+/* Find the disassembly address that corresponds to FROM lines
+ above or below the PC. Variable sized instructions are taken
+ into account by the algorithm. */
+static CORE_ADDR
+tui_find_disassembly_address (CORE_ADDR pc, int from)
+{
+ register CORE_ADDR newLow;
+ int maxLines;
+ int i;
+ struct tui_asm_line* lines;
+
+ maxLines = (from > 0) ? from : - from;
+ if (maxLines <= 1)
+ return pc;
+
+ lines = (struct tui_asm_line*) alloca (sizeof (struct tui_asm_line)
+ * maxLines);
+ memset (lines, 0, sizeof (struct tui_asm_line) * maxLines);
+
+ newLow = pc;
+ if (from > 0)
+ {
+ tui_disassemble (lines, pc, maxLines);
+ newLow = lines[maxLines - 1].addr;
+ }
+ else
+ {
+ CORE_ADDR last_addr;
+ int pos;
+ struct minimal_symbol* msymbol;
+
+ /* Find backward an address which is a symbol
+ and for which disassembling from that address will fill
+ completely the window. */
+ pos = maxLines - 1;
+ do {
+ newLow -= 1 * maxLines;
+ msymbol = lookup_minimal_symbol_by_pc_section (newLow, 0);
+
+ if (msymbol)
+ newLow = SYMBOL_VALUE_ADDRESS (msymbol);
+ else
+ newLow += 1 * maxLines;
+
+ tui_disassemble (lines, newLow, maxLines);
+ last_addr = lines[pos].addr;
+ } while (last_addr > pc && msymbol);
+
+ /* Scan forward disassembling one instruction at a time
+ until the last visible instruction of the window
+ matches the pc. We keep the disassembled instructions
+ in the 'lines' window and shift it downward (increasing
+ its addresses). */
+ if (last_addr < pc)
+ do
+ {
+ CORE_ADDR next_addr;
+
+ pos++;
+ if (pos >= maxLines)
+ pos = 0;
+
+ next_addr = tui_disassemble (&lines[pos], last_addr, 1);
+
+ /* If there are some problems while disassembling exit. */
+ if (next_addr <= last_addr)
+ break;
+ last_addr = next_addr;
+ } while (last_addr <= pc);
+ pos++;
+ if (pos >= maxLines)
+ pos = 0;
+ newLow = lines[pos].addr;
+ }
+ for (i = 0; i < maxLines; i++)
+ {
+ xfree (lines[i].addr_string);
+ xfree (lines[i].insn);
+ }
+ return newLow;
+}
+
+/* Function to set the disassembly window's content. */
+enum tui_status
+tui_set_disassem_content (CORE_ADDR pc)
+{
+ TuiStatus ret = TUI_FAILURE;
+ register int i;
+ register int offset = disassemWin->detail.sourceInfo.horizontalOffset;
+ register int lineWidth, maxLines;
+ CORE_ADDR cur_pc;
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+ int tab_len = tuiDefaultTabLen ();
+ struct tui_asm_line* lines;
+ int insn_pos;
+ int addr_size, max_size;
+ char* line;
+
+ if (pc == 0)
+ return TUI_FAILURE;
+
+ ret = tuiAllocSourceBuffer (disassemWin);
+ if (ret != TUI_SUCCESS)
+ return ret;
+
+ disassemWin->detail.sourceInfo.startLineOrAddr.addr = pc;
+ cur_pc = (CORE_ADDR)
+ (((TuiWinElementPtr) locator->content[0])->whichElement.locator.addr);
+
+ maxLines = disassemWin->generic.height - 2; /* account for hilite */
+
+ /* Get temporary table that will hold all strings (addr & insn). */
+ lines = (struct tui_asm_line*) alloca (sizeof (struct tui_asm_line)
+ * maxLines);
+ memset (lines, 0, sizeof (struct tui_asm_line) * maxLines);
+
+ lineWidth = disassemWin->generic.width - 1;
+
+ tui_disassemble (lines, pc, maxLines);
+
+ /* See what is the maximum length of an address and of a line. */
+ addr_size = 0;
+ max_size = 0;
+ for (i = 0; i < maxLines; i++)
+ {
+ size_t len = strlen (lines[i].addr_string);
+ if (len > addr_size)
+ addr_size = len;
+
+ len = strlen (lines[i].insn) + tab_len;
+ if (len > max_size)
+ max_size = len;
+ }
+ max_size += addr_size + tab_len;
+
+ /* Allocate memory to create each line. */
+ line = (char*) alloca (max_size);
+ insn_pos = (1 + (addr_size / tab_len)) * tab_len;
+
+ /* Now construct each line */
+ for (i = 0; i < maxLines; i++)
+ {
+ TuiWinElementPtr element;
+ TuiSourceElement* src;
+ int curLen;
+
+ element = (TuiWinElementPtr) disassemWin->generic.content[i];
+ src = &element->whichElement.source;
+ strcpy (line, lines[i].addr_string);
+ curLen = strlen (line);
+
+ /* Add spaces to make the instructions start on the same column */
+ while (curLen < insn_pos)
+ {
+ strcat (line, " ");
+ curLen++;
+ }
+
+ strcat (line, lines[i].insn);
+
+ /* Now copy the line taking the offset into account */
+ if (strlen (line) > offset)
+ strcpy (src->line, &line[offset]);
+ else
+ src->line[0] = '\0';
+
+ src->lineOrAddr.addr = lines[i].addr;
+ src->isExecPoint = lines[i].addr == cur_pc;
+
+ /* See whether there is a breakpoint installed. */
+ src->hasBreak = (!src->isExecPoint
+ && breakpoint_here_p (pc) != no_breakpoint_here);
+
+ xfree (lines[i].addr_string);
+ xfree (lines[i].insn);
+ }
+ disassemWin->generic.contentSize = i;
+ return TUI_SUCCESS;
+}
+
+
+/* Function to display the disassembly window with disassembled code. */
+void
+tui_show_disassem (CORE_ADDR startAddr)
+{
+ struct symtab *s = find_pc_symtab (startAddr);
+ TuiWinInfoPtr winWithFocus = tuiWinWithFocus ();
+ TuiLineOrAddress val;
+
+ val.addr = startAddr;
+ tui_add_win_to_layout (DISASSEM_WIN);
+ tuiUpdateSourceWindow (disassemWin, s, val, FALSE);
+ /*
+ ** if the focus was in the src win, put it in the asm win, if the
+ ** source view isn't split
+ */
+ if (currentLayout () != SRC_DISASSEM_COMMAND && winWithFocus == srcWin)
+ tuiSetWinFocusTo (disassemWin);
+
+ return;
+}
+
+
+/* Function to display the disassembly window. */
+void
+tui_show_disassem_and_update_source (CORE_ADDR startAddr)
+{
+ struct symtab_and_line sal;
+
+ tui_show_disassem (startAddr);
+ if (currentLayout () == SRC_DISASSEM_COMMAND)
+ {
+ TuiLineOrAddress val;
+
+ /*
+ ** Update what is in the source window if it is displayed too,
+ ** note that it follows what is in the disassembly window and visa-versa
+ */
+ sal = find_pc_line (startAddr, 0);
+ val.lineNo = sal.line;
+ tuiUpdateSourceWindow (srcWin, sal.symtab, val, TRUE);
+ if (sal.symtab)
+ {
+ set_current_source_symtab_and_line (&sal);
+ tuiUpdateLocatorFilename (sal.symtab->filename);
+ }
+ else
+ tuiUpdateLocatorFilename ("?");
+ }
+
+ return;
+}
+
+CORE_ADDR
+tui_get_begin_asm_address (void)
+{
+ TuiGenWinInfoPtr locator;
+ TuiLocatorElementPtr element;
+ CORE_ADDR addr;
+
+ locator = locatorWinInfoPtr ();
+ element = &((TuiWinElementPtr) locator->content[0])->whichElement.locator;
+
+ if (element->addr == 0)
+ {
+ struct minimal_symbol *main_symbol;
+
+ /* Find address of the start of program.
+ Note: this should be language specific. */
+ main_symbol = lookup_minimal_symbol ("main", NULL, NULL);
+ if (main_symbol == 0)
+ main_symbol = lookup_minimal_symbol ("MAIN", NULL, NULL);
+ if (main_symbol == 0)
+ main_symbol = lookup_minimal_symbol ("_start", NULL, NULL);
+ if (main_symbol)
+ addr = SYMBOL_VALUE_ADDRESS (main_symbol);
+ else
+ addr = 0;
+ }
+ else /* the target is executing */
+ addr = element->addr;
+
+ return addr;
+}
+
+/* Determine what the low address will be to display in the TUI's
+ disassembly window. This may or may not be the same as the
+ low address input. */
+CORE_ADDR
+tuiGetLowDisassemblyAddress (CORE_ADDR low, CORE_ADDR pc)
+{
+ int pos;
+
+ /* Determine where to start the disassembly so that the pc is about in the
+ middle of the viewport. */
+ pos = tui_default_win_viewport_height (DISASSEM_WIN, DISASSEM_COMMAND) / 2;
+ pc = tui_find_disassembly_address (pc, -pos);
+
+ if (pc < low)
+ pc = low;
+ return pc;
+}
+
+/* Scroll the disassembly forward or backward vertically. */
+void
+tui_vertical_disassem_scroll (enum tui_scroll_direction scrollDirection,
+ int numToScroll)
+{
+ if (disassemWin->generic.content != (OpaquePtr) NULL)
+ {
+ CORE_ADDR pc;
+ TuiWinContent content;
+ struct symtab *s;
+ TuiLineOrAddress val;
+ int maxLines, dir;
+ struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+
+ content = (TuiWinContent) disassemWin->generic.content;
+ if (cursal.symtab == (struct symtab *) NULL)
+ s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
+ else
+ s = cursal.symtab;
+
+ /* account for hilite */
+ maxLines = disassemWin->generic.height - 2;
+ pc = content[0]->whichElement.source.lineOrAddr.addr;
+ dir = (scrollDirection == FORWARD_SCROLL) ? maxLines : - maxLines;
+
+ val.addr = tui_find_disassembly_address (pc, dir);
+ tuiUpdateSourceWindowAsIs (disassemWin, s, val, FALSE);
+ }
+}
diff --git a/gdb/tui/tui-disasm.h b/gdb/tui/tui-disasm.h
new file mode 100644
index 00000000000..e72aba1f3f1
--- /dev/null
+++ b/gdb/tui/tui-disasm.h
@@ -0,0 +1,37 @@
+/* Disassembly display.
+
+ Copyright 1998, 1999, 2000, 2001, 2004 Free Software Foundation,
+ Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef TUI_DISASM_H
+#define TUI_DISASM_H
+
+#include "tui/tui.h" /* For enum tui_status. */
+#include "tui/tui-data.h" /* For enum tui_scroll_direction. */
+
+extern enum tui_status tui_set_disassem_content (CORE_ADDR);
+extern void tui_show_disassem (CORE_ADDR);
+extern void tui_show_disassem_and_update_source (CORE_ADDR);
+extern void tui_vertical_disassem_scroll (enum tui_scroll_direction, int);
+extern CORE_ADDR tui_get_begin_asm_address (void);
+
+#endif
diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c
new file mode 100644
index 00000000000..61b1f93dcbd
--- /dev/null
+++ b/gdb/tui/tui-io.c
@@ -0,0 +1,722 @@
+/* TUI support I/O functions.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "terminal.h"
+#include "target.h"
+#include "event-loop.h"
+#include "event-top.h"
+#include "command.h"
+#include "top.h"
+#include "readline/readline.h"
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-io.h"
+#include "tui/tui-command.h"
+#include "tui/tui-win.h"
+#include "tui/tui-wingeneral.h"
+#include "tui/tui-file.h"
+#include "ui-out.h"
+#include "cli-out.h"
+#include <fcntl.h>
+#include <signal.h>
+#include <stdio.h>
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+int
+key_is_start_sequence (int ch)
+{
+ return (ch == 27);
+}
+
+int
+key_is_end_sequence (int ch)
+{
+ return (ch == 126);
+}
+
+int
+key_is_backspace (int ch)
+{
+ return (ch == 8);
+}
+
+int
+key_is_command_char (int ch)
+{
+ return ((ch == KEY_NPAGE) || (ch == KEY_PPAGE)
+ || (ch == KEY_LEFT) || (ch == KEY_RIGHT)
+ || (ch == KEY_UP) || (ch == KEY_DOWN)
+ || (ch == KEY_SF) || (ch == KEY_SR)
+ || (ch == (int)'\f') || key_is_start_sequence (ch));
+}
+
+/* Use definition from readline 4.3. */
+#undef CTRL_CHAR
+#define CTRL_CHAR(c) ((c) < control_character_threshold && (((c) & 0x80) == 0))
+
+/* This file controls the IO interactions between gdb and curses.
+ When the TUI is enabled, gdb has two modes a curses and a standard
+ mode.
+
+ In curses mode, the gdb outputs are made in a curses command window.
+ For this, the gdb_stdout and gdb_stderr are redirected to the specific
+ ui_file implemented by TUI. The output is handled by tui_puts().
+ The input is also controlled by curses with tui_getc(). The readline
+ library uses this function to get its input. Several readline hooks
+ are installed to redirect readline output to the TUI (see also the
+ note below).
+
+ In normal mode, the gdb outputs are restored to their origin, that
+ is as if TUI is not used. Readline also uses its original getc()
+ function with stdin.
+
+ Note SCz/2001-07-21: the current readline is not clean in its management of
+ the output. Even if we install a redisplay handler, it sometimes writes on
+ a stdout file. It is important to redirect every output produced by
+ readline, otherwise the curses window will be garbled. This is implemented
+ with a pipe that TUI reads and readline writes to. A gdb input handler
+ is created so that reading the pipe is handled automatically.
+ This will probably not work on non-Unix platforms. The best fix is
+ to make readline clean enougth so that is never write on stdout.
+
+ Note SCz/2002-09-01: we now use more readline hooks and it seems that
+ with them we don't need the pipe anymore (verified by creating the pipe
+ and closing its end so that write causes a SIGPIPE). The old pipe code
+ is still there and can be conditionally removed by
+ #undef TUI_USE_PIPE_FOR_READLINE. */
+
+/* For gdb 5.3, prefer to continue the pipe hack as a backup wheel. */
+#define TUI_USE_PIPE_FOR_READLINE
+/*#undef TUI_USE_PIPE_FOR_READLINE*/
+
+/* TUI output files. */
+static struct ui_file *tui_stdout;
+static struct ui_file *tui_stderr;
+struct ui_out *tui_out;
+
+/* GDB output files in non-curses mode. */
+static struct ui_file *tui_old_stdout;
+static struct ui_file *tui_old_stderr;
+struct ui_out *tui_old_uiout;
+
+/* Readline previous hooks. */
+static Function *tui_old_rl_getc_function;
+static VFunction *tui_old_rl_redisplay_function;
+static VFunction *tui_old_rl_prep_terminal;
+static VFunction *tui_old_rl_deprep_terminal;
+static int tui_old_readline_echoing_p;
+
+/* Readline output stream.
+ Should be removed when readline is clean. */
+static FILE *tui_rl_outstream;
+static FILE *tui_old_rl_outstream;
+#ifdef TUI_USE_PIPE_FOR_READLINE
+static int tui_readline_pipe[2];
+#endif
+
+/* The last gdb prompt that was registered in readline.
+ This may be the main gdb prompt or a secondary prompt. */
+static char *tui_rl_saved_prompt;
+
+static unsigned int _tuiHandleResizeDuringIO (unsigned int);
+
+static void
+tui_putc (char c)
+{
+ char buf[2];
+
+ buf[0] = c;
+ buf[1] = 0;
+ tui_puts (buf);
+}
+
+/* Print the string in the curses command window. */
+void
+tui_puts (const char *string)
+{
+ static int tui_skip_line = -1;
+ char c;
+ WINDOW *w;
+
+ w = cmdWin->generic.handle;
+ while ((c = *string++) != 0)
+ {
+ /* Catch annotation and discard them. We need two \032 and
+ discard until a \n is seen. */
+ if (c == '\032')
+ {
+ tui_skip_line++;
+ }
+ else if (tui_skip_line != 1)
+ {
+ tui_skip_line = -1;
+ waddch (w, c);
+ }
+ else if (c == '\n')
+ tui_skip_line = -1;
+ }
+ getyx (w, cmdWin->detail.commandInfo.curLine,
+ cmdWin->detail.commandInfo.curch);
+ cmdWin->detail.commandInfo.start_line = cmdWin->detail.commandInfo.curLine;
+
+ /* We could defer the following. */
+ wrefresh (w);
+ fflush (stdout);
+}
+
+/* Readline callback.
+ Redisplay the command line with its prompt after readline has
+ changed the edited text. */
+void
+tui_redisplay_readline (void)
+{
+ int prev_col;
+ int height;
+ int col, line;
+ int c_pos;
+ int c_line;
+ int in;
+ WINDOW *w;
+ char *prompt;
+ int start_line;
+
+ /* Detect when we temporarily left SingleKey and now the readline
+ edit buffer is empty, automatically restore the SingleKey mode. */
+ if (tui_current_key_mode == tui_one_command_mode && rl_end == 0)
+ tui_set_key_mode (tui_single_key_mode);
+
+ if (tui_current_key_mode == tui_single_key_mode)
+ prompt = "";
+ else
+ prompt = tui_rl_saved_prompt;
+
+ c_pos = -1;
+ c_line = -1;
+ w = cmdWin->generic.handle;
+ start_line = cmdWin->detail.commandInfo.start_line;
+ wmove (w, start_line, 0);
+ prev_col = 0;
+ height = 1;
+ for (in = 0; prompt && prompt[in]; in++)
+ {
+ waddch (w, prompt[in]);
+ getyx (w, line, col);
+ if (col < prev_col)
+ height++;
+ prev_col = col;
+ }
+ for (in = 0; in < rl_end; in++)
+ {
+ unsigned char c;
+
+ c = (unsigned char) rl_line_buffer[in];
+ if (in == rl_point)
+ {
+ getyx (w, c_line, c_pos);
+ }
+
+ if (CTRL_CHAR (c) || c == RUBOUT)
+ {
+ waddch (w, '^');
+ waddch (w, CTRL_CHAR (c) ? UNCTRL (c) : '?');
+ }
+ else
+ {
+ waddch (w, c);
+ }
+ if (c == '\n')
+ {
+ getyx (w, cmdWin->detail.commandInfo.start_line,
+ cmdWin->detail.commandInfo.curch);
+ }
+ getyx (w, line, col);
+ if (col < prev_col)
+ height++;
+ prev_col = col;
+ }
+ wclrtobot (w);
+ getyx (w, cmdWin->detail.commandInfo.start_line,
+ cmdWin->detail.commandInfo.curch);
+ if (c_line >= 0)
+ {
+ wmove (w, c_line, c_pos);
+ cmdWin->detail.commandInfo.curLine = c_line;
+ cmdWin->detail.commandInfo.curch = c_pos;
+ }
+ cmdWin->detail.commandInfo.start_line -= height - 1;
+
+ wrefresh (w);
+ fflush(stdout);
+}
+
+/* Readline callback to prepare the terminal. It is called once
+ each time we enter readline. Terminal is already setup in curses mode. */
+static void
+tui_prep_terminal (int notused1)
+{
+ /* Save the prompt registered in readline to correctly display it.
+ (we can't use gdb_prompt() due to secondary prompts and can't use
+ rl_prompt because it points to an alloca buffer). */
+ xfree (tui_rl_saved_prompt);
+ tui_rl_saved_prompt = xstrdup (rl_prompt);
+}
+
+/* Readline callback to restore the terminal. It is called once
+ each time we leave readline. There is nothing to do in curses mode. */
+static void
+tui_deprep_terminal (void)
+{
+}
+
+#ifdef TUI_USE_PIPE_FOR_READLINE
+/* Read readline output pipe and feed the command window with it.
+ Should be removed when readline is clean. */
+static void
+tui_readline_output (int code, gdb_client_data data)
+{
+ int size;
+ char buf[256];
+
+ size = read (tui_readline_pipe[0], buf, sizeof (buf) - 1);
+ if (size > 0 && tui_active)
+ {
+ buf[size] = 0;
+ tui_puts (buf);
+ }
+}
+#endif
+
+/* Return the portion of PATHNAME that should be output when listing
+ possible completions. If we are hacking filename completion, we
+ are only interested in the basename, the portion following the
+ final slash. Otherwise, we return what we were passed.
+
+ Comes from readline/complete.c */
+static char *
+printable_part (pathname)
+ char *pathname;
+{
+ char *temp;
+
+ temp = rl_filename_completion_desired ? strrchr (pathname, '/') : (char *)NULL;
+#if defined (__MSDOS__)
+ if (rl_filename_completion_desired && temp == 0 && isalpha (pathname[0]) && pathname[1] == ':')
+ temp = pathname + 1;
+#endif
+ return (temp ? ++temp : pathname);
+}
+
+/* Output TO_PRINT to rl_outstream. If VISIBLE_STATS is defined and we
+ are using it, check for and output a single character for `special'
+ filenames. Return the number of characters we output. */
+
+#define PUTX(c) \
+ do { \
+ if (CTRL_CHAR (c)) \
+ { \
+ tui_puts ("^"); \
+ tui_putc (UNCTRL (c)); \
+ printed_len += 2; \
+ } \
+ else if (c == RUBOUT) \
+ { \
+ tui_puts ("^?"); \
+ printed_len += 2; \
+ } \
+ else \
+ { \
+ tui_putc (c); \
+ printed_len++; \
+ } \
+ } while (0)
+
+static int
+print_filename (to_print, full_pathname)
+ char *to_print, *full_pathname;
+{
+ int printed_len = 0;
+ char *s;
+
+ for (s = to_print; *s; s++)
+ {
+ PUTX (*s);
+ }
+ return printed_len;
+}
+
+/* The user must press "y" or "n". Non-zero return means "y" pressed.
+ Comes from readline/complete.c */
+static int
+get_y_or_n ()
+{
+ extern int _rl_abort_internal ();
+ int c;
+
+ for (;;)
+ {
+ c = rl_read_key ();
+ if (c == 'y' || c == 'Y' || c == ' ')
+ return (1);
+ if (c == 'n' || c == 'N' || c == RUBOUT)
+ return (0);
+ if (c == ABORT_CHAR)
+ _rl_abort_internal ();
+ beep ();
+ }
+}
+
+/* A convenience function for displaying a list of strings in
+ columnar format on readline's output stream. MATCHES is the list
+ of strings, in argv format, LEN is the number of strings in MATCHES,
+ and MAX is the length of the longest string in MATCHES.
+
+ Comes from readline/complete.c and modified to write in
+ the TUI command window using tui_putc/tui_puts. */
+static void
+tui_rl_display_match_list (matches, len, max)
+ char **matches;
+ int len, max;
+{
+ typedef int QSFUNC (const void *, const void *);
+ extern int _rl_qsort_string_compare (const void*, const void*);
+ extern int _rl_print_completions_horizontally;
+
+ int count, limit, printed_len;
+ int i, j, k, l;
+ char *temp;
+
+ /* Screen dimension correspond to the TUI command window. */
+ int screenwidth = cmdWin->generic.width;
+
+ /* If there are many items, then ask the user if she really wants to
+ see them all. */
+ if (len >= rl_completion_query_items)
+ {
+ char msg[256];
+
+ sprintf (msg, "\nDisplay all %d possibilities? (y or n)", len);
+ tui_puts (msg);
+ if (get_y_or_n () == 0)
+ {
+ tui_puts ("\n");
+ return;
+ }
+ }
+
+ /* How many items of MAX length can we fit in the screen window? */
+ max += 2;
+ limit = screenwidth / max;
+ if (limit != 1 && (limit * max == screenwidth))
+ limit--;
+
+ /* Avoid a possible floating exception. If max > screenwidth,
+ limit will be 0 and a divide-by-zero fault will result. */
+ if (limit == 0)
+ limit = 1;
+
+ /* How many iterations of the printing loop? */
+ count = (len + (limit - 1)) / limit;
+
+ /* Watch out for special case. If LEN is less than LIMIT, then
+ just do the inner printing loop.
+ 0 < len <= limit implies count = 1. */
+
+ /* Sort the items if they are not already sorted. */
+ if (rl_ignore_completion_duplicates == 0)
+ qsort (matches + 1, len, sizeof (char *),
+ (QSFUNC *)_rl_qsort_string_compare);
+
+ tui_putc ('\n');
+
+ if (_rl_print_completions_horizontally == 0)
+ {
+ /* Print the sorted items, up-and-down alphabetically, like ls. */
+ for (i = 1; i <= count; i++)
+ {
+ for (j = 0, l = i; j < limit; j++)
+ {
+ if (l > len || matches[l] == 0)
+ break;
+ else
+ {
+ temp = printable_part (matches[l]);
+ printed_len = print_filename (temp, matches[l]);
+
+ if (j + 1 < limit)
+ for (k = 0; k < max - printed_len; k++)
+ tui_putc (' ');
+ }
+ l += count;
+ }
+ tui_putc ('\n');
+ }
+ }
+ else
+ {
+ /* Print the sorted items, across alphabetically, like ls -x. */
+ for (i = 1; matches[i]; i++)
+ {
+ temp = printable_part (matches[i]);
+ printed_len = print_filename (temp, matches[i]);
+ /* Have we reached the end of this line? */
+ if (matches[i+1])
+ {
+ if (i && (limit > 1) && (i % limit) == 0)
+ tui_putc ('\n');
+ else
+ for (k = 0; k < max - printed_len; k++)
+ tui_putc (' ');
+ }
+ }
+ tui_putc ('\n');
+ }
+}
+
+/* Setup the IO for curses or non-curses mode.
+ - In non-curses mode, readline and gdb use the standard input and
+ standard output/error directly.
+ - In curses mode, the standard output/error is controlled by TUI
+ with the tui_stdout and tui_stderr. The output is redirected in
+ the curses command window. Several readline callbacks are installed
+ so that readline asks for its input to the curses command window
+ with wgetch(). */
+void
+tui_setup_io (int mode)
+{
+ extern int readline_echoing_p;
+
+ if (mode)
+ {
+ /* Redirect readline to TUI. */
+ tui_old_rl_redisplay_function = rl_redisplay_function;
+ tui_old_rl_deprep_terminal = rl_deprep_term_function;
+ tui_old_rl_prep_terminal = rl_prep_term_function;
+ tui_old_rl_getc_function = rl_getc_function;
+ tui_old_rl_outstream = rl_outstream;
+ tui_old_readline_echoing_p = readline_echoing_p;
+ rl_redisplay_function = tui_redisplay_readline;
+ rl_deprep_term_function = tui_deprep_terminal;
+ rl_prep_term_function = tui_prep_terminal;
+ rl_getc_function = tui_getc;
+ readline_echoing_p = 0;
+ rl_outstream = tui_rl_outstream;
+ rl_prompt = 0;
+ rl_completion_display_matches_hook = tui_rl_display_match_list;
+ rl_already_prompted = 0;
+
+ /* Keep track of previous gdb output. */
+ tui_old_stdout = gdb_stdout;
+ tui_old_stderr = gdb_stderr;
+ tui_old_uiout = uiout;
+
+ /* Reconfigure gdb output. */
+ gdb_stdout = tui_stdout;
+ gdb_stderr = tui_stderr;
+ gdb_stdlog = gdb_stdout; /* for moment */
+ gdb_stdtarg = gdb_stderr; /* for moment */
+ uiout = tui_out;
+
+ /* Save tty for SIGCONT. */
+ savetty ();
+ }
+ else
+ {
+ /* Restore gdb output. */
+ gdb_stdout = tui_old_stdout;
+ gdb_stderr = tui_old_stderr;
+ gdb_stdlog = gdb_stdout; /* for moment */
+ gdb_stdtarg = gdb_stderr; /* for moment */
+ uiout = tui_old_uiout;
+
+ /* Restore readline. */
+ rl_redisplay_function = tui_old_rl_redisplay_function;
+ rl_deprep_term_function = tui_old_rl_deprep_terminal;
+ rl_prep_term_function = tui_old_rl_prep_terminal;
+ rl_getc_function = tui_old_rl_getc_function;
+ rl_outstream = tui_old_rl_outstream;
+ rl_completion_display_matches_hook = 0;
+ readline_echoing_p = tui_old_readline_echoing_p;
+ rl_already_prompted = 0;
+
+ /* Save tty for SIGCONT. */
+ savetty ();
+ }
+}
+
+#ifdef SIGCONT
+/* Catch SIGCONT to restore the terminal and refresh the screen. */
+static void
+tui_cont_sig (int sig)
+{
+ if (tui_active)
+ {
+ /* Restore the terminal setting because another process (shell)
+ might have changed it. */
+ resetty ();
+
+ /* Force a refresh of the screen. */
+ tuiRefreshAll ();
+
+ /* Update cursor position on the screen. */
+ wmove (cmdWin->generic.handle,
+ cmdWin->detail.commandInfo.start_line,
+ cmdWin->detail.commandInfo.curch);
+ wrefresh (cmdWin->generic.handle);
+ }
+ signal (sig, tui_cont_sig);
+}
+#endif
+
+/* Initialize the IO for gdb in curses mode. */
+void
+tui_initialize_io ()
+{
+#ifdef SIGCONT
+ signal (SIGCONT, tui_cont_sig);
+#endif
+
+ /* Create tui output streams. */
+ tui_stdout = tui_fileopen (stdout);
+ tui_stderr = tui_fileopen (stderr);
+ tui_out = tui_out_new (tui_stdout);
+
+ /* Create the default UI. It is not created because we installed
+ a init_ui_hook. */
+ tui_old_uiout = uiout = cli_out_new (gdb_stdout);
+
+#ifdef TUI_USE_PIPE_FOR_READLINE
+ /* Temporary solution for readline writing to stdout:
+ redirect readline output in a pipe, read that pipe and
+ output the content in the curses command window. */
+ if (pipe (tui_readline_pipe) != 0)
+ {
+ fprintf_unfiltered (gdb_stderr, "Cannot create pipe for readline");
+ exit (1);
+ }
+ tui_rl_outstream = fdopen (tui_readline_pipe[1], "w");
+ if (tui_rl_outstream == 0)
+ {
+ fprintf_unfiltered (gdb_stderr, "Cannot redirect readline output");
+ exit (1);
+ }
+ setvbuf (tui_rl_outstream, (char*) NULL, _IOLBF, 0);
+
+#ifdef O_NONBLOCK
+ (void) fcntl (tui_readline_pipe[0], F_SETFL, O_NONBLOCK);
+#else
+#ifdef O_NDELAY
+ (void) fcntl (tui_readline_pipe[0], F_SETFL, O_NDELAY);
+#endif
+#endif
+ add_file_handler (tui_readline_pipe[0], tui_readline_output, 0);
+#else
+ tui_rl_outstream = stdout;
+#endif
+}
+
+/* Get a character from the command window. This is called from the readline
+ package. */
+int
+tui_getc (FILE *fp)
+{
+ int ch;
+ WINDOW *w;
+
+ w = cmdWin->generic.handle;
+
+#ifdef TUI_USE_PIPE_FOR_READLINE
+ /* Flush readline output. */
+ tui_readline_output (GDB_READABLE, 0);
+#endif
+
+ ch = wgetch (w);
+ ch = _tuiHandleResizeDuringIO (ch);
+
+ /* The \n must be echoed because it will not be printed by readline. */
+ if (ch == '\n')
+ {
+ /* When hitting return with an empty input, gdb executes the last
+ command. If we emit a newline, this fills up the command window
+ with empty lines with gdb prompt at beginning. Instead of that,
+ stay on the same line but provide a visual effect to show the
+ user we recognized the command. */
+ if (rl_end == 0)
+ {
+ wmove (w, cmdWin->detail.commandInfo.curLine, 0);
+
+ /* Clear the line. This will blink the gdb prompt since
+ it will be redrawn at the same line. */
+ wclrtoeol (w);
+ wrefresh (w);
+ napms (20);
+ }
+ else
+ {
+ wmove (w, cmdWin->detail.commandInfo.curLine,
+ cmdWin->detail.commandInfo.curch);
+ waddch (w, ch);
+ }
+ }
+
+ if (key_is_command_char (ch))
+ { /* Handle prev/next/up/down here */
+ ch = tui_dispatch_ctrl_char (ch);
+ }
+
+ if (ch == '\n' || ch == '\r' || ch == '\f')
+ cmdWin->detail.commandInfo.curch = 0;
+#if 0
+ else
+ tuiIncrCommandCharCountBy (1);
+#endif
+ if (ch == KEY_BACKSPACE)
+ return '\b';
+
+ return ch;
+}
+
+
+/* Cleanup when a resize has occured.
+ Returns the character that must be processed. */
+static unsigned int
+_tuiHandleResizeDuringIO (unsigned int originalCh)
+{
+ if (tuiWinResized ())
+ {
+ tuiRefreshAll ();
+ dont_repeat ();
+ tuiSetWinResizedTo (FALSE);
+ return '\n';
+ }
+ else
+ return originalCh;
+}
diff --git a/gdb/tui/tui-io.h b/gdb/tui/tui-io.h
new file mode 100644
index 00000000000..06d085de93f
--- /dev/null
+++ b/gdb/tui/tui-io.h
@@ -0,0 +1,55 @@
+/* TUI support I/O functions.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef TUI_IO_H
+#define TUI_IO_H
+
+struct ui_out;
+
+/* Print the string in the curses command window. */
+extern void tui_puts (const char *);
+
+/* Setup the IO for curses or non-curses mode. */
+extern void tui_setup_io (int mode);
+
+/* Initialize the IO for gdb in curses mode. */
+extern void tui_initialize_io (void);
+
+/* Get a character from the command window. */
+extern int tui_getc (FILE *);
+
+/* Readline callback.
+ Redisplay the command line with its prompt after readline has
+ changed the edited text. */
+extern void tui_redisplay_readline (void);
+
+extern struct ui_out *tui_out;
+extern struct ui_out *tui_old_uiout;
+
+extern int key_is_start_sequence (int ch);
+extern int key_is_end_sequence (int ch);
+extern int key_is_backspace (int ch);
+extern int key_is_command_char (int ch);
+
+#endif
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
new file mode 100644
index 00000000000..38d8de57a00
--- /dev/null
+++ b/gdb/tui/tui-layout.c
@@ -0,0 +1,1140 @@
+/* TUI layout window management.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "command.h"
+#include "symtab.h"
+#include "frame.h"
+#include "source.h"
+#include <ctype.h>
+
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-windata.h"
+#include "tui/tui-wingeneral.h"
+#include "tui/tui-stack.h"
+#include "tui/tui-regs.h"
+#include "tui/tui-win.h"
+#include "tui/tui-winsource.h"
+#include "tui/tui-disasm.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+/*******************************
+** Static Local Decls
+********************************/
+static void showLayout (TuiLayoutType);
+static void _initGenWinInfo (TuiGenWinInfoPtr, TuiWinType, int, int, int, int);
+static void _initAndMakeWin (Opaque *, TuiWinType, int, int, int, int, int);
+static void _showSourceOrDisassemAndCommand (TuiLayoutType);
+static void _makeSourceOrDisassemWindow (TuiWinInfoPtr *, TuiWinType, int, int);
+static void _makeCommandWindow (TuiWinInfoPtr *, int, int);
+static void _makeSourceWindow (TuiWinInfoPtr *, int, int);
+static void _makeDisassemWindow (TuiWinInfoPtr *, int, int);
+static void _makeDataWindow (TuiWinInfoPtr *, int, int);
+static void _showSourceCommand (void);
+static void _showDisassemCommand (void);
+static void _showSourceDisassemCommand (void);
+static void _showData (TuiLayoutType);
+static TuiLayoutType _nextLayout (void);
+static TuiLayoutType _prevLayout (void);
+static void _tuiLayout_command (char *, int);
+static void _tuiToggleLayout_command (char *, int);
+static void _tuiToggleSplitLayout_command (char *, int);
+static CORE_ADDR _extractDisplayStartAddr (void);
+static void _tuiHandleXDBLayout (TuiLayoutDefPtr);
+
+
+/***************************************
+** DEFINITIONS
+***************************************/
+
+#define LAYOUT_USAGE "Usage: layout prev | next | <layout_name> \n"
+
+/* Show the screen layout defined. */
+static void
+showLayout (TuiLayoutType layout)
+{
+ TuiLayoutType curLayout = currentLayout ();
+
+ if (layout != curLayout)
+ {
+ /*
+ ** Since the new layout may cause changes in window size, we
+ ** should free the content and reallocate on next display of
+ ** source/asm
+ */
+ freeAllSourceWinsContent ();
+ clearSourceWindows ();
+ if (layout == SRC_DATA_COMMAND || layout == DISASSEM_DATA_COMMAND)
+ {
+ _showData (layout);
+ refreshAll (winList);
+ }
+ else
+ {
+ /* First make the current layout be invisible */
+ m_allBeInvisible ();
+ m_beInvisible (locatorWinInfoPtr ());
+
+ switch (layout)
+ {
+ /* Now show the new layout */
+ case SRC_COMMAND:
+ _showSourceCommand ();
+ addToSourceWindows (srcWin);
+ break;
+ case DISASSEM_COMMAND:
+ _showDisassemCommand ();
+ addToSourceWindows (disassemWin);
+ break;
+ case SRC_DISASSEM_COMMAND:
+ _showSourceDisassemCommand ();
+ addToSourceWindows (srcWin);
+ addToSourceWindows (disassemWin);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+}
+
+
+/* Function to set the layout to SRC_COMMAND, DISASSEM_COMMAND,
+ SRC_DISASSEM_COMMAND, SRC_DATA_COMMAND, or DISASSEM_DATA_COMMAND.
+ If the layout is SRC_DATA_COMMAND, DISASSEM_DATA_COMMAND, or
+ UNDEFINED_LAYOUT, then the data window is populated according to
+ regsDisplayType. */
+enum tui_status
+tui_set_layout (enum tui_layout_type layoutType,
+ enum tui_register_display_type regsDisplayType)
+{
+ TuiStatus status = TUI_SUCCESS;
+
+ if (layoutType != UNDEFINED_LAYOUT || regsDisplayType != TUI_UNDEFINED_REGS)
+ {
+ TuiLayoutType curLayout = currentLayout (), newLayout = UNDEFINED_LAYOUT;
+ int regsPopulate = FALSE;
+ CORE_ADDR addr = _extractDisplayStartAddr ();
+ TuiWinInfoPtr newWinWithFocus = (TuiWinInfoPtr) NULL, winWithFocus = tuiWinWithFocus ();
+ TuiLayoutDefPtr layoutDef = tuiLayoutDef ();
+
+
+ if (layoutType == UNDEFINED_LAYOUT &&
+ regsDisplayType != TUI_UNDEFINED_REGS)
+ {
+ if (curLayout == SRC_DISASSEM_COMMAND)
+ newLayout = DISASSEM_DATA_COMMAND;
+ else if (curLayout == SRC_COMMAND || curLayout == SRC_DATA_COMMAND)
+ newLayout = SRC_DATA_COMMAND;
+ else if (curLayout == DISASSEM_COMMAND ||
+ curLayout == DISASSEM_DATA_COMMAND)
+ newLayout = DISASSEM_DATA_COMMAND;
+ }
+ else
+ newLayout = layoutType;
+
+ regsPopulate = (newLayout == SRC_DATA_COMMAND ||
+ newLayout == DISASSEM_DATA_COMMAND ||
+ regsDisplayType != TUI_UNDEFINED_REGS);
+ if (newLayout != curLayout || regsDisplayType != TUI_UNDEFINED_REGS)
+ {
+ if (newLayout != curLayout)
+ {
+ showLayout (newLayout);
+ /*
+ ** Now determine where focus should be
+ */
+ if (winWithFocus != cmdWin)
+ {
+ switch (newLayout)
+ {
+ case SRC_COMMAND:
+ tuiSetWinFocusTo (srcWin);
+ layoutDef->displayMode = SRC_WIN;
+ layoutDef->split = FALSE;
+ break;
+ case DISASSEM_COMMAND:
+ /* the previous layout was not showing
+ ** code. this can happen if there is no
+ ** source available:
+ ** 1. if the source file is in another dir OR
+ ** 2. if target was compiled without -g
+ ** We still want to show the assembly though!
+ */
+ addr = tui_get_begin_asm_address ();
+ tuiSetWinFocusTo (disassemWin);
+ layoutDef->displayMode = DISASSEM_WIN;
+ layoutDef->split = FALSE;
+ break;
+ case SRC_DISASSEM_COMMAND:
+ /* the previous layout was not showing
+ ** code. this can happen if there is no
+ ** source available:
+ ** 1. if the source file is in another dir OR
+ ** 2. if target was compiled without -g
+ ** We still want to show the assembly though!
+ */
+ addr = tui_get_begin_asm_address ();
+ if (winWithFocus == srcWin)
+ tuiSetWinFocusTo (srcWin);
+ else
+ tuiSetWinFocusTo (disassemWin);
+ layoutDef->split = TRUE;
+ break;
+ case SRC_DATA_COMMAND:
+ if (winWithFocus != dataWin)
+ tuiSetWinFocusTo (srcWin);
+ else
+ tuiSetWinFocusTo (dataWin);
+ layoutDef->displayMode = SRC_WIN;
+ layoutDef->split = FALSE;
+ break;
+ case DISASSEM_DATA_COMMAND:
+ /* the previous layout was not showing
+ ** code. this can happen if there is no
+ ** source available:
+ ** 1. if the source file is in another dir OR
+ ** 2. if target was compiled without -g
+ ** We still want to show the assembly though!
+ */
+ addr = tui_get_begin_asm_address ();
+ if (winWithFocus != dataWin)
+ tuiSetWinFocusTo (disassemWin);
+ else
+ tuiSetWinFocusTo (dataWin);
+ layoutDef->displayMode = DISASSEM_WIN;
+ layoutDef->split = FALSE;
+ break;
+ default:
+ break;
+ }
+ }
+ if (newWinWithFocus != (TuiWinInfoPtr) NULL)
+ tuiSetWinFocusTo (newWinWithFocus);
+ /*
+ ** Now update the window content
+ */
+ if (!regsPopulate &&
+ (newLayout == SRC_DATA_COMMAND ||
+ newLayout == DISASSEM_DATA_COMMAND))
+ tuiDisplayAllData ();
+
+ tuiUpdateSourceWindowsWithAddr (addr);
+ }
+ if (regsPopulate)
+ {
+ layoutDef->regsDisplayType =
+ (regsDisplayType == TUI_UNDEFINED_REGS ?
+ TUI_GENERAL_REGS : regsDisplayType);
+ tui_show_registers (layoutDef->regsDisplayType);
+ }
+ }
+ }
+ else
+ status = TUI_FAILURE;
+
+ return status;
+}
+
+/* Add the specified window to the layout in a logical way. This
+ means setting up the most logical layout given the window to be
+ added. */
+void
+tui_add_win_to_layout (enum tui_win_type type)
+{
+ TuiLayoutType curLayout = currentLayout ();
+
+ switch (type)
+ {
+ case SRC_WIN:
+ if (curLayout != SRC_COMMAND &&
+ curLayout != SRC_DISASSEM_COMMAND &&
+ curLayout != SRC_DATA_COMMAND)
+ {
+ clearSourceWindowsDetail ();
+ if (curLayout == DISASSEM_DATA_COMMAND)
+ showLayout (SRC_DATA_COMMAND);
+ else
+ showLayout (SRC_COMMAND);
+ }
+ break;
+ case DISASSEM_WIN:
+ if (curLayout != DISASSEM_COMMAND &&
+ curLayout != SRC_DISASSEM_COMMAND &&
+ curLayout != DISASSEM_DATA_COMMAND)
+ {
+ clearSourceWindowsDetail ();
+ if (curLayout == SRC_DATA_COMMAND)
+ showLayout (DISASSEM_DATA_COMMAND);
+ else
+ showLayout (DISASSEM_COMMAND);
+ }
+ break;
+ case DATA_WIN:
+ if (curLayout != SRC_DATA_COMMAND &&
+ curLayout != DISASSEM_DATA_COMMAND)
+ {
+ if (curLayout == DISASSEM_COMMAND)
+ showLayout (DISASSEM_DATA_COMMAND);
+ else
+ showLayout (SRC_DATA_COMMAND);
+ }
+ break;
+ default:
+ break;
+ }
+
+ return;
+} /* tuiAddWinToLayout */
+
+
+/*
+ ** tuiDefaultWinHeight().
+ ** Answer the height of a window. If it hasn't been created yet,
+ ** answer what the height of a window would be based upon its
+ ** type and the layout.
+ */
+int
+tuiDefaultWinHeight (TuiWinType type, TuiLayoutType layout)
+{
+ int h;
+
+ if (winList[type] != (TuiWinInfoPtr) NULL)
+ h = winList[type]->generic.height;
+ else
+ {
+ switch (layout)
+ {
+ case SRC_COMMAND:
+ case DISASSEM_COMMAND:
+ if (m_winPtrIsNull (cmdWin))
+ h = termHeight () / 2;
+ else
+ h = termHeight () - cmdWin->generic.height;
+ break;
+ case SRC_DISASSEM_COMMAND:
+ case SRC_DATA_COMMAND:
+ case DISASSEM_DATA_COMMAND:
+ if (m_winPtrIsNull (cmdWin))
+ h = termHeight () / 3;
+ else
+ h = (termHeight () - cmdWin->generic.height) / 2;
+ break;
+ default:
+ h = 0;
+ break;
+ }
+ }
+
+ return h;
+} /* tuiDefaultWinHeight */
+
+
+/* Answer the height of a window. If it hasn't been created yet,
+ answer what the height of a window would be based upon its type and
+ the layout. */
+int
+tui_default_win_viewport_height (enum tui_win_type type,
+ enum tui_layout_type layout)
+{
+ int h;
+
+ h = tuiDefaultWinHeight (type, layout);
+
+ if (winList[type] == cmdWin)
+ h -= 1;
+ else
+ h -= 2;
+
+ return h;
+} /* tuiDefaultWinViewportHeight */
+
+
+/*
+ ** _initialize_tuiLayout().
+ ** Function to initialize gdb commands, for tui window layout
+ ** manipulation.
+ */
+void
+_initialize_tuiLayout (void)
+{
+ add_com ("layout", class_tui, _tuiLayout_command,
+ "Change the layout of windows.\n\
+Usage: layout prev | next | <layout_name> \n\
+Layout names are:\n\
+ src : Displays source and command windows.\n\
+ asm : Displays disassembly and command windows.\n\
+ split : Displays source, disassembly and command windows.\n\
+ regs : Displays register window. If existing layout\n\
+ is source/command or assembly/command, the \n\
+ register window is displayed. If the\n\
+ source/assembly/command (split) is displayed, \n\
+ the register window is displayed with \n\
+ the window that has current logical focus.\n");
+ if (xdb_commands)
+ {
+ add_com ("td", class_tui, _tuiToggleLayout_command,
+ "Toggle between Source/Command and Disassembly/Command layouts.\n");
+ add_com ("ts", class_tui, _tuiToggleSplitLayout_command,
+ "Toggle between Source/Command or Disassembly/Command and \n\
+Source/Disassembly/Command layouts.\n");
+ }
+}
+
+
+/*************************
+** STATIC LOCAL FUNCTIONS
+**************************/
+
+
+/*
+ ** _tuiSetLayoutTo()
+ ** Function to set the layout to SRC, ASM, SPLIT, NEXT, PREV, DATA, REGS,
+ ** $REGS, $GREGS, $FREGS, $SREGS.
+ */
+TuiStatus
+tui_set_layout_for_display_command (const char *layoutName)
+{
+ TuiStatus status = TUI_SUCCESS;
+
+ if (layoutName != (char *) NULL)
+ {
+ register int i;
+ register char *bufPtr;
+ TuiLayoutType newLayout = UNDEFINED_LAYOUT;
+ TuiRegisterDisplayType dpyType = TUI_UNDEFINED_REGS;
+ TuiLayoutType curLayout = currentLayout ();
+
+ bufPtr = (char *) xstrdup (layoutName);
+ for (i = 0; (i < strlen (layoutName)); i++)
+ bufPtr[i] = toupper (bufPtr[i]);
+
+ /* First check for ambiguous input */
+ if (strlen (bufPtr) <= 1 && (*bufPtr == 'S' || *bufPtr == '$'))
+ {
+ warning ("Ambiguous command input.\n");
+ status = TUI_FAILURE;
+ }
+ else
+ {
+ if (subset_compare (bufPtr, "SRC"))
+ newLayout = SRC_COMMAND;
+ else if (subset_compare (bufPtr, "ASM"))
+ newLayout = DISASSEM_COMMAND;
+ else if (subset_compare (bufPtr, "SPLIT"))
+ newLayout = SRC_DISASSEM_COMMAND;
+ else if (subset_compare (bufPtr, "REGS") ||
+ subset_compare (bufPtr, TUI_GENERAL_SPECIAL_REGS_NAME) ||
+ subset_compare (bufPtr, TUI_GENERAL_REGS_NAME) ||
+ subset_compare (bufPtr, TUI_FLOAT_REGS_NAME) ||
+ subset_compare (bufPtr, TUI_SPECIAL_REGS_NAME))
+ {
+ if (curLayout == SRC_COMMAND || curLayout == SRC_DATA_COMMAND)
+ newLayout = SRC_DATA_COMMAND;
+ else
+ newLayout = DISASSEM_DATA_COMMAND;
+
+/* could ifdef out the following code. when compile with -z, there are null
+ pointer references that cause a core dump if 'layout regs' is the first
+ layout command issued by the user. HP has asked us to hook up this code
+ - edie epstein
+ */
+ if (subset_compare (bufPtr, TUI_FLOAT_REGS_NAME))
+ {
+ if (dataWin->detail.dataDisplayInfo.regsDisplayType !=
+ TUI_SFLOAT_REGS &&
+ dataWin->detail.dataDisplayInfo.regsDisplayType !=
+ TUI_DFLOAT_REGS)
+ dpyType = TUI_SFLOAT_REGS;
+ else
+ dpyType =
+ dataWin->detail.dataDisplayInfo.regsDisplayType;
+ }
+ else if (subset_compare (bufPtr,
+ TUI_GENERAL_SPECIAL_REGS_NAME))
+ dpyType = TUI_GENERAL_AND_SPECIAL_REGS;
+ else if (subset_compare (bufPtr, TUI_GENERAL_REGS_NAME))
+ dpyType = TUI_GENERAL_REGS;
+ else if (subset_compare (bufPtr, TUI_SPECIAL_REGS_NAME))
+ dpyType = TUI_SPECIAL_REGS;
+ else if (dataWin)
+ {
+ if (dataWin->detail.dataDisplayInfo.regsDisplayType !=
+ TUI_UNDEFINED_REGS)
+ dpyType =
+ dataWin->detail.dataDisplayInfo.regsDisplayType;
+ else
+ dpyType = TUI_GENERAL_REGS;
+ }
+
+/* end of potential ifdef
+ */
+
+/* if ifdefed out code above, then assume that the user wishes to display the
+ general purpose registers
+ */
+
+/* dpyType = TUI_GENERAL_REGS;
+ */
+ }
+ else if (subset_compare (bufPtr, "NEXT"))
+ newLayout = _nextLayout ();
+ else if (subset_compare (bufPtr, "PREV"))
+ newLayout = _prevLayout ();
+ else
+ status = TUI_FAILURE;
+ xfree (bufPtr);
+
+ tui_set_layout (newLayout, dpyType);
+ }
+ }
+ else
+ status = TUI_FAILURE;
+
+ return status;
+}
+
+
+static CORE_ADDR
+_extractDisplayStartAddr (void)
+{
+ TuiLayoutType curLayout = currentLayout ();
+ CORE_ADDR addr;
+ CORE_ADDR pc;
+ struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+
+ switch (curLayout)
+ {
+ case SRC_COMMAND:
+ case SRC_DATA_COMMAND:
+ find_line_pc (cursal.symtab,
+ srcWin->detail.sourceInfo.startLineOrAddr.lineNo,
+ &pc);
+ addr = pc;
+ break;
+ case DISASSEM_COMMAND:
+ case SRC_DISASSEM_COMMAND:
+ case DISASSEM_DATA_COMMAND:
+ addr = disassemWin->detail.sourceInfo.startLineOrAddr.addr;
+ break;
+ default:
+ addr = 0;
+ break;
+ }
+
+ return addr;
+} /* _extractDisplayStartAddr */
+
+
+static void
+_tuiHandleXDBLayout (TuiLayoutDefPtr layoutDef)
+{
+ if (layoutDef->split)
+ {
+ tui_set_layout (SRC_DISASSEM_COMMAND, TUI_UNDEFINED_REGS);
+ tuiSetWinFocusTo (winList[layoutDef->displayMode]);
+ }
+ else
+ {
+ if (layoutDef->displayMode == SRC_WIN)
+ tui_set_layout (SRC_COMMAND, TUI_UNDEFINED_REGS);
+ else
+ tui_set_layout (DISASSEM_DATA_COMMAND, layoutDef->regsDisplayType);
+ }
+
+
+ return;
+} /* _tuiHandleXDBLayout */
+
+
+static void
+_tuiToggleLayout_command (char *arg, int fromTTY)
+{
+ TuiLayoutDefPtr layoutDef = tuiLayoutDef ();
+
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ if (layoutDef->displayMode == SRC_WIN)
+ layoutDef->displayMode = DISASSEM_WIN;
+ else
+ layoutDef->displayMode = SRC_WIN;
+
+ if (!layoutDef->split)
+ _tuiHandleXDBLayout (layoutDef);
+
+}
+
+
+static void
+_tuiToggleSplitLayout_command (char *arg, int fromTTY)
+{
+ TuiLayoutDefPtr layoutDef = tuiLayoutDef ();
+
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ layoutDef->split = (!layoutDef->split);
+ _tuiHandleXDBLayout (layoutDef);
+
+}
+
+
+static void
+_tuiLayout_command (char *arg, int fromTTY)
+{
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+
+ /* Switch to the selected layout. */
+ if (tui_set_layout_for_display_command (arg) != TUI_SUCCESS)
+ warning ("Invalid layout specified.\n%s", LAYOUT_USAGE);
+
+}
+
+/*
+ ** _nextLayout().
+ ** Answer the previous layout to cycle to.
+ */
+static TuiLayoutType
+_nextLayout (void)
+{
+ TuiLayoutType newLayout;
+
+ newLayout = currentLayout ();
+ if (newLayout == UNDEFINED_LAYOUT)
+ newLayout = SRC_COMMAND;
+ else
+ {
+ newLayout++;
+ if (newLayout == UNDEFINED_LAYOUT)
+ newLayout = SRC_COMMAND;
+ }
+
+ return newLayout;
+} /* _nextLayout */
+
+
+/*
+ ** _prevLayout().
+ ** Answer the next layout to cycle to.
+ */
+static TuiLayoutType
+_prevLayout (void)
+{
+ TuiLayoutType newLayout;
+
+ newLayout = currentLayout ();
+ if (newLayout == SRC_COMMAND)
+ newLayout = DISASSEM_DATA_COMMAND;
+ else
+ {
+ newLayout--;
+ if (newLayout == UNDEFINED_LAYOUT)
+ newLayout = DISASSEM_DATA_COMMAND;
+ }
+
+ return newLayout;
+} /* _prevLayout */
+
+
+
+/*
+ ** _makeCommandWindow().
+ */
+static void
+_makeCommandWindow (TuiWinInfoPtr * winInfoPtr, int height, int originY)
+{
+ _initAndMakeWin ((Opaque *) winInfoPtr,
+ CMD_WIN,
+ height,
+ termWidth (),
+ 0,
+ originY,
+ DONT_BOX_WINDOW);
+
+ (*winInfoPtr)->canHighlight = FALSE;
+
+ return;
+} /* _makeCommandWindow */
+
+
+/*
+ ** _makeSourceWindow().
+ */
+static void
+_makeSourceWindow (TuiWinInfoPtr * winInfoPtr, int height, int originY)
+{
+ _makeSourceOrDisassemWindow (winInfoPtr, SRC_WIN, height, originY);
+
+ return;
+} /* _makeSourceWindow */
+
+
+/*
+ ** _makeDisassemWindow().
+ */
+static void
+_makeDisassemWindow (TuiWinInfoPtr * winInfoPtr, int height, int originY)
+{
+ _makeSourceOrDisassemWindow (winInfoPtr, DISASSEM_WIN, height, originY);
+
+ return;
+} /* _makeDisassemWindow */
+
+
+/*
+ ** _makeDataWindow().
+ */
+static void
+_makeDataWindow (TuiWinInfoPtr * winInfoPtr, int height, int originY)
+{
+ _initAndMakeWin ((Opaque *) winInfoPtr,
+ DATA_WIN,
+ height,
+ termWidth (),
+ 0,
+ originY,
+ BOX_WINDOW);
+
+ return;
+} /* _makeDataWindow */
+
+
+
+/*
+ ** _showSourceCommand().
+ ** Show the Source/Command layout
+ */
+static void
+_showSourceCommand (void)
+{
+ _showSourceOrDisassemAndCommand (SRC_COMMAND);
+
+ return;
+} /* _showSourceCommand */
+
+
+/*
+ ** _showDisassemCommand().
+ ** Show the Dissassem/Command layout
+ */
+static void
+_showDisassemCommand (void)
+{
+ _showSourceOrDisassemAndCommand (DISASSEM_COMMAND);
+
+ return;
+} /* _showDisassemCommand */
+
+
+/*
+ ** _showSourceDisassemCommand().
+ ** Show the Source/Disassem/Command layout
+ */
+static void
+_showSourceDisassemCommand (void)
+{
+ if (currentLayout () != SRC_DISASSEM_COMMAND)
+ {
+ int cmdHeight, srcHeight, asmHeight;
+
+ if (m_winPtrNotNull (cmdWin))
+ cmdHeight = cmdWin->generic.height;
+ else
+ cmdHeight = termHeight () / 3;
+
+ srcHeight = (termHeight () - cmdHeight) / 2;
+ asmHeight = termHeight () - (srcHeight + cmdHeight);
+
+ if (m_winPtrIsNull (srcWin))
+ _makeSourceWindow (&srcWin, srcHeight, 0);
+ else
+ {
+ _initGenWinInfo (&srcWin->generic,
+ srcWin->generic.type,
+ srcHeight,
+ srcWin->generic.width,
+ srcWin->detail.sourceInfo.executionInfo->width,
+ 0);
+ srcWin->canHighlight = TRUE;
+ _initGenWinInfo (srcWin->detail.sourceInfo.executionInfo,
+ EXEC_INFO_WIN,
+ srcHeight,
+ 3,
+ 0,
+ 0);
+ m_beVisible (srcWin);
+ m_beVisible (srcWin->detail.sourceInfo.executionInfo);
+ srcWin->detail.sourceInfo.hasLocator = FALSE;;
+ }
+ if (m_winPtrNotNull (srcWin))
+ {
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+
+ tuiShowSourceContent (srcWin);
+ if (m_winPtrIsNull (disassemWin))
+ {
+ _makeDisassemWindow (&disassemWin, asmHeight, srcHeight - 1);
+ _initAndMakeWin ((Opaque *) & locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ termWidth (),
+ 0,
+ (srcHeight + asmHeight) - 1,
+ DONT_BOX_WINDOW);
+ }
+ else
+ {
+ _initGenWinInfo (locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ termWidth (),
+ 0,
+ (srcHeight + asmHeight) - 1);
+ disassemWin->detail.sourceInfo.hasLocator = TRUE;
+ _initGenWinInfo (
+ &disassemWin->generic,
+ disassemWin->generic.type,
+ asmHeight,
+ disassemWin->generic.width,
+ disassemWin->detail.sourceInfo.executionInfo->width,
+ srcHeight - 1);
+ _initGenWinInfo (disassemWin->detail.sourceInfo.executionInfo,
+ EXEC_INFO_WIN,
+ asmHeight,
+ 3,
+ 0,
+ srcHeight - 1);
+ disassemWin->canHighlight = TRUE;
+ m_beVisible (disassemWin);
+ m_beVisible (disassemWin->detail.sourceInfo.executionInfo);
+ }
+ if (m_winPtrNotNull (disassemWin))
+ {
+ srcWin->detail.sourceInfo.hasLocator = FALSE;
+ disassemWin->detail.sourceInfo.hasLocator = TRUE;
+ m_beVisible (locator);
+ tuiShowLocatorContent ();
+ tuiShowSourceContent (disassemWin);
+
+ if (m_winPtrIsNull (cmdWin))
+ _makeCommandWindow (&cmdWin,
+ cmdHeight,
+ termHeight () - cmdHeight);
+ else
+ {
+ _initGenWinInfo (&cmdWin->generic,
+ cmdWin->generic.type,
+ cmdWin->generic.height,
+ cmdWin->generic.width,
+ 0,
+ cmdWin->generic.origin.y);
+ cmdWin->canHighlight = FALSE;
+ m_beVisible (cmdWin);
+ }
+ if (m_winPtrNotNull (cmdWin))
+ tuiRefreshWin (&cmdWin->generic);
+ }
+ }
+ setCurrentLayoutTo (SRC_DISASSEM_COMMAND);
+ }
+
+ return;
+} /* _showSourceDisassemCommand */
+
+
+/*
+ ** _showData().
+ ** Show the Source/Data/Command or the Dissassembly/Data/Command layout
+ */
+static void
+_showData (TuiLayoutType newLayout)
+{
+ int totalHeight = (termHeight () - cmdWin->generic.height);
+ int srcHeight, dataHeight;
+ TuiWinType winType;
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+
+
+ dataHeight = totalHeight / 2;
+ srcHeight = totalHeight - dataHeight;
+ m_allBeInvisible ();
+ m_beInvisible (locator);
+ _makeDataWindow (&dataWin, dataHeight, 0);
+ dataWin->canHighlight = TRUE;
+ if (newLayout == SRC_DATA_COMMAND)
+ winType = SRC_WIN;
+ else
+ winType = DISASSEM_WIN;
+ if (m_winPtrIsNull (winList[winType]))
+ {
+ if (winType == SRC_WIN)
+ _makeSourceWindow (&winList[winType], srcHeight, dataHeight - 1);
+ else
+ _makeDisassemWindow (&winList[winType], srcHeight, dataHeight - 1);
+ _initAndMakeWin ((Opaque *) & locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ termWidth (),
+ 0,
+ totalHeight - 1,
+ DONT_BOX_WINDOW);
+ }
+ else
+ {
+ _initGenWinInfo (&winList[winType]->generic,
+ winList[winType]->generic.type,
+ srcHeight,
+ winList[winType]->generic.width,
+ winList[winType]->detail.sourceInfo.executionInfo->width,
+ dataHeight - 1);
+ _initGenWinInfo (winList[winType]->detail.sourceInfo.executionInfo,
+ EXEC_INFO_WIN,
+ srcHeight,
+ 3,
+ 0,
+ dataHeight - 1);
+ m_beVisible (winList[winType]);
+ m_beVisible (winList[winType]->detail.sourceInfo.executionInfo);
+ _initGenWinInfo (locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ termWidth (),
+ 0,
+ totalHeight - 1);
+ }
+ winList[winType]->detail.sourceInfo.hasLocator = TRUE;
+ m_beVisible (locator);
+ tuiShowLocatorContent ();
+ addToSourceWindows (winList[winType]);
+ setCurrentLayoutTo (newLayout);
+
+ return;
+} /* _showData */
+
+/*
+ ** _initGenWinInfo().
+ */
+static void
+_initGenWinInfo (TuiGenWinInfoPtr winInfo, TuiWinType type,
+ int height, int width, int originX, int originY)
+{
+ int h = height;
+
+ winInfo->type = type;
+ winInfo->width = width;
+ winInfo->height = h;
+ if (h > 1)
+ {
+ winInfo->viewportHeight = h - 1;
+ if (winInfo->type != CMD_WIN)
+ winInfo->viewportHeight--;
+ }
+ else
+ winInfo->viewportHeight = 1;
+ winInfo->origin.x = originX;
+ winInfo->origin.y = originY;
+
+ return;
+} /* _initGenWinInfo */
+
+/*
+ ** _initAndMakeWin().
+ */
+static void
+_initAndMakeWin (Opaque * winInfoPtr, TuiWinType winType,
+ int height, int width, int originX, int originY, int boxIt)
+{
+ Opaque opaqueWinInfo = *winInfoPtr;
+ TuiGenWinInfoPtr generic;
+
+ if (opaqueWinInfo == (Opaque) NULL)
+ {
+ if (m_winIsAuxillary (winType))
+ opaqueWinInfo = (Opaque) allocGenericWinInfo ();
+ else
+ opaqueWinInfo = (Opaque) allocWinInfo (winType);
+ }
+ if (m_winIsAuxillary (winType))
+ generic = (TuiGenWinInfoPtr) opaqueWinInfo;
+ else
+ generic = &((TuiWinInfoPtr) opaqueWinInfo)->generic;
+
+ if (opaqueWinInfo != (Opaque) NULL)
+ {
+ _initGenWinInfo (generic, winType, height, width, originX, originY);
+ if (!m_winIsAuxillary (winType))
+ {
+ if (generic->type == CMD_WIN)
+ ((TuiWinInfoPtr) opaqueWinInfo)->canHighlight = FALSE;
+ else
+ ((TuiWinInfoPtr) opaqueWinInfo)->canHighlight = TRUE;
+ }
+ makeWindow (generic, boxIt);
+ }
+ *winInfoPtr = opaqueWinInfo;
+}
+
+
+/*
+ ** _makeSourceOrDisassemWindow().
+ */
+static void
+_makeSourceOrDisassemWindow (TuiWinInfoPtr * winInfoPtr, TuiWinType type,
+ int height, int originY)
+{
+ TuiGenWinInfoPtr executionInfo = (TuiGenWinInfoPtr) NULL;
+
+ /*
+ ** Create the exeuction info window.
+ */
+ if (type == SRC_WIN)
+ executionInfo = sourceExecInfoWinPtr ();
+ else
+ executionInfo = disassemExecInfoWinPtr ();
+ _initAndMakeWin ((Opaque *) & executionInfo,
+ EXEC_INFO_WIN,
+ height,
+ 3,
+ 0,
+ originY,
+ DONT_BOX_WINDOW);
+ /*
+ ** Now create the source window.
+ */
+ _initAndMakeWin ((Opaque *) winInfoPtr,
+ type,
+ height,
+ termWidth () - executionInfo->width,
+ executionInfo->width,
+ originY,
+ BOX_WINDOW);
+
+ (*winInfoPtr)->detail.sourceInfo.executionInfo = executionInfo;
+
+ return;
+} /* _makeSourceOrDisassemWindow */
+
+
+/*
+ ** _showSourceOrDisassemAndCommand().
+ ** Show the Source/Command or the Disassem layout
+ */
+static void
+_showSourceOrDisassemAndCommand (TuiLayoutType layoutType)
+{
+ if (currentLayout () != layoutType)
+ {
+ TuiWinInfoPtr *winInfoPtr;
+ int srcHeight, cmdHeight;
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+
+ if (m_winPtrNotNull (cmdWin))
+ cmdHeight = cmdWin->generic.height;
+ else
+ cmdHeight = termHeight () / 3;
+ srcHeight = termHeight () - cmdHeight;
+
+
+ if (layoutType == SRC_COMMAND)
+ winInfoPtr = &srcWin;
+ else
+ winInfoPtr = &disassemWin;
+
+ if (m_winPtrIsNull (*winInfoPtr))
+ {
+ if (layoutType == SRC_COMMAND)
+ _makeSourceWindow (winInfoPtr, srcHeight - 1, 0);
+ else
+ _makeDisassemWindow (winInfoPtr, srcHeight - 1, 0);
+ _initAndMakeWin ((Opaque *) & locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ termWidth (),
+ 0,
+ srcHeight - 1,
+ DONT_BOX_WINDOW);
+ }
+ else
+ {
+ _initGenWinInfo (locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ termWidth (),
+ 0,
+ srcHeight - 1);
+ (*winInfoPtr)->detail.sourceInfo.hasLocator = TRUE;
+ _initGenWinInfo (
+ &(*winInfoPtr)->generic,
+ (*winInfoPtr)->generic.type,
+ srcHeight - 1,
+ (*winInfoPtr)->generic.width,
+ (*winInfoPtr)->detail.sourceInfo.executionInfo->width,
+ 0);
+ _initGenWinInfo ((*winInfoPtr)->detail.sourceInfo.executionInfo,
+ EXEC_INFO_WIN,
+ srcHeight - 1,
+ 3,
+ 0,
+ 0);
+ (*winInfoPtr)->canHighlight = TRUE;
+ m_beVisible (*winInfoPtr);
+ m_beVisible ((*winInfoPtr)->detail.sourceInfo.executionInfo);
+ }
+ if (m_winPtrNotNull (*winInfoPtr))
+ {
+ (*winInfoPtr)->detail.sourceInfo.hasLocator = TRUE;
+ m_beVisible (locator);
+ tuiShowLocatorContent ();
+ tuiShowSourceContent (*winInfoPtr);
+
+ if (m_winPtrIsNull (cmdWin))
+ {
+ _makeCommandWindow (&cmdWin, cmdHeight, srcHeight);
+ tuiRefreshWin (&cmdWin->generic);
+ }
+ else
+ {
+ _initGenWinInfo (&cmdWin->generic,
+ cmdWin->generic.type,
+ cmdWin->generic.height,
+ cmdWin->generic.width,
+ cmdWin->generic.origin.x,
+ cmdWin->generic.origin.y);
+ cmdWin->canHighlight = FALSE;
+ m_beVisible (cmdWin);
+ }
+ }
+ setCurrentLayoutTo (layoutType);
+ }
+
+ return;
+} /* _showSourceOrDisassemAndCommand */
diff --git a/gdb/tui/tui-layout.h b/gdb/tui/tui-layout.h
new file mode 100644
index 00000000000..5df1f0be9f1
--- /dev/null
+++ b/gdb/tui/tui-layout.h
@@ -0,0 +1,38 @@
+/* TUI layout window management.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef TUI_LAYOUT_H
+#define TUI_LAYOUT_H
+
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+
+extern void tui_add_win_to_layout (enum tui_win_type);
+extern int tui_default_win_height (enum tui_win_type, enum tui_layout_type);
+extern int tui_default_win_viewport_height (enum tui_win_type,
+ enum tui_layout_type);
+extern enum tui_status tui_set_layout (enum tui_layout_type,
+ enum tui_register_display_type);
+
+#endif /*TUI_LAYOUT_H */
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
new file mode 100644
index 00000000000..68520b9f6eb
--- /dev/null
+++ b/gdb/tui/tui-regs.c
@@ -0,0 +1,1023 @@
+/* TUI display registers in window.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "symtab.h"
+#include "gdbtypes.h"
+#include "gdbcmd.h"
+#include "frame.h"
+#include "regcache.h"
+#include "inferior.h"
+#include "target.h"
+#include "tui/tui-layout.h"
+#include "tui/tui-win.h"
+#include "tui/tui-windata.h"
+#include "tui/tui-wingeneral.h"
+#include "tui/tui-file.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+/*****************************************
+** LOCAL DEFINITIONS **
+******************************************/
+#define DOUBLE_FLOAT_LABEL_WIDTH 6
+#define DOUBLE_FLOAT_LABEL_FMT "%6.6s: "
+#define DOUBLE_FLOAT_VALUE_WIDTH 30 /*min of 16 but may be in sci notation */
+
+#define SINGLE_FLOAT_LABEL_WIDTH 6
+#define SINGLE_FLOAT_LABEL_FMT "%6.6s: "
+#define SINGLE_FLOAT_VALUE_WIDTH 25 /* min of 8 but may be in sci notation */
+
+#define SINGLE_LABEL_WIDTH 16
+#define SINGLE_LABEL_FMT "%10.10s: "
+#define SINGLE_VALUE_WIDTH 20 /* minimum of 8 but may be in sci notation */
+
+/* In the code HP gave Cygnus, this was actually a function call to a
+ PA-specific function, which was supposed to determine whether the
+ target was a 64-bit or 32-bit processor. However, the 64-bit
+ support wasn't complete, so we didn't merge that in, so we leave
+ this here as a stub. */
+#define IS_64BIT 0
+
+/*****************************************
+** STATIC DATA **
+******************************************/
+
+
+/*****************************************
+** STATIC LOCAL FUNCTIONS FORWARD DECLS **
+******************************************/
+static TuiStatus _tuiSetRegsContent
+ (int, int, struct frame_info *, TuiRegisterDisplayType, int);
+static const char *_tuiRegisterName (int);
+static TuiStatus _tuiGetRegisterRawValue (int, char *, struct frame_info *);
+static void _tuiSetRegisterElement
+ (int, struct frame_info *, TuiDataElementPtr, int);
+static void _tuiDisplayRegister (int, TuiGenWinInfoPtr, enum precision_type);
+static void _tuiRegisterFormat
+ (char *, int, int, TuiDataElementPtr, enum precision_type);
+static TuiStatus _tuiSetGeneralRegsContent (int);
+static TuiStatus _tuiSetSpecialRegsContent (int);
+static TuiStatus _tuiSetGeneralAndSpecialRegsContent (int);
+static TuiStatus _tuiSetFloatRegsContent (TuiRegisterDisplayType, int);
+static int _tuiRegValueHasChanged
+ (TuiDataElementPtr, struct frame_info *, char *);
+static void _tuiShowFloat_command (char *, int);
+static void _tuiShowGeneral_command (char *, int);
+static void _tuiShowSpecial_command (char *, int);
+static void _tui_vShowRegisters_commandSupport (TuiRegisterDisplayType);
+static void _tuiToggleFloatRegs_command (char *, int);
+static void _tuiScrollRegsForward_command (char *, int);
+static void _tuiScrollRegsBackward_command (char *, int);
+
+
+
+/*****************************************
+** PUBLIC FUNCTIONS **
+******************************************/
+
+/* Answer the number of the last line in the regs display. If there
+ are no registers (-1) is returned. */
+int
+tui_last_regs_line_no (void)
+{
+ register int numLines = (-1);
+
+ if (dataWin->detail.dataDisplayInfo.regsContentCount > 0)
+ {
+ numLines = (dataWin->detail.dataDisplayInfo.regsContentCount /
+ dataWin->detail.dataDisplayInfo.regsColumnCount);
+ if (dataWin->detail.dataDisplayInfo.regsContentCount %
+ dataWin->detail.dataDisplayInfo.regsColumnCount)
+ numLines++;
+ }
+ return numLines;
+}
+
+
+/* Answer the line number that the register element at elementNo is
+ on. If elementNo is greater than the number of register elements
+ there are, -1 is returned. */
+int
+tui_line_from_reg_element_no (int elementNo)
+{
+ if (elementNo < dataWin->detail.dataDisplayInfo.regsContentCount)
+ {
+ int i, line = (-1);
+
+ i = 1;
+ while (line == (-1))
+ {
+ if (elementNo <
+ (dataWin->detail.dataDisplayInfo.regsColumnCount * i))
+ line = i - 1;
+ else
+ i++;
+ }
+
+ return line;
+ }
+ else
+ return (-1);
+}
+
+
+/* Answer the index of the first element in lineNo. If lineNo is past
+ the register area (-1) is returned. */
+int
+tui_first_reg_element_no_inline (int lineNo)
+{
+ if ((lineNo * dataWin->detail.dataDisplayInfo.regsColumnCount)
+ <= dataWin->detail.dataDisplayInfo.regsContentCount)
+ return ((lineNo + 1) *
+ dataWin->detail.dataDisplayInfo.regsColumnCount) -
+ dataWin->detail.dataDisplayInfo.regsColumnCount;
+ else
+ return (-1);
+}
+
+
+/*
+ ** tuiLastRegElementNoInLine()
+ ** Answer the index of the last element in lineNo. If lineNo is past
+ ** the register area (-1) is returned.
+ */
+int
+tuiLastRegElementNoInLine (int lineNo)
+{
+ if ((lineNo * dataWin->detail.dataDisplayInfo.regsColumnCount) <=
+ dataWin->detail.dataDisplayInfo.regsContentCount)
+ return ((lineNo + 1) *
+ dataWin->detail.dataDisplayInfo.regsColumnCount) - 1;
+ else
+ return (-1);
+} /* tuiLastRegElementNoInLine */
+
+
+/* Calculate the number of columns that should be used to display the
+ registers. */
+int
+tui_calculate_regs_column_count (TuiRegisterDisplayType dpyType)
+{
+ int colCount, colWidth;
+
+ if (IS_64BIT || dpyType == TUI_DFLOAT_REGS)
+ colWidth = DOUBLE_FLOAT_VALUE_WIDTH + DOUBLE_FLOAT_LABEL_WIDTH;
+ else
+ {
+ if (dpyType == TUI_SFLOAT_REGS)
+ colWidth = SINGLE_FLOAT_VALUE_WIDTH + SINGLE_FLOAT_LABEL_WIDTH;
+ else
+ colWidth = SINGLE_VALUE_WIDTH + SINGLE_LABEL_WIDTH;
+ }
+ colCount = (dataWin->generic.width - 2) / colWidth;
+
+ return colCount;
+} /* tuiCalulateRegsColumnCount */
+
+
+/* Show the registers int the data window as indicated by dpyType. If
+ there is any other registers being displayed, then they are
+ cleared. What registers are displayed is dependent upon dpyType. */
+void
+tui_show_registers (TuiRegisterDisplayType dpyType)
+{
+ TuiStatus ret = TUI_FAILURE;
+ int refreshValuesOnly = FALSE;
+
+ /* Say that registers should be displayed, even if there is a problem */
+ dataWin->detail.dataDisplayInfo.displayRegs = TRUE;
+
+ if (target_has_registers)
+ {
+ refreshValuesOnly =
+ (dpyType == dataWin->detail.dataDisplayInfo.regsDisplayType);
+ switch (dpyType)
+ {
+ case TUI_GENERAL_REGS:
+ ret = _tuiSetGeneralRegsContent (refreshValuesOnly);
+ break;
+ case TUI_SFLOAT_REGS:
+ case TUI_DFLOAT_REGS:
+ ret = _tuiSetFloatRegsContent (dpyType, refreshValuesOnly);
+ break;
+
+/* could ifdef out */
+
+ case TUI_SPECIAL_REGS:
+ ret = _tuiSetSpecialRegsContent (refreshValuesOnly);
+ break;
+ case TUI_GENERAL_AND_SPECIAL_REGS:
+ ret = _tuiSetGeneralAndSpecialRegsContent (refreshValuesOnly);
+ break;
+
+/* end of potential if def */
+
+ default:
+ break;
+ }
+ }
+ if (ret == TUI_FAILURE)
+ {
+ dataWin->detail.dataDisplayInfo.regsDisplayType = TUI_UNDEFINED_REGS;
+ tuiEraseDataContent (NO_REGS_STRING);
+ }
+ else
+ {
+ int i;
+
+ /* Clear all notation of changed values */
+ for (i = 0; (i < dataWin->detail.dataDisplayInfo.regsContentCount); i++)
+ {
+ TuiGenWinInfoPtr dataItemWin;
+
+ dataItemWin = &dataWin->detail.dataDisplayInfo.
+ regsContent[i]->whichElement.dataWindow;
+ (&((TuiWinElementPtr)
+ dataItemWin->content[0])->whichElement.data)->highlight = FALSE;
+ }
+ dataWin->detail.dataDisplayInfo.regsDisplayType = dpyType;
+ tuiDisplayAllData ();
+ }
+ (tuiLayoutDef ())->regsDisplayType = dpyType;
+
+ return;
+}
+
+
+/* Function to display the registers in the content from
+ 'startElementNo' until the end of the register content or the end
+ of the display height. No checking for displaying past the end of
+ the registers is done here. */
+void
+tui_display_registers_from (int startElementNo)
+{
+ if (dataWin->detail.dataDisplayInfo.regsContent != (TuiWinContent) NULL &&
+ dataWin->detail.dataDisplayInfo.regsContentCount > 0)
+ {
+ register int i = startElementNo;
+ int j, valueCharsWide, itemWinWidth, curY, labelWidth;
+ enum precision_type precision;
+
+ precision = (dataWin->detail.dataDisplayInfo.regsDisplayType
+ == TUI_DFLOAT_REGS) ?
+ double_precision : unspecified_precision;
+ if (IS_64BIT ||
+ dataWin->detail.dataDisplayInfo.regsDisplayType == TUI_DFLOAT_REGS)
+ {
+ valueCharsWide = DOUBLE_FLOAT_VALUE_WIDTH;
+ labelWidth = DOUBLE_FLOAT_LABEL_WIDTH;
+ }
+ else
+ {
+ if (dataWin->detail.dataDisplayInfo.regsDisplayType ==
+ TUI_SFLOAT_REGS)
+ {
+ valueCharsWide = SINGLE_FLOAT_VALUE_WIDTH;
+ labelWidth = SINGLE_FLOAT_LABEL_WIDTH;
+ }
+ else
+ {
+ valueCharsWide = SINGLE_VALUE_WIDTH;
+ labelWidth = SINGLE_LABEL_WIDTH;
+ }
+ }
+ itemWinWidth = valueCharsWide + labelWidth;
+ /*
+ ** Now create each data "sub" window, and write the display into it.
+ */
+ curY = 1;
+ while (i < dataWin->detail.dataDisplayInfo.regsContentCount &&
+ curY <= dataWin->generic.viewportHeight)
+ {
+ for (j = 0;
+ (j < dataWin->detail.dataDisplayInfo.regsColumnCount &&
+ i < dataWin->detail.dataDisplayInfo.regsContentCount); j++)
+ {
+ TuiGenWinInfoPtr dataItemWin;
+ TuiDataElementPtr dataElementPtr;
+
+ /* create the window if necessary */
+ dataItemWin = &dataWin->detail.dataDisplayInfo.
+ regsContent[i]->whichElement.dataWindow;
+ dataElementPtr = &((TuiWinElementPtr)
+ dataItemWin->content[0])->whichElement.data;
+ if (dataItemWin->handle == (WINDOW *) NULL)
+ {
+ dataItemWin->height = 1;
+ dataItemWin->width = (precision == double_precision) ?
+ itemWinWidth + 2 : itemWinWidth + 1;
+ dataItemWin->origin.x = (itemWinWidth * j) + 1;
+ dataItemWin->origin.y = curY;
+ makeWindow (dataItemWin, DONT_BOX_WINDOW);
+ scrollok (dataItemWin->handle, FALSE);
+ }
+ touchwin (dataItemWin->handle);
+
+ /*
+ ** Get the printable representation of the register
+ ** and display it
+ */
+ _tuiDisplayRegister (
+ dataElementPtr->itemNo, dataItemWin, precision);
+ i++; /* next register */
+ }
+ curY++; /* next row; */
+ }
+ }
+
+ return;
+}
+
+
+/*
+ ** tuiDisplayRegElementAtLine().
+ ** Function to display the registers in the content from
+ ** 'startElementNo' on 'startLineNo' until the end of the
+ ** register content or the end of the display height.
+ ** This function checks that we won't display off the end
+ ** of the register display.
+ */
+void
+tuiDisplayRegElementAtLine (int startElementNo, int startLineNo)
+{
+ if (dataWin->detail.dataDisplayInfo.regsContent != (TuiWinContent) NULL &&
+ dataWin->detail.dataDisplayInfo.regsContentCount > 0)
+ {
+ register int elementNo = startElementNo;
+
+ if (startElementNo != 0 && startLineNo != 0)
+ {
+ register int lastLineNo, firstLineOnLastPage;
+
+ lastLineNo = tui_last_regs_line_no ();
+ firstLineOnLastPage = lastLineNo - (dataWin->generic.height - 2);
+ if (firstLineOnLastPage < 0)
+ firstLineOnLastPage = 0;
+ /*
+ ** If there is no other data displayed except registers,
+ ** and the elementNo causes us to scroll past the end of the
+ ** registers, adjust what element to really start the display at.
+ */
+ if (dataWin->detail.dataDisplayInfo.dataContentCount <= 0 &&
+ startLineNo > firstLineOnLastPage)
+ elementNo = tui_first_reg_element_no_inline (firstLineOnLastPage);
+ }
+ tui_display_registers_from (elementNo);
+ }
+
+ return;
+} /* tuiDisplayRegElementAtLine */
+
+
+
+/* Function to display the registers starting at line lineNo in the
+ data window. Answers the line number that the display actually
+ started from. If nothing is displayed (-1) is returned. */
+int
+tui_display_registers_from_line (int lineNo, int forceDisplay)
+{
+ if (dataWin->detail.dataDisplayInfo.regsContentCount > 0)
+ {
+ int line, elementNo;
+
+ if (lineNo < 0)
+ line = 0;
+ else if (forceDisplay)
+ { /*
+ ** If we must display regs (forceDisplay is true), then make
+ ** sure that we don't display off the end of the registers.
+ */
+ if (lineNo >= tui_last_regs_line_no ())
+ {
+ if ((line = tui_line_from_reg_element_no (
+ dataWin->detail.dataDisplayInfo.regsContentCount - 1)) < 0)
+ line = 0;
+ }
+ else
+ line = lineNo;
+ }
+ else
+ line = lineNo;
+
+ elementNo = tui_first_reg_element_no_inline (line);
+ if (elementNo < dataWin->detail.dataDisplayInfo.regsContentCount)
+ tuiDisplayRegElementAtLine (elementNo, line);
+ else
+ line = (-1);
+
+ return line;
+ }
+
+ return (-1); /* nothing was displayed */
+}
+
+
+/* This function check all displayed registers for changes in values,
+ given a particular frame. If the values have changed, they are
+ updated with the new value and highlighted. */
+void
+tui_check_register_values (struct frame_info *frame)
+{
+ if (m_winPtrNotNull (dataWin) && dataWin->generic.isVisible)
+ {
+ if (dataWin->detail.dataDisplayInfo.regsContentCount <= 0 &&
+ dataWin->detail.dataDisplayInfo.displayRegs)
+ tui_show_registers ((tuiLayoutDef ())->regsDisplayType);
+ else
+ {
+ int i, j;
+ char rawBuf[MAX_REGISTER_SIZE];
+
+ for (i = 0;
+ (i < dataWin->detail.dataDisplayInfo.regsContentCount); i++)
+ {
+ TuiDataElementPtr dataElementPtr;
+ TuiGenWinInfoPtr dataItemWinPtr;
+ int wasHilighted;
+
+ dataItemWinPtr = &dataWin->detail.dataDisplayInfo.
+ regsContent[i]->whichElement.dataWindow;
+ dataElementPtr = &((TuiWinElementPtr)
+ dataItemWinPtr->content[0])->whichElement.data;
+ wasHilighted = dataElementPtr->highlight;
+ dataElementPtr->highlight =
+ _tuiRegValueHasChanged (dataElementPtr, frame, &rawBuf[0]);
+ if (dataElementPtr->highlight)
+ {
+ int size;
+
+ size = DEPRECATED_REGISTER_RAW_SIZE (dataElementPtr->itemNo);
+ for (j = 0; j < size; j++)
+ ((char *) dataElementPtr->value)[j] = rawBuf[j];
+ _tuiDisplayRegister (
+ dataElementPtr->itemNo,
+ dataItemWinPtr,
+ ((dataWin->detail.dataDisplayInfo.regsDisplayType ==
+ TUI_DFLOAT_REGS) ?
+ double_precision : unspecified_precision));
+ }
+ else if (wasHilighted)
+ {
+ dataElementPtr->highlight = FALSE;
+ _tuiDisplayRegister (
+ dataElementPtr->itemNo,
+ dataItemWinPtr,
+ ((dataWin->detail.dataDisplayInfo.regsDisplayType ==
+ TUI_DFLOAT_REGS) ?
+ double_precision : unspecified_precision));
+ }
+ }
+ }
+ }
+ return;
+}
+
+
+/*
+ ** tuiToggleFloatRegs().
+ */
+void
+tuiToggleFloatRegs (void)
+{
+ TuiLayoutDefPtr layoutDef = tuiLayoutDef ();
+
+ if (layoutDef->floatRegsDisplayType == TUI_SFLOAT_REGS)
+ layoutDef->floatRegsDisplayType = TUI_DFLOAT_REGS;
+ else
+ layoutDef->floatRegsDisplayType = TUI_SFLOAT_REGS;
+
+ if (m_winPtrNotNull (dataWin) && dataWin->generic.isVisible &&
+ (dataWin->detail.dataDisplayInfo.regsDisplayType == TUI_SFLOAT_REGS ||
+ dataWin->detail.dataDisplayInfo.regsDisplayType == TUI_DFLOAT_REGS))
+ tui_show_registers (layoutDef->floatRegsDisplayType);
+
+ return;
+} /* tuiToggleFloatRegs */
+
+
+void
+_initialize_tuiRegs (void)
+{
+ if (xdb_commands)
+ {
+ add_com ("fr", class_tui, _tuiShowFloat_command,
+ "Display only floating point registers\n");
+ add_com ("gr", class_tui, _tuiShowGeneral_command,
+ "Display only general registers\n");
+ add_com ("sr", class_tui, _tuiShowSpecial_command,
+ "Display only special registers\n");
+ add_com ("+r", class_tui, _tuiScrollRegsForward_command,
+ "Scroll the registers window forward\n");
+ add_com ("-r", class_tui, _tuiScrollRegsBackward_command,
+ "Scroll the register window backward\n");
+ add_com ("tf", class_tui, _tuiToggleFloatRegs_command,
+ "Toggle between single and double precision floating point registers.\n");
+ add_cmd (TUI_FLOAT_REGS_NAME_LOWER,
+ class_tui,
+ _tuiToggleFloatRegs_command,
+ "Toggle between single and double precision floating point \
+registers.\n",
+ &togglelist);
+ }
+}
+
+
+/*****************************************
+** STATIC LOCAL FUNCTIONS **
+******************************************/
+
+
+/*
+ ** _tuiRegisterName().
+ ** Return the register name.
+ */
+static const char *
+_tuiRegisterName (int regNum)
+{
+ return REGISTER_NAME (regNum);
+}
+extern int pagination_enabled;
+
+static void
+tui_restore_gdbout (void *ui)
+{
+ ui_file_delete (gdb_stdout);
+ gdb_stdout = (struct ui_file*) ui;
+ pagination_enabled = 1;
+}
+
+/*
+ ** _tuiRegisterFormat
+ ** Function to format the register name and value into a buffer,
+ ** suitable for printing or display
+ */
+static void
+_tuiRegisterFormat (char *buf, int bufLen, int regNum,
+ TuiDataElementPtr dataElement,
+ enum precision_type precision)
+{
+ struct ui_file *stream;
+ struct ui_file *old_stdout;
+ const char *name;
+ struct cleanup *cleanups;
+ char *p;
+ int pos;
+
+ name = REGISTER_NAME (regNum);
+ if (name == 0)
+ {
+ strcpy (buf, "");
+ return;
+ }
+
+ pagination_enabled = 0;
+ old_stdout = gdb_stdout;
+ stream = tui_sfileopen (bufLen);
+ gdb_stdout = stream;
+ cleanups = make_cleanup (tui_restore_gdbout, (void*) old_stdout);
+ gdbarch_print_registers_info (current_gdbarch, stream, deprecated_selected_frame,
+ regNum, 1);
+
+ /* Save formatted output in the buffer. */
+ p = tui_file_get_strbuf (stream);
+ pos = 0;
+ while (*p && *p == *name++ && bufLen)
+ {
+ *buf++ = *p++;
+ bufLen--;
+ pos++;
+ }
+ while (*p == ' ')
+ p++;
+ while (pos < 8 && bufLen)
+ {
+ *buf++ = ' ';
+ bufLen--;
+ pos++;
+ }
+ strncpy (buf, p, bufLen);
+
+ /* Remove the possible \n. */
+ p = strchr (buf, '\n');
+ if (p)
+ *p = 0;
+
+ do_cleanups (cleanups);
+}
+
+
+#define NUM_GENERAL_REGS 32
+/*
+ ** _tuiSetGeneralRegsContent().
+ ** Set the content of the data window to consist of the general registers.
+ */
+static TuiStatus
+_tuiSetGeneralRegsContent (int refreshValuesOnly)
+{
+ return (_tuiSetRegsContent (0,
+ NUM_GENERAL_REGS - 1,
+ deprecated_selected_frame,
+ TUI_GENERAL_REGS,
+ refreshValuesOnly));
+
+} /* _tuiSetGeneralRegsContent */
+
+
+#ifndef PCOQ_HEAD_REGNUM
+#define START_SPECIAL_REGS 0
+#else
+#define START_SPECIAL_REGS PCOQ_HEAD_REGNUM
+#endif
+
+/*
+ ** _tuiSetSpecialRegsContent().
+ ** Set the content of the data window to consist of the special registers.
+ */
+static TuiStatus
+_tuiSetSpecialRegsContent (int refreshValuesOnly)
+{
+ TuiStatus ret = TUI_FAILURE;
+ int endRegNum;
+
+ endRegNum = FP0_REGNUM - 1;
+ ret = _tuiSetRegsContent (START_SPECIAL_REGS,
+ endRegNum,
+ deprecated_selected_frame,
+ TUI_SPECIAL_REGS,
+ refreshValuesOnly);
+
+ return ret;
+} /* _tuiSetSpecialRegsContent */
+
+
+/*
+ ** _tuiSetGeneralAndSpecialRegsContent().
+ ** Set the content of the data window to consist of the special registers.
+ */
+static TuiStatus
+_tuiSetGeneralAndSpecialRegsContent (int refreshValuesOnly)
+{
+ TuiStatus ret = TUI_FAILURE;
+ int endRegNum = (-1);
+
+ endRegNum = FP0_REGNUM - 1;
+ ret = _tuiSetRegsContent (
+ 0, endRegNum, deprecated_selected_frame, TUI_SPECIAL_REGS, refreshValuesOnly);
+
+ return ret;
+} /* _tuiSetGeneralAndSpecialRegsContent */
+
+/*
+ ** _tuiSetFloatRegsContent().
+ ** Set the content of the data window to consist of the float registers.
+ */
+static TuiStatus
+_tuiSetFloatRegsContent (TuiRegisterDisplayType dpyType, int refreshValuesOnly)
+{
+ TuiStatus ret = TUI_FAILURE;
+ int startRegNum;
+
+ startRegNum = FP0_REGNUM;
+ ret = _tuiSetRegsContent (startRegNum,
+ NUM_REGS - 1,
+ deprecated_selected_frame,
+ dpyType,
+ refreshValuesOnly);
+
+ return ret;
+} /* _tuiSetFloatRegsContent */
+
+
+/*
+ ** _tuiRegValueHasChanged().
+ ** Answer TRUE if the register's value has changed, FALSE otherwise.
+ ** If TRUE, newValue is filled in with the new value.
+ */
+static int
+_tuiRegValueHasChanged (TuiDataElementPtr dataElement,
+ struct frame_info *frame,
+ char *newValue)
+{
+ int hasChanged = FALSE;
+
+ if (dataElement->itemNo != UNDEFINED_ITEM &&
+ _tuiRegisterName (dataElement->itemNo) != (char *) NULL)
+ {
+ char rawBuf[MAX_REGISTER_SIZE];
+ int i;
+
+ if (_tuiGetRegisterRawValue (
+ dataElement->itemNo, rawBuf, frame) == TUI_SUCCESS)
+ {
+ int size = DEPRECATED_REGISTER_RAW_SIZE (dataElement->itemNo);
+
+ for (i = 0; (i < size && !hasChanged); i++)
+ hasChanged = (((char *) dataElement->value)[i] != rawBuf[i]);
+ if (hasChanged && newValue != (char *) NULL)
+ {
+ for (i = 0; i < size; i++)
+ newValue[i] = rawBuf[i];
+ }
+ }
+ }
+ return hasChanged;
+} /* _tuiRegValueHasChanged */
+
+
+
+/*
+ ** _tuiGetRegisterRawValue().
+ ** Get the register raw value. The raw value is returned in regValue.
+ */
+static TuiStatus
+_tuiGetRegisterRawValue (int regNum, char *regValue, struct frame_info *frame)
+{
+ TuiStatus ret = TUI_FAILURE;
+
+ if (target_has_registers)
+ {
+ get_frame_register (frame, regNum, regValue);
+ /* NOTE: cagney/2003-03-13: This is bogus. It is refering to
+ the register cache and not the frame which could have pulled
+ the register value off the stack. */
+ if (register_cached (regNum) >= 0)
+ ret = TUI_SUCCESS;
+ }
+ return ret;
+} /* _tuiGetRegisterRawValue */
+
+
+
+/*
+ ** _tuiSetRegisterElement().
+ ** Function to initialize a data element with the input and
+ ** the register value.
+ */
+static void
+_tuiSetRegisterElement (int regNum, struct frame_info *frame,
+ TuiDataElementPtr dataElement,
+ int refreshValueOnly)
+{
+ if (dataElement != (TuiDataElementPtr) NULL)
+ {
+ if (!refreshValueOnly)
+ {
+ dataElement->itemNo = regNum;
+ dataElement->name = _tuiRegisterName (regNum);
+ dataElement->highlight = FALSE;
+ }
+ if (dataElement->value == (Opaque) NULL)
+ dataElement->value = (Opaque) xmalloc (MAX_REGISTER_SIZE);
+ if (dataElement->value != (Opaque) NULL)
+ _tuiGetRegisterRawValue (regNum, dataElement->value, frame);
+ }
+
+ return;
+} /* _tuiSetRegisterElement */
+
+
+/*
+ ** _tuiSetRegsContent().
+ ** Set the content of the data window to consist of the registers
+ ** numbered from startRegNum to endRegNum. Note that if
+ ** refreshValuesOnly is TRUE, startRegNum and endRegNum are ignored.
+ */
+static TuiStatus
+_tuiSetRegsContent (int startRegNum, int endRegNum,
+ struct frame_info *frame,
+ TuiRegisterDisplayType dpyType,
+ int refreshValuesOnly)
+{
+ TuiStatus ret = TUI_FAILURE;
+ int numRegs = endRegNum - startRegNum + 1;
+ int allocatedHere = FALSE;
+
+ if (dataWin->detail.dataDisplayInfo.regsContentCount > 0 &&
+ !refreshValuesOnly)
+ {
+ freeDataContent (dataWin->detail.dataDisplayInfo.regsContent,
+ dataWin->detail.dataDisplayInfo.regsContentCount);
+ dataWin->detail.dataDisplayInfo.regsContentCount = 0;
+ }
+ if (dataWin->detail.dataDisplayInfo.regsContentCount <= 0)
+ {
+ dataWin->detail.dataDisplayInfo.regsContent =
+ allocContent (numRegs, DATA_WIN);
+ allocatedHere = TRUE;
+ }
+
+ if (dataWin->detail.dataDisplayInfo.regsContent != (TuiWinContent) NULL)
+ {
+ int i;
+
+ if (!refreshValuesOnly || allocatedHere)
+ {
+ dataWin->generic.content = (OpaquePtr) NULL;
+ dataWin->generic.contentSize = 0;
+ addContentElements (&dataWin->generic, numRegs);
+ dataWin->detail.dataDisplayInfo.regsContent =
+ (TuiWinContent) dataWin->generic.content;
+ dataWin->detail.dataDisplayInfo.regsContentCount = numRegs;
+ }
+ /*
+ ** Now set the register names and values
+ */
+ for (i = startRegNum; (i <= endRegNum); i++)
+ {
+ TuiGenWinInfoPtr dataItemWin;
+
+ dataItemWin = &dataWin->detail.dataDisplayInfo.
+ regsContent[i - startRegNum]->whichElement.dataWindow;
+ _tuiSetRegisterElement (
+ i,
+ frame,
+ &((TuiWinElementPtr) dataItemWin->content[0])->whichElement.data,
+ !allocatedHere && refreshValuesOnly);
+ }
+ dataWin->detail.dataDisplayInfo.regsColumnCount =
+ tui_calculate_regs_column_count (dpyType);
+#ifdef LATER
+ if (dataWin->detail.dataDisplayInfo.dataContentCount > 0)
+ {
+ /* delete all the windows? */
+ /* realloc content equal to dataContentCount + regsContentCount */
+ /* append dataWin->detail.dataDisplayInfo.dataContent to content */
+ }
+#endif
+ dataWin->generic.contentSize =
+ dataWin->detail.dataDisplayInfo.regsContentCount +
+ dataWin->detail.dataDisplayInfo.dataContentCount;
+ ret = TUI_SUCCESS;
+ }
+
+ return ret;
+} /* _tuiSetRegsContent */
+
+
+/*
+ ** _tuiDisplayRegister().
+ ** Function to display a register in a window. If hilite is TRUE,
+ ** than the value will be displayed in reverse video
+ */
+static void
+_tuiDisplayRegister (int regNum,
+ TuiGenWinInfoPtr winInfo, /* the data item window */
+ enum precision_type precision)
+{
+ if (winInfo->handle != (WINDOW *) NULL)
+ {
+ int i;
+ char buf[40];
+ int valueCharsWide, labelWidth;
+ TuiDataElementPtr dataElementPtr = &((TuiWinContent)
+ winInfo->content)[0]->whichElement.data;
+
+ if (IS_64BIT ||
+ dataWin->detail.dataDisplayInfo.regsDisplayType == TUI_DFLOAT_REGS)
+ {
+ valueCharsWide = DOUBLE_FLOAT_VALUE_WIDTH;
+ labelWidth = DOUBLE_FLOAT_LABEL_WIDTH;
+ }
+ else
+ {
+ if (dataWin->detail.dataDisplayInfo.regsDisplayType ==
+ TUI_SFLOAT_REGS)
+ {
+ valueCharsWide = SINGLE_FLOAT_VALUE_WIDTH;
+ labelWidth = SINGLE_FLOAT_LABEL_WIDTH;
+ }
+ else
+ {
+ valueCharsWide = SINGLE_VALUE_WIDTH;
+ labelWidth = SINGLE_LABEL_WIDTH;
+ }
+ }
+
+ buf[0] = (char) 0;
+ _tuiRegisterFormat (buf,
+ valueCharsWide + labelWidth,
+ regNum,
+ dataElementPtr,
+ precision);
+
+ if (dataElementPtr->highlight)
+ wstandout (winInfo->handle);
+
+ wmove (winInfo->handle, 0, 0);
+ for (i = 1; i < winInfo->width; i++)
+ waddch (winInfo->handle, ' ');
+ wmove (winInfo->handle, 0, 0);
+ waddstr (winInfo->handle, buf);
+
+ if (dataElementPtr->highlight)
+ wstandend (winInfo->handle);
+ tuiRefreshWin (winInfo);
+ }
+ return;
+} /* _tuiDisplayRegister */
+
+
+static void
+_tui_vShowRegisters_commandSupport (TuiRegisterDisplayType dpyType)
+{
+
+ if (m_winPtrNotNull (dataWin) && dataWin->generic.isVisible)
+ { /* Data window already displayed, show the registers */
+ if (dataWin->detail.dataDisplayInfo.regsDisplayType != dpyType)
+ tui_show_registers (dpyType);
+ }
+ else
+ (tuiLayoutDef ())->regsDisplayType = dpyType;
+
+ return;
+} /* _tui_vShowRegisters_commandSupport */
+
+
+static void
+_tuiShowFloat_command (char *arg, int fromTTY)
+{
+ if (m_winPtrIsNull (dataWin) || !dataWin->generic.isVisible ||
+ (dataWin->detail.dataDisplayInfo.regsDisplayType != TUI_SFLOAT_REGS &&
+ dataWin->detail.dataDisplayInfo.regsDisplayType != TUI_DFLOAT_REGS))
+ _tui_vShowRegisters_commandSupport ((tuiLayoutDef ())->floatRegsDisplayType);
+
+ return;
+} /* _tuiShowFloat_command */
+
+
+static void
+_tuiShowGeneral_command (char *arg, int fromTTY)
+{
+ _tui_vShowRegisters_commandSupport (TUI_GENERAL_REGS);
+}
+
+
+static void
+_tuiShowSpecial_command (char *arg, int fromTTY)
+{
+ _tui_vShowRegisters_commandSupport (TUI_SPECIAL_REGS);
+}
+
+
+static void
+_tuiToggleFloatRegs_command (char *arg, int fromTTY)
+{
+ if (m_winPtrNotNull (dataWin) && dataWin->generic.isVisible)
+ tuiToggleFloatRegs ();
+ else
+ {
+ TuiLayoutDefPtr layoutDef = tuiLayoutDef ();
+
+ if (layoutDef->floatRegsDisplayType == TUI_SFLOAT_REGS)
+ layoutDef->floatRegsDisplayType = TUI_DFLOAT_REGS;
+ else
+ layoutDef->floatRegsDisplayType = TUI_SFLOAT_REGS;
+ }
+
+
+ return;
+} /* _tuiToggleFloatRegs_command */
+
+
+static void
+_tuiScrollRegsForward_command (char *arg, int fromTTY)
+{
+ tui_scroll (FORWARD_SCROLL, dataWin, 1);
+}
+
+
+static void
+_tuiScrollRegsBackward_command (char *arg, int fromTTY)
+{
+ tui_scroll (BACKWARD_SCROLL, dataWin, 1);
+}
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
new file mode 100644
index 00000000000..19703a2ccbc
--- /dev/null
+++ b/gdb/tui/tui-regs.h
@@ -0,0 +1,41 @@
+/* TUI display registers in window.
+
+ Copyright 1998, 1999, 2000, 2001, 2004 Free Software Foundation,
+ Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef TUI_REGS_H
+#define TUI_REGS_H
+
+#include "tui/tui-data.h" /* For TuiRegisterDisplayType. */
+
+extern void tui_check_register_values (struct frame_info *);
+extern void tui_show_registers (enum tui_register_display_type);
+extern void tui_display_registers_from (int);
+extern int tui_display_registers_from_line (int, int);
+extern int tui_last_regs_line_no (void);
+extern int tui_first_reg_element_inline (int);
+extern int tui_line_from_reg_element_no (int);
+extern void tui_toggle_float_regs (void);
+extern int tui_calculate_regs_column_count (enum tui_register_display_type);
+extern int tui_first_reg_element_no_inline (int lineno);
+
+#endif
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
new file mode 100644
index 00000000000..f2d3762f8cd
--- /dev/null
+++ b/gdb/tui/tui-source.c
@@ -0,0 +1,356 @@
+/* TUI display source window.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation,
+ Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include <ctype.h>
+#include "symtab.h"
+#include "frame.h"
+#include "breakpoint.h"
+#include "source.h"
+#include "symtab.h"
+
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-stack.h"
+#include "tui/tui-winsource.h"
+#include "tui/tui-source.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+/* Function to display source in the source window. */
+TuiStatus
+tuiSetSourceContent (struct symtab *s, int lineNo, int noerror)
+{
+ TuiStatus ret = TUI_FAILURE;
+
+ if (s != (struct symtab *) NULL && s->filename != (char *) NULL)
+ {
+ register FILE *stream;
+ register int i, desc, c, lineWidth, nlines;
+ register char *srcLine = 0;
+
+ if ((ret = tuiAllocSourceBuffer (srcWin)) == TUI_SUCCESS)
+ {
+ lineWidth = srcWin->generic.width - 1;
+ /* Take hilite (window border) into account, when calculating
+ the number of lines */
+ nlines = (lineNo + (srcWin->generic.height - 2)) - lineNo;
+ desc = open_source_file (s);
+ if (desc < 0)
+ {
+ if (!noerror)
+ {
+ char *name = alloca (strlen (s->filename) + 100);
+ sprintf (name, "%s:%d", s->filename, lineNo);
+ print_sys_errmsg (name, errno);
+ }
+ ret = TUI_FAILURE;
+ }
+ else
+ {
+ if (s->line_charpos == 0)
+ find_source_lines (s, desc);
+
+ if (lineNo < 1 || lineNo > s->nlines)
+ {
+ close (desc);
+ printf_unfiltered (
+ "Line number %d out of range; %s has %d lines.\n",
+ lineNo, s->filename, s->nlines);
+ }
+ else if (lseek (desc, s->line_charpos[lineNo - 1], 0) < 0)
+ {
+ close (desc);
+ perror_with_name (s->filename);
+ }
+ else
+ {
+ register int offset, curLineNo, curLine, curLen, threshold;
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+ TuiSourceInfoPtr src = &srcWin->detail.sourceInfo;
+
+ if (srcWin->generic.title)
+ xfree (srcWin->generic.title);
+ srcWin->generic.title = xstrdup (s->filename);
+
+ if (src->filename)
+ xfree (src->filename);
+ src->filename = xstrdup (s->filename);
+
+ /* Determine the threshold for the length of the line
+ and the offset to start the display. */
+ offset = src->horizontalOffset;
+ threshold = (lineWidth - 1) + offset;
+ stream = fdopen (desc, FOPEN_RT);
+ clearerr (stream);
+ curLine = 0;
+ curLineNo = src->startLineOrAddr.lineNo = lineNo;
+ if (offset > 0)
+ srcLine = (char *) xmalloc (
+ (threshold + 1) * sizeof (char));
+ while (curLine < nlines)
+ {
+ TuiWinElementPtr element = (TuiWinElementPtr)
+ srcWin->generic.content[curLine];
+
+ /* get the first character in the line */
+ c = fgetc (stream);
+
+ if (offset == 0)
+ srcLine = ((TuiWinElementPtr)
+ srcWin->generic.content[
+ curLine])->whichElement.source.line;
+ /* Init the line with the line number */
+ sprintf (srcLine, "%-6d", curLineNo);
+ curLen = strlen (srcLine);
+ i = curLen -
+ ((curLen / tuiDefaultTabLen ()) * tuiDefaultTabLen ());
+ while (i < tuiDefaultTabLen ())
+ {
+ srcLine[curLen] = ' ';
+ i++;
+ curLen++;
+ }
+ srcLine[curLen] = (char) 0;
+
+ /* Set whether element is the execution point and
+ whether there is a break point on it. */
+ element->whichElement.source.lineOrAddr.lineNo =
+ curLineNo;
+ element->whichElement.source.isExecPoint =
+ (strcmp (((TuiWinElementPtr)
+ locator->content[0])->whichElement.locator.fileName,
+ s->filename) == 0
+ && curLineNo == ((TuiWinElementPtr)
+ locator->content[0])->whichElement.locator.lineNo);
+ if (c != EOF)
+ {
+ i = strlen (srcLine) - 1;
+ do
+ {
+ if ((c != '\n') &&
+ (c != '\r') && (++i < threshold))
+ {
+ if (c < 040 && c != '\t')
+ {
+ srcLine[i++] = '^';
+ srcLine[i] = c + 0100;
+ }
+ else if (c == 0177)
+ {
+ srcLine[i++] = '^';
+ srcLine[i] = '?';
+ }
+ else
+ { /* Store the charcter in the line
+ buffer. If it is a tab, then
+ translate to the correct number of
+ chars so we don't overwrite our
+ buffer. */
+ if (c == '\t')
+ {
+ int j, maxTabLen = tuiDefaultTabLen ();
+
+ for (j = i - (
+ (i / maxTabLen) * maxTabLen);
+ ((j < maxTabLen) &&
+ i < threshold);
+ i++, j++)
+ srcLine[i] = ' ';
+ i--;
+ }
+ else
+ srcLine[i] = c;
+ }
+ srcLine[i + 1] = 0;
+ }
+ else
+ { /* If we have not reached EOL, then eat
+ chars until we do */
+ while (c != EOF && c != '\n' && c != '\r')
+ c = fgetc (stream);
+ }
+ }
+ while (c != EOF && c != '\n' && c != '\r' &&
+ i < threshold && (c = fgetc (stream)));
+ }
+ /* Now copy the line taking the offset into account */
+ if (strlen (srcLine) > offset)
+ strcpy (((TuiWinElementPtr) srcWin->generic.content[
+ curLine])->whichElement.source.line,
+ &srcLine[offset]);
+ else
+ ((TuiWinElementPtr)
+ srcWin->generic.content[
+ curLine])->whichElement.source.line[0] = (char) 0;
+ curLine++;
+ curLineNo++;
+ }
+ if (offset > 0)
+ tuiFree (srcLine);
+ fclose (stream);
+ srcWin->generic.contentSize = nlines;
+ ret = TUI_SUCCESS;
+ }
+ }
+ }
+ }
+ return ret;
+}
+
+
+/* elz: this function sets the contents of the source window to empty
+ except for a line in the middle with a warning message about the
+ source not being available. This function is called by
+ tuiEraseSourceContents, which in turn is invoked when the source files
+ cannot be accessed */
+
+void
+tuiSetSourceContentNil (TuiWinInfoPtr winInfo, char *warning_string)
+{
+ int lineWidth;
+ int nLines;
+ int curr_line = 0;
+
+ lineWidth = winInfo->generic.width - 1;
+ nLines = winInfo->generic.height - 2;
+
+ /* set to empty each line in the window, except for the one
+ which contains the message */
+ while (curr_line < winInfo->generic.contentSize)
+ {
+ /* set the information related to each displayed line
+ to null: i.e. the line number is 0, there is no bp,
+ it is not where the program is stopped */
+
+ TuiWinElementPtr element =
+ (TuiWinElementPtr) winInfo->generic.content[curr_line];
+ element->whichElement.source.lineOrAddr.lineNo = 0;
+ element->whichElement.source.isExecPoint = FALSE;
+ element->whichElement.source.hasBreak = FALSE;
+
+ /* set the contents of the line to blank */
+ element->whichElement.source.line[0] = (char) 0;
+
+ /* if the current line is in the middle of the screen, then we want to
+ display the 'no source available' message in it.
+ Note: the 'weird' arithmetic with the line width and height comes from
+ the function tuiEraseSourceContent. We need to keep the screen and the
+ window's actual contents in synch */
+
+ if (curr_line == (nLines / 2 + 1))
+ {
+ int i;
+ int xpos;
+ int warning_length = strlen (warning_string);
+ char *srcLine;
+
+ srcLine = element->whichElement.source.line;
+
+ if (warning_length >= ((lineWidth - 1) / 2))
+ xpos = 1;
+ else
+ xpos = (lineWidth - 1) / 2 - warning_length;
+
+ for (i = 0; i < xpos; i++)
+ srcLine[i] = ' ';
+
+ sprintf (srcLine + i, "%s", warning_string);
+
+ for (i = xpos + warning_length; i < lineWidth; i++)
+ srcLine[i] = ' ';
+
+ srcLine[i] = '\n';
+
+ } /* end if */
+
+ curr_line++;
+
+ } /* end while */
+}
+
+
+/* Function to display source in the source window. This function
+ initializes the horizontal scroll to 0. */
+void
+tuiShowSource (struct symtab *s, TuiLineOrAddress line, int noerror)
+{
+ srcWin->detail.sourceInfo.horizontalOffset = 0;
+ tuiUpdateSourceWindowAsIs(srcWin, s, line, noerror);
+}
+
+
+/* Answer whether the source is currently displayed in the source window. */
+int
+tuiSourceIsDisplayed (char *fname)
+{
+ return (srcWin->generic.contentInUse &&
+ (strcmp (((TuiWinElementPtr) (locatorWinInfoPtr ())->
+ content[0])->whichElement.locator.fileName, fname) == 0));
+}
+
+
+/* Scroll the source forward or backward vertically. */
+void
+tuiVerticalSourceScroll (TuiScrollDirection scrollDirection,
+ int numToScroll)
+{
+ if (srcWin->generic.content != (OpaquePtr) NULL)
+ {
+ TuiLineOrAddress l;
+ struct symtab *s;
+ TuiWinContent content = (TuiWinContent) srcWin->generic.content;
+ struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+
+ if (cursal.symtab == (struct symtab *) NULL)
+ s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
+ else
+ s = cursal.symtab;
+
+ if (scrollDirection == FORWARD_SCROLL)
+ {
+ l.lineNo = content[0]->whichElement.source.lineOrAddr.lineNo +
+ numToScroll;
+ if (l.lineNo > s->nlines)
+ /*line = s->nlines - winInfo->generic.contentSize + 1; */
+ /*elz: fix for dts 23398 */
+ l.lineNo = content[0]->whichElement.source.lineOrAddr.lineNo;
+ }
+ else
+ {
+ l.lineNo = content[0]->whichElement.source.lineOrAddr.lineNo -
+ numToScroll;
+ if (l.lineNo <= 0)
+ l.lineNo = 1;
+ }
+
+ print_source_lines (s, l.lineNo, l.lineNo + 1, 0);
+ }
+}
diff --git a/gdb/tui/tui-source.h b/gdb/tui/tui-source.h
new file mode 100644
index 00000000000..96cf8652aca
--- /dev/null
+++ b/gdb/tui/tui-source.h
@@ -0,0 +1,33 @@
+/* TUI display source window.
+ Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef _TUI_SOURCE_H
+#define _TUI_SOURCE_H
+
+#include "defs.h"
+
+extern TuiStatus tuiSetSourceContent (struct symtab *, int, int);
+extern void tuiShowSource (struct symtab *, TuiLineOrAddress, int);
+extern int tuiSourceIsDisplayed (char *);
+extern void tuiVerticalSourceScroll (TuiScrollDirection, int);
+
+#endif
+/*_TUI_SOURCE_H*/
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
new file mode 100644
index 00000000000..6bf64bb4b19
--- /dev/null
+++ b/gdb/tui/tui-stack.c
@@ -0,0 +1,435 @@
+/* TUI display locator.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation,
+ Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "symtab.h"
+#include "breakpoint.h"
+#include "frame.h"
+#include "command.h"
+#include "inferior.h"
+#include "target.h"
+#include "top.h"
+
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-stack.h"
+#include "tui/tui-wingeneral.h"
+#include "tui/tui-source.h"
+#include "tui/tui-winsource.h"
+#include "tui/tui-file.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+/* Get a printable name for the function at the address.
+ The symbol name is demangled if demangling is turned on.
+ Returns a pointer to a static area holding the result. */
+static char* tui_get_function_from_frame (struct frame_info *fi);
+
+/* Set the filename portion of the locator. */
+static void tui_set_locator_filename (const char *filename);
+
+/* Update the locator, with the provided arguments. */
+static void tui_set_locator_info (const char *filename, const char *procname,
+ int lineno, CORE_ADDR addr);
+
+static void tui_update_command (char *, int);
+
+
+/* Create the status line to display as much information as we
+ can on this single line: target name, process number, current
+ function, current line, current PC, SingleKey mode. */
+static char*
+tui_make_status_line (TuiLocatorElement* loc)
+{
+ char* string;
+ char line_buf[50], *pname;
+ char* buf;
+ int status_size;
+ int i, proc_width;
+ const char* pid_name;
+ const char* pc_buf;
+ int target_width;
+ int pid_width;
+ int line_width;
+ int pc_width;
+ struct ui_file *pc_out;
+
+ if (ptid_equal (inferior_ptid, null_ptid))
+ pid_name = "No process";
+ else
+ pid_name = target_pid_to_str (inferior_ptid);
+
+ target_width = strlen (target_shortname);
+ if (target_width > MAX_TARGET_WIDTH)
+ target_width = MAX_TARGET_WIDTH;
+
+ pid_width = strlen (pid_name);
+ if (pid_width > MAX_PID_WIDTH)
+ pid_width = MAX_PID_WIDTH;
+
+ status_size = termWidth ();
+ string = (char *) xmalloc (status_size + 1);
+ buf = (char*) alloca (status_size + 1);
+
+ /* Translate line number and obtain its size. */
+ if (loc->lineNo > 0)
+ sprintf (line_buf, "%d", loc->lineNo);
+ else
+ strcpy (line_buf, "??");
+ line_width = strlen (line_buf);
+ if (line_width < MIN_LINE_WIDTH)
+ line_width = MIN_LINE_WIDTH;
+
+ /* Translate PC address. */
+ pc_out = tui_sfileopen (128);
+ print_address_numeric (loc->addr, 1, pc_out);
+ pc_buf = tui_file_get_strbuf (pc_out);
+ pc_width = strlen (pc_buf);
+
+ /* First determine the amount of proc name width we have available.
+ The +1 are for a space separator between fields.
+ The -1 are to take into account the \0 counted by sizeof. */
+ proc_width = (status_size
+ - (target_width + 1)
+ - (pid_width + 1)
+ - (sizeof (PROC_PREFIX) - 1 + 1)
+ - (sizeof (LINE_PREFIX) - 1 + line_width + 1)
+ - (sizeof (PC_PREFIX) - 1 + pc_width + 1)
+ - (tui_current_key_mode == tui_single_key_mode
+ ? (sizeof (SINGLE_KEY) - 1 + 1)
+ : 0));
+
+ /* If there is no room to print the function name, try by removing
+ some fields. */
+ if (proc_width < MIN_PROC_WIDTH)
+ {
+ proc_width += target_width + 1;
+ target_width = 0;
+ if (proc_width < MIN_PROC_WIDTH)
+ {
+ proc_width += pid_width + 1;
+ pid_width = 0;
+ if (proc_width <= MIN_PROC_WIDTH)
+ {
+ proc_width += pc_width + sizeof (PC_PREFIX) - 1 + 1;
+ pc_width = 0;
+ if (proc_width < 0)
+ {
+ proc_width += line_width + sizeof (LINE_PREFIX) - 1 + 1;
+ line_width = 0;
+ if (proc_width < 0)
+ proc_width = 0;
+ }
+ }
+ }
+ }
+
+ /* Now convert elements to string form */
+ pname = loc->procName;
+
+ /* Now create the locator line from the string version
+ of the elements. We could use sprintf() here but
+ that wouldn't ensure that we don't overrun the size
+ of the allocated buffer. strcat_to_buf() will. */
+ *string = (char) 0;
+
+ if (target_width > 0)
+ {
+ sprintf (buf, "%*.*s ",
+ -target_width, target_width, target_shortname);
+ strcat_to_buf (string, status_size, buf);
+ }
+ if (pid_width > 0)
+ {
+ sprintf (buf, "%*.*s ",
+ -pid_width, pid_width, pid_name);
+ strcat_to_buf (string, status_size, buf);
+ }
+
+ /* Show whether we are in SingleKey mode. */
+ if (tui_current_key_mode == tui_single_key_mode)
+ {
+ strcat_to_buf (string, status_size, SINGLE_KEY);
+ strcat_to_buf (string, status_size, " ");
+ }
+
+ /* procedure/class name */
+ if (proc_width > 0)
+ {
+ if (strlen (pname) > proc_width)
+ sprintf (buf, "%s%*.*s* ", PROC_PREFIX,
+ 1 - proc_width, proc_width - 1, pname);
+ else
+ sprintf (buf, "%s%*.*s ", PROC_PREFIX,
+ -proc_width, proc_width, pname);
+ strcat_to_buf (string, status_size, buf);
+ }
+
+ if (line_width > 0)
+ {
+ sprintf (buf, "%s%*.*s ", LINE_PREFIX,
+ -line_width, line_width, line_buf);
+ strcat_to_buf (string, status_size, buf);
+ }
+ if (pc_width > 0)
+ {
+ strcat_to_buf (string, status_size, PC_PREFIX);
+ strcat_to_buf (string, status_size, pc_buf);
+ }
+
+
+ for (i = strlen (string); i < status_size; i++)
+ string[i] = ' ';
+ string[status_size] = (char) 0;
+
+ ui_file_delete (pc_out);
+ return string;
+}
+
+/* Get a printable name for the function at the address.
+ The symbol name is demangled if demangling is turned on.
+ Returns a pointer to a static area holding the result. */
+static char*
+tui_get_function_from_frame (struct frame_info *fi)
+{
+ static char name[256];
+ struct ui_file *stream = tui_sfileopen (256);
+ char *p;
+
+ print_address_symbolic (get_frame_pc (fi), stream, demangle, "");
+ p = tui_file_get_strbuf (stream);
+
+ /* Use simple heuristics to isolate the function name. The symbol can
+ be demangled and we can have function parameters. Remove them because
+ the status line is too short to display them. */
+ if (*p == '<')
+ p++;
+ strncpy (name, p, sizeof (name));
+ p = strchr (name, '(');
+ if (!p)
+ p = strchr (name, '>');
+ if (p)
+ *p = 0;
+ p = strchr (name, '+');
+ if (p)
+ *p = 0;
+ ui_file_delete (stream);
+ return name;
+}
+
+/*
+ ** tuiShowLocatorContent()
+ */
+void
+tuiShowLocatorContent (void)
+{
+ char *string;
+ TuiGenWinInfoPtr locator;
+
+ locator = locatorWinInfoPtr ();
+
+ if (m_genWinPtrNotNull (locator) && locator->handle != (WINDOW *) NULL)
+ {
+ TuiWinElementPtr element;
+
+ element = (TuiWinElementPtr) locator->content[0];
+
+ string = tui_make_status_line (&element->whichElement.locator);
+ wmove (locator->handle, 0, 0);
+ wstandout (locator->handle);
+ waddstr (locator->handle, string);
+ wclrtoeol (locator->handle);
+ wstandend (locator->handle);
+ tuiRefreshWin (locator);
+ wmove (locator->handle, 0, 0);
+ xfree (string);
+ locator->contentInUse = TRUE;
+ }
+}
+
+
+/* Set the filename portion of the locator. */
+static void
+tui_set_locator_filename (const char *filename)
+{
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+ TuiLocatorElementPtr element;
+
+ if (locator->content[0] == (Opaque) NULL)
+ {
+ tui_set_locator_info (filename, NULL, 0, 0);
+ return;
+ }
+
+ element = &((TuiWinElementPtr) locator->content[0])->whichElement.locator;
+ element->fileName[0] = 0;
+ strcat_to_buf (element->fileName, MAX_LOCATOR_ELEMENT_LEN, filename);
+}
+
+/* Update the locator, with the provided arguments. */
+static void
+tui_set_locator_info (const char *filename, const char *procname, int lineno,
+ CORE_ADDR addr)
+{
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+ TuiLocatorElementPtr element;
+
+ /* Allocate the locator content if necessary. */
+ if (locator->contentSize <= 0)
+ {
+ locator->content = (OpaquePtr) allocContent (1, locator->type);
+ locator->contentSize = 1;
+ }
+
+ element = &((TuiWinElementPtr) locator->content[0])->whichElement.locator;
+ element->procName[0] = (char) 0;
+ strcat_to_buf (element->procName, MAX_LOCATOR_ELEMENT_LEN, procname);
+ element->lineNo = lineno;
+ element->addr = addr;
+ tui_set_locator_filename (filename);
+}
+
+/* Update only the filename portion of the locator. */
+void
+tuiUpdateLocatorFilename (const char *filename)
+{
+ tui_set_locator_filename (filename);
+ tuiShowLocatorContent ();
+}
+
+/* Function to print the frame information for the TUI. */
+void
+tuiShowFrameInfo (struct frame_info *fi)
+{
+ TuiWinInfoPtr winInfo;
+ register int i;
+
+ if (fi)
+ {
+ register int startLine, i;
+ CORE_ADDR low;
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+ int sourceAlreadyDisplayed;
+ struct symtab_and_line sal;
+
+ find_frame_sal (fi, &sal);
+
+ sourceAlreadyDisplayed = sal.symtab != 0
+ && tuiSourceIsDisplayed (sal.symtab->filename);
+ tui_set_locator_info (sal.symtab == 0 ? "??" : sal.symtab->filename,
+ tui_get_function_from_frame (fi),
+ sal.line,
+ get_frame_pc (fi));
+ tuiShowLocatorContent ();
+ startLine = 0;
+ for (i = 0; i < (sourceWindows ())->count; i++)
+ {
+ TuiWhichElement *item;
+ winInfo = (TuiWinInfoPtr) (sourceWindows ())->list[i];
+
+ item = &((TuiWinElementPtr) locator->content[0])->whichElement;
+ if (winInfo == srcWin)
+ {
+ startLine = (item->locator.lineNo -
+ (winInfo->generic.viewportHeight / 2)) + 1;
+ if (startLine <= 0)
+ startLine = 1;
+ }
+ else
+ {
+ if (find_pc_partial_function (get_frame_pc (fi), (char **) NULL,
+ &low, (CORE_ADDR) NULL) == 0)
+ error ("No function contains program counter for selected frame.\n");
+ else
+ low = tuiGetLowDisassemblyAddress (low, get_frame_pc (fi));
+ }
+
+ if (winInfo == srcWin)
+ {
+ TuiLineOrAddress l;
+ l.lineNo = startLine;
+ if (!(sourceAlreadyDisplayed
+ && tuiLineIsDisplayed (item->locator.lineNo, winInfo, TRUE)))
+ tuiUpdateSourceWindow (winInfo, sal.symtab, l, TRUE);
+ else
+ {
+ l.lineNo = item->locator.lineNo;
+ tuiSetIsExecPointAt (l, winInfo);
+ }
+ }
+ else
+ {
+ if (winInfo == disassemWin)
+ {
+ TuiLineOrAddress a;
+ a.addr = low;
+ if (!tuiAddrIsDisplayed (item->locator.addr, winInfo, TRUE))
+ tuiUpdateSourceWindow (winInfo, sal.symtab, a, TRUE);
+ else
+ {
+ a.addr = item->locator.addr;
+ tuiSetIsExecPointAt (a, winInfo);
+ }
+ }
+ }
+ tuiUpdateExecInfo (winInfo);
+ }
+ }
+ else
+ {
+ tui_set_locator_info (NULL, NULL, 0, (CORE_ADDR) 0);
+ tuiShowLocatorContent ();
+ for (i = 0; i < (sourceWindows ())->count; i++)
+ {
+ winInfo = (TuiWinInfoPtr) (sourceWindows ())->list[i];
+ tuiClearSourceContent (winInfo, EMPTY_SOURCE_PROMPT);
+ tuiUpdateExecInfo (winInfo);
+ }
+ }
+}
+
+/* Function to initialize gdb commands, for tui window stack manipulation. */
+void
+_initialize_tuiStack (void)
+{
+ add_com ("update", class_tui, tui_update_command,
+ "Update the source window and locator to display the current "
+ "execution point.\n");
+}
+
+/* Command to update the display with the current execution point. */
+static void
+tui_update_command (char *arg, int from_tty)
+{
+ char cmd[sizeof("frame 0")];
+
+ strcpy (cmd, "frame 0");
+ execute_command (cmd, from_tty);
+}
diff --git a/gdb/tui/tui-stack.h b/gdb/tui/tui-stack.h
new file mode 100644
index 00000000000..14be4974bed
--- /dev/null
+++ b/gdb/tui/tui-stack.h
@@ -0,0 +1,33 @@
+/* TUI display locator.
+ Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef _TUI_STACK_H
+#define _TUI_STACK_H
+/*
+ ** This header file supports
+ */
+
+extern void tuiUpdateLocatorFilename (const char *);
+extern void tuiShowLocatorContent (void);
+extern void tuiShowFrameInfo (struct frame_info *);
+
+#endif
+/*_TUI_STACK_H*/
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
new file mode 100644
index 00000000000..a7d35ce93f4
--- /dev/null
+++ b/gdb/tui/tui-win.c
@@ -0,0 +1,1615 @@
+/* TUI window generic functions.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* This module contains procedures for handling tui window functions
+ like resize, scrolling, scrolling, changing focus, etc.
+
+ Author: Susan B. Macchia */
+
+#include "defs.h"
+#include "command.h"
+#include "symtab.h"
+#include "breakpoint.h"
+#include "frame.h"
+#include "cli/cli-cmds.h"
+#include "top.h"
+#include "source.h"
+
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-wingeneral.h"
+#include "tui/tui-stack.h"
+#include "tui/tui-regs.h"
+#include "tui/tui-disasm.h"
+#include "tui/tui-source.h"
+#include "tui/tui-winsource.h"
+#include "tui/tui-windata.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+#include <string.h>
+#include <ctype.h>
+#include <readline/readline.h>
+
+/*******************************
+** Static Local Decls
+********************************/
+static void _makeVisibleWithNewHeight (TuiWinInfoPtr);
+static void _makeInvisibleAndSetNewHeight (TuiWinInfoPtr, int);
+static TuiStatus _tuiAdjustWinHeights (TuiWinInfoPtr, int);
+static int _newHeightOk (TuiWinInfoPtr, int);
+static void _tuiSetTabWidth_command (char *, int);
+static void _tuiRefreshAll_command (char *, int);
+static void _tuiSetWinHeight_command (char *, int);
+static void _tuiXDBsetWinHeight_command (char *, int);
+static void _tuiAllWindowsInfo (char *, int);
+static void _tuiSetFocus_command (char *, int);
+static void _tuiScrollForward_command (char *, int);
+static void _tuiScrollBackward_command (char *, int);
+static void _tuiScrollLeft_command (char *, int);
+static void _tuiScrollRight_command (char *, int);
+static void _parseScrollingArgs (char *, TuiWinInfoPtr *, int *);
+
+
+/***************************************
+** DEFINITIONS
+***************************************/
+#define WIN_HEIGHT_USAGE "Usage: winheight <win_name> [+ | -] <#lines>\n"
+#define XDBWIN_HEIGHT_USAGE "Usage: w <#lines>\n"
+#define FOCUS_USAGE "Usage: focus {<win> | next | prev}\n"
+
+/***************************************
+** PUBLIC FUNCTIONS
+***************************************/
+
+#ifndef ACS_LRCORNER
+# define ACS_LRCORNER '+'
+#endif
+#ifndef ACS_LLCORNER
+# define ACS_LLCORNER '+'
+#endif
+#ifndef ACS_ULCORNER
+# define ACS_ULCORNER '+'
+#endif
+#ifndef ACS_URCORNER
+# define ACS_URCORNER '+'
+#endif
+#ifndef ACS_HLINE
+# define ACS_HLINE '-'
+#endif
+#ifndef ACS_VLINE
+# define ACS_VLINE '|'
+#endif
+
+/* Possible values for tui-border-kind variable. */
+static const char *tui_border_kind_enums[] = {
+ "space",
+ "ascii",
+ "acs",
+ NULL
+};
+
+/* Possible values for tui-border-mode and tui-active-border-mode. */
+static const char *tui_border_mode_enums[] = {
+ "normal",
+ "standout",
+ "reverse",
+ "half",
+ "half-standout",
+ "bold",
+ "bold-standout",
+ NULL
+};
+
+struct tui_translate
+{
+ const char *name;
+ int value;
+};
+
+/* Translation table for border-mode variables.
+ The list of values must be terminated by a NULL.
+ After the NULL value, an entry defines the default. */
+struct tui_translate tui_border_mode_translate[] = {
+ { "normal", A_NORMAL },
+ { "standout", A_STANDOUT },
+ { "reverse", A_REVERSE },
+ { "half", A_DIM },
+ { "half-standout", A_DIM | A_STANDOUT },
+ { "bold", A_BOLD },
+ { "bold-standout", A_BOLD | A_STANDOUT },
+ { 0, 0 },
+ { "normal", A_NORMAL }
+};
+
+/* Translation tables for border-kind, one for each border
+ character (see wborder, border curses operations).
+ -1 is used to indicate the ACS because ACS characters
+ are determined at run time by curses (depends on terminal). */
+struct tui_translate tui_border_kind_translate_vline[] = {
+ { "space", ' ' },
+ { "ascii", '|' },
+ { "acs", -1 },
+ { 0, 0 },
+ { "ascii", '|' }
+};
+
+struct tui_translate tui_border_kind_translate_hline[] = {
+ { "space", ' ' },
+ { "ascii", '-' },
+ { "acs", -1 },
+ { 0, 0 },
+ { "ascii", '-' }
+};
+
+struct tui_translate tui_border_kind_translate_ulcorner[] = {
+ { "space", ' ' },
+ { "ascii", '+' },
+ { "acs", -1 },
+ { 0, 0 },
+ { "ascii", '+' }
+};
+
+struct tui_translate tui_border_kind_translate_urcorner[] = {
+ { "space", ' ' },
+ { "ascii", '+' },
+ { "acs", -1 },
+ { 0, 0 },
+ { "ascii", '+' }
+};
+
+struct tui_translate tui_border_kind_translate_llcorner[] = {
+ { "space", ' ' },
+ { "ascii", '+' },
+ { "acs", -1 },
+ { 0, 0 },
+ { "ascii", '+' }
+};
+
+struct tui_translate tui_border_kind_translate_lrcorner[] = {
+ { "space", ' ' },
+ { "ascii", '+' },
+ { "acs", -1 },
+ { 0, 0 },
+ { "ascii", '+' }
+};
+
+
+/* Tui configuration variables controlled with set/show command. */
+const char *tui_active_border_mode = "bold-standout";
+const char *tui_border_mode = "normal";
+const char *tui_border_kind = "acs";
+
+/* Tui internal configuration variables. These variables are
+ updated by tui_update_variables to reflect the tui configuration
+ variables. */
+chtype tui_border_vline;
+chtype tui_border_hline;
+chtype tui_border_ulcorner;
+chtype tui_border_urcorner;
+chtype tui_border_llcorner;
+chtype tui_border_lrcorner;
+
+int tui_border_attrs;
+int tui_active_border_attrs;
+
+/* Identify the item in the translation table.
+ When the item is not recognized, use the default entry. */
+static struct tui_translate *
+translate (const char *name, struct tui_translate *table)
+{
+ while (table->name)
+ {
+ if (name && strcmp (table->name, name) == 0)
+ return table;
+ table++;
+ }
+
+ /* Not found, return default entry. */
+ table++;
+ return table;
+}
+
+/* Update the tui internal configuration according to gdb settings.
+ Returns 1 if the configuration has changed and the screen should
+ be redrawn. */
+int
+tui_update_variables ()
+{
+ int need_redraw = 0;
+ struct tui_translate *entry;
+
+ entry = translate (tui_border_mode, tui_border_mode_translate);
+ if (tui_border_attrs != entry->value)
+ {
+ tui_border_attrs = entry->value;
+ need_redraw = 1;
+ }
+ entry = translate (tui_active_border_mode, tui_border_mode_translate);
+ if (tui_active_border_attrs != entry->value)
+ {
+ tui_active_border_attrs = entry->value;
+ need_redraw = 1;
+ }
+
+ /* If one corner changes, all characters are changed.
+ Only check the first one. The ACS characters are determined at
+ run time by curses terminal management. */
+ entry = translate (tui_border_kind, tui_border_kind_translate_lrcorner);
+ if (tui_border_lrcorner != (chtype) entry->value)
+ {
+ tui_border_lrcorner = (entry->value < 0) ? ACS_LRCORNER : entry->value;
+ need_redraw = 1;
+ }
+ entry = translate (tui_border_kind, tui_border_kind_translate_llcorner);
+ tui_border_llcorner = (entry->value < 0) ? ACS_LLCORNER : entry->value;
+
+ entry = translate (tui_border_kind, tui_border_kind_translate_ulcorner);
+ tui_border_ulcorner = (entry->value < 0) ? ACS_ULCORNER : entry->value;
+
+ entry = translate (tui_border_kind, tui_border_kind_translate_urcorner);
+ tui_border_urcorner = (entry->value < 0) ? ACS_URCORNER : entry->value;
+
+ entry = translate (tui_border_kind, tui_border_kind_translate_hline);
+ tui_border_hline = (entry->value < 0) ? ACS_HLINE : entry->value;
+
+ entry = translate (tui_border_kind, tui_border_kind_translate_vline);
+ tui_border_vline = (entry->value < 0) ? ACS_VLINE : entry->value;
+
+ return need_redraw;
+}
+
+static void
+set_tui_cmd (char *args, int from_tty)
+{
+}
+
+static void
+show_tui_cmd (char *args, int from_tty)
+{
+}
+
+/*
+ ** _initialize_tuiWin().
+ ** Function to initialize gdb commands, for tui window manipulation.
+ */
+void
+_initialize_tuiWin (void)
+{
+ struct cmd_list_element *c;
+ static struct cmd_list_element *tui_setlist;
+ static struct cmd_list_element *tui_showlist;
+
+ /* Define the classes of commands.
+ They will appear in the help list in the reverse of this order. */
+ add_cmd ("tui", class_tui, NULL,
+ "Text User Interface commands.",
+ &cmdlist);
+
+ add_prefix_cmd ("tui", class_tui, set_tui_cmd,
+ "TUI configuration variables",
+ &tui_setlist, "set tui ",
+ 0/*allow-unknown*/, &setlist);
+ add_prefix_cmd ("tui", class_tui, show_tui_cmd,
+ "TUI configuration variables",
+ &tui_showlist, "show tui ",
+ 0/*allow-unknown*/, &showlist);
+
+ add_com ("refresh", class_tui, _tuiRefreshAll_command,
+ "Refresh the terminal display.\n");
+ if (xdb_commands)
+ add_com_alias ("U", "refresh", class_tui, 0);
+ add_com ("tabset", class_tui, _tuiSetTabWidth_command,
+ "Set the width (in characters) of tab stops.\n\
+Usage: tabset <n>\n");
+ add_com ("winheight", class_tui, _tuiSetWinHeight_command,
+ "Set the height of a specified window.\n\
+Usage: winheight <win_name> [+ | -] <#lines>\n\
+Window names are:\n\
+src : the source window\n\
+cmd : the command window\n\
+asm : the disassembly window\n\
+regs : the register display\n");
+ add_com_alias ("wh", "winheight", class_tui, 0);
+ add_info ("win", _tuiAllWindowsInfo,
+ "List of all displayed windows.\n");
+ add_com ("focus", class_tui, _tuiSetFocus_command,
+ "Set focus to named window or next/prev window.\n\
+Usage: focus {<win> | next | prev}\n\
+Valid Window names are:\n\
+src : the source window\n\
+asm : the disassembly window\n\
+regs : the register display\n\
+cmd : the command window\n");
+ add_com_alias ("fs", "focus", class_tui, 0);
+ add_com ("+", class_tui, _tuiScrollForward_command,
+ "Scroll window forward.\nUsage: + [win] [n]\n");
+ add_com ("-", class_tui, _tuiScrollBackward_command,
+ "Scroll window backward.\nUsage: - [win] [n]\n");
+ add_com ("<", class_tui, _tuiScrollLeft_command,
+ "Scroll window forward.\nUsage: < [win] [n]\n");
+ add_com (">", class_tui, _tuiScrollRight_command,
+ "Scroll window backward.\nUsage: > [win] [n]\n");
+ if (xdb_commands)
+ add_com ("w", class_xdb, _tuiXDBsetWinHeight_command,
+ "XDB compatibility command for setting the height of a command window.\n\
+Usage: w <#lines>\n");
+
+ /* Define the tui control variables. */
+ c = add_set_enum_cmd
+ ("border-kind", no_class,
+ tui_border_kind_enums, &tui_border_kind,
+ "Set the kind of border for TUI windows.\n"
+ "This variable controls the border of TUI windows:\n"
+ "space use a white space\n"
+ "ascii use ascii characters + - | for the border\n"
+ "acs use the Alternate Character Set\n",
+ &tui_setlist);
+ add_show_from_set (c, &tui_showlist);
+
+ c = add_set_enum_cmd
+ ("border-mode", no_class,
+ tui_border_mode_enums, &tui_border_mode,
+ "Set the attribute mode to use for the TUI window borders.\n"
+ "This variable controls the attributes to use for the window borders:\n"
+ "normal normal display\n"
+ "standout use highlight mode of terminal\n"
+ "reverse use reverse video mode\n"
+ "half use half bright\n"
+ "half-standout use half bright and standout mode\n"
+ "bold use extra bright or bold\n"
+ "bold-standout use extra bright or bold with standout mode\n",
+ &tui_setlist);
+ add_show_from_set (c, &tui_showlist);
+
+ c = add_set_enum_cmd
+ ("active-border-mode", no_class,
+ tui_border_mode_enums, &tui_active_border_mode,
+ "Set the attribute mode to use for the active TUI window border.\n"
+ "This variable controls the attributes to use for the active window border:\n"
+ "normal normal display\n"
+ "standout use highlight mode of terminal\n"
+ "reverse use reverse video mode\n"
+ "half use half bright\n"
+ "half-standout use half bright and standout mode\n"
+ "bold use extra bright or bold\n"
+ "bold-standout use extra bright or bold with standout mode\n",
+ &tui_setlist);
+ add_show_from_set (c, &tui_showlist);
+}
+
+/* Update gdb's knowledge of the terminal size. */
+void
+tui_update_gdb_sizes ()
+{
+ char cmd[50];
+ int screenheight, screenwidth;
+
+ rl_get_screen_size (&screenheight, &screenwidth);
+ /* Set to TUI command window dimension or use readline values. */
+ sprintf (cmd, "set width %d",
+ tui_active ? cmdWin->generic.width : screenwidth);
+ execute_command (cmd, 0);
+ sprintf (cmd, "set height %d",
+ tui_active ? cmdWin->generic.height : screenheight);
+ execute_command (cmd, 0);
+}
+
+
+/*
+ ** tuiSetWinFocusTo
+ ** Set the logical focus to winInfo
+ */
+void
+tuiSetWinFocusTo (TuiWinInfoPtr winInfo)
+{
+ if (m_winPtrNotNull (winInfo))
+ {
+ TuiWinInfoPtr winWithFocus = tuiWinWithFocus ();
+
+ if (m_winPtrNotNull (winWithFocus) &&
+ winWithFocus->generic.type != CMD_WIN)
+ unhighlightWin (winWithFocus);
+ tuiSetWinWithFocus (winInfo);
+ if (winInfo->generic.type != CMD_WIN)
+ highlightWin (winInfo);
+ }
+
+ return;
+} /* tuiSetWinFocusTo */
+
+
+/*
+ ** tuiScrollForward().
+ */
+void
+tuiScrollForward (TuiWinInfoPtr winToScroll, int numToScroll)
+{
+ if (winToScroll != cmdWin)
+ {
+ int _numToScroll = numToScroll;
+
+ if (numToScroll == 0)
+ _numToScroll = winToScroll->generic.height - 3;
+ /*
+ ** If we are scrolling the source or disassembly window, do a
+ ** "psuedo" scroll since not all of the source is in memory,
+ ** only what is in the viewport. If winToScroll is the
+ ** command window do nothing since the term should handle it.
+ */
+ if (winToScroll == srcWin)
+ tuiVerticalSourceScroll (FORWARD_SCROLL, _numToScroll);
+ else if (winToScroll == disassemWin)
+ tui_vertical_disassem_scroll (FORWARD_SCROLL, _numToScroll);
+ else if (winToScroll == dataWin)
+ tuiVerticalDataScroll (FORWARD_SCROLL, _numToScroll);
+ }
+
+ return;
+} /* tuiScrollForward */
+
+
+/*
+ ** tuiScrollBackward().
+ */
+void
+tuiScrollBackward (TuiWinInfoPtr winToScroll, int numToScroll)
+{
+ if (winToScroll != cmdWin)
+ {
+ int _numToScroll = numToScroll;
+
+ if (numToScroll == 0)
+ _numToScroll = winToScroll->generic.height - 3;
+ /*
+ ** If we are scrolling the source or disassembly window, do a
+ ** "psuedo" scroll since not all of the source is in memory,
+ ** only what is in the viewport. If winToScroll is the
+ ** command window do nothing since the term should handle it.
+ */
+ if (winToScroll == srcWin)
+ tuiVerticalSourceScroll (BACKWARD_SCROLL, _numToScroll);
+ else if (winToScroll == disassemWin)
+ tui_vertical_disassem_scroll (BACKWARD_SCROLL, _numToScroll);
+ else if (winToScroll == dataWin)
+ tuiVerticalDataScroll (BACKWARD_SCROLL, _numToScroll);
+ }
+ return;
+} /* tuiScrollBackward */
+
+
+/*
+ ** tuiScrollLeft().
+ */
+void
+tuiScrollLeft (TuiWinInfoPtr winToScroll, int numToScroll)
+{
+ if (winToScroll != cmdWin)
+ {
+ int _numToScroll = numToScroll;
+
+ if (_numToScroll == 0)
+ _numToScroll = 1;
+ /*
+ ** If we are scrolling the source or disassembly window, do a
+ ** "psuedo" scroll since not all of the source is in memory,
+ ** only what is in the viewport. If winToScroll is the
+ ** command window do nothing since the term should handle it.
+ */
+ if (winToScroll == srcWin || winToScroll == disassemWin)
+ tuiHorizontalSourceScroll (winToScroll, LEFT_SCROLL, _numToScroll);
+ }
+ return;
+} /* tuiScrollLeft */
+
+
+/*
+ ** tuiScrollRight().
+ */
+void
+tuiScrollRight (TuiWinInfoPtr winToScroll, int numToScroll)
+{
+ if (winToScroll != cmdWin)
+ {
+ int _numToScroll = numToScroll;
+
+ if (_numToScroll == 0)
+ _numToScroll = 1;
+ /*
+ ** If we are scrolling the source or disassembly window, do a
+ ** "psuedo" scroll since not all of the source is in memory,
+ ** only what is in the viewport. If winToScroll is the
+ ** command window do nothing since the term should handle it.
+ */
+ if (winToScroll == srcWin || winToScroll == disassemWin)
+ tuiHorizontalSourceScroll (winToScroll, RIGHT_SCROLL, _numToScroll);
+ }
+ return;
+} /* tuiScrollRight */
+
+
+/*
+ ** tui_scroll().
+ ** Scroll a window. Arguments are passed through a va_list.
+ */
+void
+tui_scroll (TuiScrollDirection direction,
+ TuiWinInfoPtr winToScroll,
+ int numToScroll)
+{
+ switch (direction)
+ {
+ case FORWARD_SCROLL:
+ tuiScrollForward (winToScroll, numToScroll);
+ break;
+ case BACKWARD_SCROLL:
+ tuiScrollBackward (winToScroll, numToScroll);
+ break;
+ case LEFT_SCROLL:
+ tuiScrollLeft (winToScroll, numToScroll);
+ break;
+ case RIGHT_SCROLL:
+ tuiScrollRight (winToScroll, numToScroll);
+ break;
+ default:
+ break;
+ }
+}
+
+
+/*
+ ** tuiRefreshAll().
+ */
+void
+tuiRefreshAll (void)
+{
+ TuiWinType type;
+
+ clearok (curscr, TRUE);
+ refreshAll (winList);
+ for (type = SRC_WIN; type < MAX_MAJOR_WINDOWS; type++)
+ {
+ if (winList[type] && winList[type]->generic.isVisible)
+ {
+ switch (type)
+ {
+ case SRC_WIN:
+ case DISASSEM_WIN:
+ tuiShowSourceContent (winList[type]);
+ checkAndDisplayHighlightIfNeeded (winList[type]);
+ tuiEraseExecInfoContent (winList[type]);
+ tuiUpdateExecInfo (winList[type]);
+ break;
+ case DATA_WIN:
+ tuiRefreshDataWin ();
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ tuiShowLocatorContent ();
+}
+
+
+/*
+ ** tuiResizeAll().
+ ** Resize all the windows based on the the terminal size. This
+ ** function gets called from within the readline sinwinch handler.
+ */
+void
+tuiResizeAll (void)
+{
+ int heightDiff, widthDiff;
+ int screenheight, screenwidth;
+
+ rl_get_screen_size (&screenheight, &screenwidth);
+ widthDiff = screenwidth - termWidth ();
+ heightDiff = screenheight - termHeight ();
+ if (heightDiff || widthDiff)
+ {
+ TuiLayoutType curLayout = currentLayout ();
+ TuiWinInfoPtr winWithFocus = tuiWinWithFocus ();
+ TuiWinInfoPtr firstWin, secondWin;
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+ TuiWinType winType;
+ int newHeight, splitDiff, cmdSplitDiff, numWinsDisplayed = 2;
+
+ /* turn keypad off while we resize */
+ if (winWithFocus != cmdWin)
+ keypad (cmdWin->generic.handle, FALSE);
+ tui_update_gdb_sizes ();
+ setTermHeightTo (screenheight);
+ setTermWidthTo (screenwidth);
+ if (curLayout == SRC_DISASSEM_COMMAND ||
+ curLayout == SRC_DATA_COMMAND || curLayout == DISASSEM_DATA_COMMAND)
+ numWinsDisplayed++;
+ splitDiff = heightDiff / numWinsDisplayed;
+ cmdSplitDiff = splitDiff;
+ if (heightDiff % numWinsDisplayed)
+ {
+ if (heightDiff < 0)
+ cmdSplitDiff--;
+ else
+ cmdSplitDiff++;
+ }
+ /* now adjust each window */
+ clear ();
+ refresh ();
+ switch (curLayout)
+ {
+ case SRC_COMMAND:
+ case DISASSEM_COMMAND:
+ firstWin = (TuiWinInfoPtr) (sourceWindows ())->list[0];
+ firstWin->generic.width += widthDiff;
+ locator->width += widthDiff;
+ /* check for invalid heights */
+ if (heightDiff == 0)
+ newHeight = firstWin->generic.height;
+ else if ((firstWin->generic.height + splitDiff) >=
+ (screenheight - MIN_CMD_WIN_HEIGHT - 1))
+ newHeight = screenheight - MIN_CMD_WIN_HEIGHT - 1;
+ else if ((firstWin->generic.height + splitDiff) <= 0)
+ newHeight = MIN_WIN_HEIGHT;
+ else
+ newHeight = firstWin->generic.height + splitDiff;
+
+ _makeInvisibleAndSetNewHeight (firstWin, newHeight);
+ cmdWin->generic.origin.y = locator->origin.y + 1;
+ cmdWin->generic.width += widthDiff;
+ newHeight = screenheight - cmdWin->generic.origin.y;
+ _makeInvisibleAndSetNewHeight (cmdWin, newHeight);
+ _makeVisibleWithNewHeight (firstWin);
+ _makeVisibleWithNewHeight (cmdWin);
+ if (firstWin->generic.contentSize <= 0)
+ tuiEraseSourceContent (firstWin, EMPTY_SOURCE_PROMPT);
+ break;
+ default:
+ if (curLayout == SRC_DISASSEM_COMMAND)
+ {
+ firstWin = srcWin;
+ firstWin->generic.width += widthDiff;
+ secondWin = disassemWin;
+ secondWin->generic.width += widthDiff;
+ }
+ else
+ {
+ firstWin = dataWin;
+ firstWin->generic.width += widthDiff;
+ secondWin = (TuiWinInfoPtr) (sourceWindows ())->list[0];
+ secondWin->generic.width += widthDiff;
+ }
+ /* Change the first window's height/width */
+ /* check for invalid heights */
+ if (heightDiff == 0)
+ newHeight = firstWin->generic.height;
+ else if ((firstWin->generic.height +
+ secondWin->generic.height + (splitDiff * 2)) >=
+ (screenheight - MIN_CMD_WIN_HEIGHT - 1))
+ newHeight = (screenheight - MIN_CMD_WIN_HEIGHT - 1) / 2;
+ else if ((firstWin->generic.height + splitDiff) <= 0)
+ newHeight = MIN_WIN_HEIGHT;
+ else
+ newHeight = firstWin->generic.height + splitDiff;
+ _makeInvisibleAndSetNewHeight (firstWin, newHeight);
+
+ if (firstWin == dataWin && widthDiff != 0)
+ firstWin->detail.dataDisplayInfo.regsColumnCount =
+ tui_calculate_regs_column_count (
+ firstWin->detail.dataDisplayInfo.regsDisplayType);
+ locator->width += widthDiff;
+
+ /* Change the second window's height/width */
+ /* check for invalid heights */
+ if (heightDiff == 0)
+ newHeight = secondWin->generic.height;
+ else if ((firstWin->generic.height +
+ secondWin->generic.height + (splitDiff * 2)) >=
+ (screenheight - MIN_CMD_WIN_HEIGHT - 1))
+ {
+ newHeight = screenheight - MIN_CMD_WIN_HEIGHT - 1;
+ if (newHeight % 2)
+ newHeight = (newHeight / 2) + 1;
+ else
+ newHeight /= 2;
+ }
+ else if ((secondWin->generic.height + splitDiff) <= 0)
+ newHeight = MIN_WIN_HEIGHT;
+ else
+ newHeight = secondWin->generic.height + splitDiff;
+ secondWin->generic.origin.y = firstWin->generic.height - 1;
+ _makeInvisibleAndSetNewHeight (secondWin, newHeight);
+
+ /* Change the command window's height/width */
+ cmdWin->generic.origin.y = locator->origin.y + 1;
+ _makeInvisibleAndSetNewHeight (
+ cmdWin, cmdWin->generic.height + cmdSplitDiff);
+ _makeVisibleWithNewHeight (firstWin);
+ _makeVisibleWithNewHeight (secondWin);
+ _makeVisibleWithNewHeight (cmdWin);
+ if (firstWin->generic.contentSize <= 0)
+ tuiEraseSourceContent (firstWin, EMPTY_SOURCE_PROMPT);
+ if (secondWin->generic.contentSize <= 0)
+ tuiEraseSourceContent (secondWin, EMPTY_SOURCE_PROMPT);
+ break;
+ }
+ /*
+ ** Now remove all invisible windows, and their content so that they get
+ ** created again when called for with the new size
+ */
+ for (winType = SRC_WIN; (winType < MAX_MAJOR_WINDOWS); winType++)
+ {
+ if (winType != CMD_WIN && m_winPtrNotNull (winList[winType]) &&
+ !winList[winType]->generic.isVisible)
+ {
+ freeWindow (winList[winType]);
+ winList[winType] = (TuiWinInfoPtr) NULL;
+ }
+ }
+ tuiSetWinResizedTo (TRUE);
+ /* turn keypad back on, unless focus is in the command window */
+ if (winWithFocus != cmdWin)
+ keypad (cmdWin->generic.handle, TRUE);
+ }
+ return;
+} /* tuiResizeAll */
+
+
+/*
+ ** tuiSigwinchHandler()
+ ** SIGWINCH signal handler for the tui. This signal handler is
+ ** always called, even when the readline package clears signals
+ ** because it is set as the old_sigwinch() (TUI only)
+ */
+void
+tuiSigwinchHandler (int signal)
+{
+ /*
+ ** Say that a resize was done so that the readline can do it
+ ** later when appropriate.
+ */
+ tuiSetWinResizedTo (TRUE);
+
+ return;
+} /* tuiSigwinchHandler */
+
+
+
+/*************************
+** STATIC LOCAL FUNCTIONS
+**************************/
+
+
+/*
+ ** _tuiScrollForward_command().
+ */
+static void
+_tuiScrollForward_command (char *arg, int fromTTY)
+{
+ int numToScroll = 1;
+ TuiWinInfoPtr winToScroll;
+
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ if (arg == (char *) NULL)
+ _parseScrollingArgs (arg, &winToScroll, (int *) NULL);
+ else
+ _parseScrollingArgs (arg, &winToScroll, &numToScroll);
+ tui_scroll (FORWARD_SCROLL, winToScroll, numToScroll);
+}
+
+
+/*
+ ** _tuiScrollBackward_command().
+ */
+static void
+_tuiScrollBackward_command (char *arg, int fromTTY)
+{
+ int numToScroll = 1;
+ TuiWinInfoPtr winToScroll;
+
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ if (arg == (char *) NULL)
+ _parseScrollingArgs (arg, &winToScroll, (int *) NULL);
+ else
+ _parseScrollingArgs (arg, &winToScroll, &numToScroll);
+ tui_scroll (BACKWARD_SCROLL, winToScroll, numToScroll);
+}
+
+
+/*
+ ** _tuiScrollLeft_command().
+ */
+static void
+_tuiScrollLeft_command (char *arg, int fromTTY)
+{
+ int numToScroll;
+ TuiWinInfoPtr winToScroll;
+
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ _parseScrollingArgs (arg, &winToScroll, &numToScroll);
+ tui_scroll (LEFT_SCROLL, winToScroll, numToScroll);
+}
+
+
+/*
+ ** _tuiScrollRight_command().
+ */
+static void
+_tuiScrollRight_command (char *arg, int fromTTY)
+{
+ int numToScroll;
+ TuiWinInfoPtr winToScroll;
+
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ _parseScrollingArgs (arg, &winToScroll, &numToScroll);
+ tui_scroll (RIGHT_SCROLL, winToScroll, numToScroll);
+}
+
+
+/*
+ ** _tuiSetFocus().
+ ** Set focus to the window named by 'arg'
+ */
+static void
+_tuiSetFocus (char *arg, int fromTTY)
+{
+ if (arg != (char *) NULL)
+ {
+ char *bufPtr = (char *) xstrdup (arg);
+ int i;
+ TuiWinInfoPtr winInfo = (TuiWinInfoPtr) NULL;
+
+ for (i = 0; (i < strlen (bufPtr)); i++)
+ bufPtr[i] = toupper (arg[i]);
+
+ if (subset_compare (bufPtr, "NEXT"))
+ winInfo = tuiNextWin (tuiWinWithFocus ());
+ else if (subset_compare (bufPtr, "PREV"))
+ winInfo = tuiPrevWin (tuiWinWithFocus ());
+ else
+ winInfo = partialWinByName (bufPtr);
+
+ if (winInfo == (TuiWinInfoPtr) NULL || !winInfo->generic.isVisible)
+ warning ("Invalid window specified. \n\
+The window name specified must be valid and visible.\n");
+ else
+ {
+ tuiSetWinFocusTo (winInfo);
+ keypad (cmdWin->generic.handle, (winInfo != cmdWin));
+ }
+
+ if (dataWin && dataWin->generic.isVisible)
+ tuiRefreshDataWin ();
+ tuiFree (bufPtr);
+ printf_filtered ("Focus set to %s window.\n",
+ winName ((TuiGenWinInfoPtr) tuiWinWithFocus ()));
+ }
+ else
+ warning ("Incorrect Number of Arguments.\n%s", FOCUS_USAGE);
+
+ return;
+} /* _tuiSetFocus */
+
+/*
+ ** _tuiSetFocus_command()
+ */
+static void
+_tuiSetFocus_command (char *arg, int fromTTY)
+{
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ _tuiSetFocus (arg, fromTTY);
+}
+
+
+/*
+ ** _tuiAllWindowsInfo().
+ */
+static void
+_tuiAllWindowsInfo (char *arg, int fromTTY)
+{
+ TuiWinType type;
+ TuiWinInfoPtr winWithFocus = tuiWinWithFocus ();
+
+ for (type = SRC_WIN; (type < MAX_MAJOR_WINDOWS); type++)
+ if (winList[type] && winList[type]->generic.isVisible)
+ {
+ if (winWithFocus == winList[type])
+ printf_filtered (" %s\t(%d lines) <has focus>\n",
+ winName (&winList[type]->generic),
+ winList[type]->generic.height);
+ else
+ printf_filtered (" %s\t(%d lines)\n",
+ winName (&winList[type]->generic),
+ winList[type]->generic.height);
+ }
+
+ return;
+} /* _tuiAllWindowsInfo */
+
+
+/*
+ ** _tuiRefreshAll_command().
+ */
+static void
+_tuiRefreshAll_command (char *arg, int fromTTY)
+{
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+
+ tuiRefreshAll ();
+}
+
+
+/*
+ ** _tuiSetWinTabWidth_command().
+ ** Set the height of the specified window.
+ */
+static void
+_tuiSetTabWidth_command (char *arg, int fromTTY)
+{
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ if (arg != (char *) NULL)
+ {
+ int ts;
+
+ ts = atoi (arg);
+ if (ts > 0)
+ tuiSetDefaultTabLen (ts);
+ else
+ warning ("Tab widths greater than 0 must be specified.\n");
+ }
+
+ return;
+} /* _tuiSetTabWidth_command */
+
+
+/*
+ ** _tuiSetWinHeight().
+ ** Set the height of the specified window.
+ */
+static void
+_tuiSetWinHeight (char *arg, int fromTTY)
+{
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ if (arg != (char *) NULL)
+ {
+ char *buf = xstrdup (arg);
+ char *bufPtr = buf;
+ char *wname = (char *) NULL;
+ int newHeight, i;
+ TuiWinInfoPtr winInfo;
+
+ wname = bufPtr;
+ bufPtr = strchr (bufPtr, ' ');
+ if (bufPtr != (char *) NULL)
+ {
+ *bufPtr = (char) 0;
+
+ /*
+ ** Validate the window name
+ */
+ for (i = 0; i < strlen (wname); i++)
+ wname[i] = toupper (wname[i]);
+ winInfo = partialWinByName (wname);
+
+ if (winInfo == (TuiWinInfoPtr) NULL || !winInfo->generic.isVisible)
+ warning ("Invalid window specified. \n\
+The window name specified must be valid and visible.\n");
+ else
+ {
+ /* Process the size */
+ while (*(++bufPtr) == ' ')
+ ;
+
+ if (*bufPtr != (char) 0)
+ {
+ int negate = FALSE;
+ int fixedSize = TRUE;
+ int inputNo;;
+
+ if (*bufPtr == '+' || *bufPtr == '-')
+ {
+ if (*bufPtr == '-')
+ negate = TRUE;
+ fixedSize = FALSE;
+ bufPtr++;
+ }
+ inputNo = atoi (bufPtr);
+ if (inputNo > 0)
+ {
+ if (negate)
+ inputNo *= (-1);
+ if (fixedSize)
+ newHeight = inputNo;
+ else
+ newHeight = winInfo->generic.height + inputNo;
+ /*
+ ** Now change the window's height, and adjust all
+ ** other windows around it
+ */
+ if (_tuiAdjustWinHeights (winInfo,
+ newHeight) == TUI_FAILURE)
+ warning ("Invalid window height specified.\n%s",
+ WIN_HEIGHT_USAGE);
+ else
+ tui_update_gdb_sizes ();
+ }
+ else
+ warning ("Invalid window height specified.\n%s",
+ WIN_HEIGHT_USAGE);
+ }
+ }
+ }
+ else
+ printf_filtered (WIN_HEIGHT_USAGE);
+
+ if (buf != (char *) NULL)
+ tuiFree (buf);
+ }
+ else
+ printf_filtered (WIN_HEIGHT_USAGE);
+
+ return;
+} /* _tuiSetWinHeight */
+
+/*
+ ** _tuiSetWinHeight_command().
+ ** Set the height of the specified window, with va_list.
+ */
+static void
+_tuiSetWinHeight_command (char *arg, int fromTTY)
+{
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ _tuiSetWinHeight (arg, fromTTY);
+}
+
+
+/*
+ ** _tuiXDBsetWinHeight().
+ ** XDB Compatibility command for setting the window height. This will
+ ** increase or decrease the command window by the specified amount.
+ */
+static void
+_tuiXDBsetWinHeight (char *arg, int fromTTY)
+{
+ /* Make sure the curses mode is enabled. */
+ tui_enable ();
+ if (arg != (char *) NULL)
+ {
+ int inputNo = atoi (arg);
+
+ if (inputNo > 0)
+ { /* Add 1 for the locator */
+ int newHeight = termHeight () - (inputNo + 1);
+
+ if (!_newHeightOk (winList[CMD_WIN], newHeight) ||
+ _tuiAdjustWinHeights (winList[CMD_WIN],
+ newHeight) == TUI_FAILURE)
+ warning ("Invalid window height specified.\n%s",
+ XDBWIN_HEIGHT_USAGE);
+ }
+ else
+ warning ("Invalid window height specified.\n%s",
+ XDBWIN_HEIGHT_USAGE);
+ }
+ else
+ warning ("Invalid window height specified.\n%s", XDBWIN_HEIGHT_USAGE);
+
+ return;
+} /* _tuiXDBsetWinHeight */
+
+/*
+ ** _tuiSetWinHeight_command().
+ ** Set the height of the specified window, with va_list.
+ */
+static void
+_tuiXDBsetWinHeight_command (char *arg, int fromTTY)
+{
+ _tuiXDBsetWinHeight (arg, fromTTY);
+}
+
+
+/*
+ ** _tuiAdjustWinHeights().
+ ** Function to adjust all window heights around the primary
+ */
+static TuiStatus
+_tuiAdjustWinHeights (TuiWinInfoPtr primaryWinInfo, int newHeight)
+{
+ TuiStatus status = TUI_FAILURE;
+
+ if (_newHeightOk (primaryWinInfo, newHeight))
+ {
+ status = TUI_SUCCESS;
+ if (newHeight != primaryWinInfo->generic.height)
+ {
+ int diff;
+ TuiWinInfoPtr winInfo;
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+ TuiLayoutType curLayout = currentLayout ();
+
+ diff = (newHeight - primaryWinInfo->generic.height) * (-1);
+ if (curLayout == SRC_COMMAND || curLayout == DISASSEM_COMMAND)
+ {
+ TuiWinInfoPtr srcWinInfo;
+
+ _makeInvisibleAndSetNewHeight (primaryWinInfo, newHeight);
+ if (primaryWinInfo->generic.type == CMD_WIN)
+ {
+ winInfo = (TuiWinInfoPtr) (sourceWindows ())->list[0];
+ srcWinInfo = winInfo;
+ }
+ else
+ {
+ winInfo = winList[CMD_WIN];
+ srcWinInfo = primaryWinInfo;
+ }
+ _makeInvisibleAndSetNewHeight (winInfo,
+ winInfo->generic.height + diff);
+ cmdWin->generic.origin.y = locator->origin.y + 1;
+ _makeVisibleWithNewHeight (winInfo);
+ _makeVisibleWithNewHeight (primaryWinInfo);
+ if (srcWinInfo->generic.contentSize <= 0)
+ tuiEraseSourceContent (srcWinInfo, EMPTY_SOURCE_PROMPT);
+ }
+ else
+ {
+ TuiWinInfoPtr firstWin, secondWin;
+
+ if (curLayout == SRC_DISASSEM_COMMAND)
+ {
+ firstWin = srcWin;
+ secondWin = disassemWin;
+ }
+ else
+ {
+ firstWin = dataWin;
+ secondWin = (TuiWinInfoPtr) (sourceWindows ())->list[0];
+ }
+ if (primaryWinInfo == cmdWin)
+ { /*
+ ** Split the change in height accross the 1st & 2nd windows
+ ** adjusting them as well.
+ */
+ int firstSplitDiff = diff / 2; /* subtract the locator */
+ int secondSplitDiff = firstSplitDiff;
+
+ if (diff % 2)
+ {
+ if (firstWin->generic.height >
+ secondWin->generic.height)
+ if (diff < 0)
+ firstSplitDiff--;
+ else
+ firstSplitDiff++;
+ else
+ {
+ if (diff < 0)
+ secondSplitDiff--;
+ else
+ secondSplitDiff++;
+ }
+ }
+ /* make sure that the minimum hieghts are honored */
+ while ((firstWin->generic.height + firstSplitDiff) < 3)
+ {
+ firstSplitDiff++;
+ secondSplitDiff--;
+ }
+ while ((secondWin->generic.height + secondSplitDiff) < 3)
+ {
+ secondSplitDiff++;
+ firstSplitDiff--;
+ }
+ _makeInvisibleAndSetNewHeight (
+ firstWin,
+ firstWin->generic.height + firstSplitDiff);
+ secondWin->generic.origin.y = firstWin->generic.height - 1;
+ _makeInvisibleAndSetNewHeight (
+ secondWin, secondWin->generic.height + secondSplitDiff);
+ cmdWin->generic.origin.y = locator->origin.y + 1;
+ _makeInvisibleAndSetNewHeight (cmdWin, newHeight);
+ }
+ else
+ {
+ if ((cmdWin->generic.height + diff) < 1)
+ { /*
+ ** If there is no way to increase the command window
+ ** take real estate from the 1st or 2nd window.
+ */
+ if ((cmdWin->generic.height + diff) < 1)
+ {
+ int i;
+ for (i = cmdWin->generic.height + diff;
+ (i < 1); i++)
+ if (primaryWinInfo == firstWin)
+ secondWin->generic.height--;
+ else
+ firstWin->generic.height--;
+ }
+ }
+ if (primaryWinInfo == firstWin)
+ _makeInvisibleAndSetNewHeight (firstWin, newHeight);
+ else
+ _makeInvisibleAndSetNewHeight (
+ firstWin,
+ firstWin->generic.height);
+ secondWin->generic.origin.y = firstWin->generic.height - 1;
+ if (primaryWinInfo == secondWin)
+ _makeInvisibleAndSetNewHeight (secondWin, newHeight);
+ else
+ _makeInvisibleAndSetNewHeight (
+ secondWin, secondWin->generic.height);
+ cmdWin->generic.origin.y = locator->origin.y + 1;
+ if ((cmdWin->generic.height + diff) < 1)
+ _makeInvisibleAndSetNewHeight (cmdWin, 1);
+ else
+ _makeInvisibleAndSetNewHeight (
+ cmdWin, cmdWin->generic.height + diff);
+ }
+ _makeVisibleWithNewHeight (cmdWin);
+ _makeVisibleWithNewHeight (secondWin);
+ _makeVisibleWithNewHeight (firstWin);
+ if (firstWin->generic.contentSize <= 0)
+ tuiEraseSourceContent (firstWin, EMPTY_SOURCE_PROMPT);
+ if (secondWin->generic.contentSize <= 0)
+ tuiEraseSourceContent (secondWin, EMPTY_SOURCE_PROMPT);
+ }
+ }
+ }
+
+ return status;
+} /* _tuiAdjustWinHeights */
+
+
+/*
+ ** _makeInvisibleAndSetNewHeight().
+ ** Function make the target window (and auxillary windows associated
+ ** with the targer) invisible, and set the new height and location.
+ */
+static void
+_makeInvisibleAndSetNewHeight (TuiWinInfoPtr winInfo, int height)
+{
+ int i;
+ TuiGenWinInfoPtr genWinInfo;
+
+
+ m_beInvisible (&winInfo->generic);
+ winInfo->generic.height = height;
+ if (height > 1)
+ winInfo->generic.viewportHeight = height - 1;
+ else
+ winInfo->generic.viewportHeight = height;
+ if (winInfo != cmdWin)
+ winInfo->generic.viewportHeight--;
+
+ /* Now deal with the auxillary windows associated with winInfo */
+ switch (winInfo->generic.type)
+ {
+ case SRC_WIN:
+ case DISASSEM_WIN:
+ genWinInfo = winInfo->detail.sourceInfo.executionInfo;
+ m_beInvisible (genWinInfo);
+ genWinInfo->height = height;
+ genWinInfo->origin.y = winInfo->generic.origin.y;
+ if (height > 1)
+ genWinInfo->viewportHeight = height - 1;
+ else
+ genWinInfo->viewportHeight = height;
+ if (winInfo != cmdWin)
+ genWinInfo->viewportHeight--;
+
+ if (m_hasLocator (winInfo))
+ {
+ genWinInfo = locatorWinInfoPtr ();
+ m_beInvisible (genWinInfo);
+ genWinInfo->origin.y = winInfo->generic.origin.y + height;
+ }
+ break;
+ case DATA_WIN:
+ /* delete all data item windows */
+ for (i = 0; i < winInfo->generic.contentSize; i++)
+ {
+ genWinInfo = (TuiGenWinInfoPtr) & ((TuiWinElementPtr)
+ winInfo->generic.content[i])->whichElement.dataWindow;
+ tuiDelwin (genWinInfo->handle);
+ genWinInfo->handle = (WINDOW *) NULL;
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+
+/*
+ ** _makeVisibleWithNewHeight().
+ ** Function to make the windows with new heights visible.
+ ** This means re-creating the windows' content since the window
+ ** had to be destroyed to be made invisible.
+ */
+static void
+_makeVisibleWithNewHeight (TuiWinInfoPtr winInfo)
+{
+ struct symtab *s;
+
+ m_beVisible (&winInfo->generic);
+ checkAndDisplayHighlightIfNeeded (winInfo);
+ switch (winInfo->generic.type)
+ {
+ case SRC_WIN:
+ case DISASSEM_WIN:
+ freeWinContent (winInfo->detail.sourceInfo.executionInfo);
+ m_beVisible (winInfo->detail.sourceInfo.executionInfo);
+ if (winInfo->generic.content != (OpaquePtr) NULL)
+ {
+ TuiLineOrAddress lineOrAddr;
+ struct symtab_and_line cursal
+ = get_current_source_symtab_and_line ();
+
+ if (winInfo->generic.type == SRC_WIN)
+ lineOrAddr.lineNo =
+ winInfo->detail.sourceInfo.startLineOrAddr.lineNo;
+ else
+ lineOrAddr.addr =
+ winInfo->detail.sourceInfo.startLineOrAddr.addr;
+ freeWinContent (&winInfo->generic);
+ tuiUpdateSourceWindow (winInfo,
+ cursal.symtab, lineOrAddr, TRUE);
+ }
+ else if (deprecated_selected_frame != (struct frame_info *) NULL)
+ {
+ TuiLineOrAddress line;
+ struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+
+
+ s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
+ if (winInfo->generic.type == SRC_WIN)
+ line.lineNo = cursal.line;
+ else
+ {
+ find_line_pc (s, cursal.line, &line.addr);
+ }
+ tuiUpdateSourceWindow (winInfo, s, line, TRUE);
+ }
+ if (m_hasLocator (winInfo))
+ {
+ m_beVisible (locatorWinInfoPtr ());
+ tuiShowLocatorContent ();
+ }
+ break;
+ case DATA_WIN:
+ tuiDisplayAllData ();
+ break;
+ case CMD_WIN:
+ winInfo->detail.commandInfo.curLine = 0;
+ winInfo->detail.commandInfo.curch = 0;
+ wmove (winInfo->generic.handle,
+ winInfo->detail.commandInfo.curLine,
+ winInfo->detail.commandInfo.curch);
+ break;
+ default:
+ break;
+ }
+
+ return;
+} /* _makeVisibleWithNewHeight */
+
+
+static int
+_newHeightOk (TuiWinInfoPtr primaryWinInfo, int newHeight)
+{
+ int ok = (newHeight < termHeight ());
+
+ if (ok)
+ {
+ int diff;
+ TuiLayoutType curLayout = currentLayout ();
+
+ diff = (newHeight - primaryWinInfo->generic.height) * (-1);
+ if (curLayout == SRC_COMMAND || curLayout == DISASSEM_COMMAND)
+ {
+ ok = ((primaryWinInfo->generic.type == CMD_WIN &&
+ newHeight <= (termHeight () - 4) &&
+ newHeight >= MIN_CMD_WIN_HEIGHT) ||
+ (primaryWinInfo->generic.type != CMD_WIN &&
+ newHeight <= (termHeight () - 2) &&
+ newHeight >= MIN_WIN_HEIGHT));
+ if (ok)
+ { /* check the total height */
+ TuiWinInfoPtr winInfo;
+
+ if (primaryWinInfo == cmdWin)
+ winInfo = (TuiWinInfoPtr) (sourceWindows ())->list[0];
+ else
+ winInfo = cmdWin;
+ ok = ((newHeight +
+ (winInfo->generic.height + diff)) <= termHeight ());
+ }
+ }
+ else
+ {
+ int curTotalHeight, totalHeight, minHeight = 0;
+ TuiWinInfoPtr firstWin, secondWin;
+
+ if (curLayout == SRC_DISASSEM_COMMAND)
+ {
+ firstWin = srcWin;
+ secondWin = disassemWin;
+ }
+ else
+ {
+ firstWin = dataWin;
+ secondWin = (TuiWinInfoPtr) (sourceWindows ())->list[0];
+ }
+ /*
+ ** We could simply add all the heights to obtain the same result
+ ** but below is more explicit since we subtract 1 for the
+ ** line that the first and second windows share, and add one
+ ** for the locator.
+ */
+ totalHeight = curTotalHeight =
+ (firstWin->generic.height + secondWin->generic.height - 1)
+ + cmdWin->generic.height + 1 /*locator */ ;
+ if (primaryWinInfo == cmdWin)
+ {
+ /* locator included since first & second win share a line */
+ ok = ((firstWin->generic.height +
+ secondWin->generic.height + diff) >=
+ (MIN_WIN_HEIGHT * 2) &&
+ newHeight >= MIN_CMD_WIN_HEIGHT);
+ if (ok)
+ {
+ totalHeight = newHeight + (firstWin->generic.height +
+ secondWin->generic.height + diff);
+ minHeight = MIN_CMD_WIN_HEIGHT;
+ }
+ }
+ else
+ {
+ minHeight = MIN_WIN_HEIGHT;
+ /*
+ ** First see if we can increase/decrease the command
+ ** window. And make sure that the command window is
+ ** at least 1 line
+ */
+ ok = ((cmdWin->generic.height + diff) > 0);
+ if (!ok)
+ { /*
+ ** Looks like we have to increase/decrease one of
+ ** the other windows
+ */
+ if (primaryWinInfo == firstWin)
+ ok = (secondWin->generic.height + diff) >= minHeight;
+ else
+ ok = (firstWin->generic.height + diff) >= minHeight;
+ }
+ if (ok)
+ {
+ if (primaryWinInfo == firstWin)
+ totalHeight = newHeight +
+ secondWin->generic.height +
+ cmdWin->generic.height + diff;
+ else
+ totalHeight = newHeight +
+ firstWin->generic.height +
+ cmdWin->generic.height + diff;
+ }
+ }
+ /*
+ ** Now make sure that the proposed total height doesn't exceed
+ ** the old total height.
+ */
+ if (ok)
+ ok = (newHeight >= minHeight && totalHeight <= curTotalHeight);
+ }
+ }
+
+ return ok;
+} /* _newHeightOk */
+
+
+/*
+ ** _parseScrollingArgs().
+ */
+static void
+_parseScrollingArgs (char *arg, TuiWinInfoPtr * winToScroll, int *numToScroll)
+{
+ if (numToScroll)
+ *numToScroll = 0;
+ *winToScroll = tuiWinWithFocus ();
+
+ /*
+ ** First set up the default window to scroll, in case there is no
+ ** window name arg
+ */
+ if (arg != (char *) NULL)
+ {
+ char *buf, *bufPtr;
+
+ /* process the number of lines to scroll */
+ buf = bufPtr = xstrdup (arg);
+ if (isdigit (*bufPtr))
+ {
+ char *numStr;
+
+ numStr = bufPtr;
+ bufPtr = strchr (bufPtr, ' ');
+ if (bufPtr != (char *) NULL)
+ {
+ *bufPtr = (char) 0;
+ if (numToScroll)
+ *numToScroll = atoi (numStr);
+ bufPtr++;
+ }
+ else if (numToScroll)
+ *numToScroll = atoi (numStr);
+ }
+
+ /* process the window name if one is specified */
+ if (bufPtr != (char *) NULL)
+ {
+ char *wname;
+ int i;
+
+ if (*bufPtr == ' ')
+ while (*(++bufPtr) == ' ')
+ ;
+
+ if (*bufPtr != (char) 0)
+ wname = bufPtr;
+ else
+ wname = "?";
+
+ /* Validate the window name */
+ for (i = 0; i < strlen (wname); i++)
+ wname[i] = toupper (wname[i]);
+ *winToScroll = partialWinByName (wname);
+
+ if (*winToScroll == (TuiWinInfoPtr) NULL ||
+ !(*winToScroll)->generic.isVisible)
+ warning ("Invalid window specified. \n\
+The window name specified must be valid and visible.\n");
+ else if (*winToScroll == cmdWin)
+ *winToScroll = (TuiWinInfoPtr) (sourceWindows ())->list[0];
+ }
+ tuiFree (buf);
+ }
+
+ return;
+} /* _parseScrollingArgs */
diff --git a/gdb/tui/tui-win.h b/gdb/tui/tui-win.h
new file mode 100644
index 00000000000..bc260804888
--- /dev/null
+++ b/gdb/tui/tui-win.h
@@ -0,0 +1,59 @@
+/* TUI window generic functions.
+ Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef _TUI_WIN_H
+#define _TUI_WIN_H
+
+/*****************************************
+** TYPE DEFINITIONS **
+******************************************/
+
+
+
+/*****************************************
+** PUBLIC FUNCTION EXTERNAL DECLS **
+******************************************/
+extern void tuiScrollForward (TuiWinInfoPtr, int);
+extern void tuiScrollBackward (TuiWinInfoPtr, int);
+extern void tuiScrollLeft (TuiWinInfoPtr, int);
+extern void tuiScrollRight (TuiWinInfoPtr, int);
+extern void tui_scroll (TuiScrollDirection, TuiWinInfoPtr, int);
+extern void tuiSetWinFocusTo (TuiWinInfoPtr);
+extern void tuiResizeAll (void);
+extern void tuiRefreshAll (void);
+extern void tuiSigwinchHandler (int);
+
+extern chtype tui_border_ulcorner;
+extern chtype tui_border_urcorner;
+extern chtype tui_border_lrcorner;
+extern chtype tui_border_llcorner;
+extern chtype tui_border_vline;
+extern chtype tui_border_hline;
+extern int tui_border_attrs;
+extern int tui_active_border_attrs;
+
+extern int tui_update_variables ();
+
+/* Update gdb's knowledge of the terminal size. */
+extern void tui_update_gdb_sizes (void);
+
+#endif
+/*_TUI_WIN_H*/
diff --git a/gdb/tui/tui-windata.c b/gdb/tui/tui-windata.c
new file mode 100644
index 00000000000..f504f7fc6c7
--- /dev/null
+++ b/gdb/tui/tui-windata.c
@@ -0,0 +1,349 @@
+/* Data/register window display.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-wingeneral.h"
+#include "tui/tui-regs.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+
+/*****************************************
+** STATIC LOCAL FUNCTIONS FORWARD DECLS **
+******************************************/
+
+
+
+/*****************************************
+** PUBLIC FUNCTIONS **
+******************************************/
+
+
+/*
+ ** tuiFirstDataItemDisplayed()
+ ** Answer the index first element displayed.
+ ** If none are displayed, then return (-1).
+ */
+int
+tuiFirstDataItemDisplayed (void)
+{
+ int elementNo = (-1);
+ int i;
+
+ for (i = 0; (i < dataWin->generic.contentSize && elementNo < 0); i++)
+ {
+ TuiGenWinInfoPtr dataItemWin;
+
+ dataItemWin = &((TuiWinContent)
+ dataWin->generic.content)[i]->whichElement.dataWindow;
+ if (dataItemWin->handle != (WINDOW *) NULL && dataItemWin->isVisible)
+ elementNo = i;
+ }
+
+ return elementNo;
+} /* tuiFirstDataItemDisplayed */
+
+
+/*
+ ** tuiFirstDataElementNoInLine()
+ ** Answer the index of the first element in lineNo. If lineNo is
+ ** past the data area (-1) is returned.
+ */
+int
+tuiFirstDataElementNoInLine (int lineNo)
+{
+ int firstElementNo = (-1);
+
+ /*
+ ** First see if there is a register on lineNo, and if so, set the
+ ** first element number
+ */
+ if ((firstElementNo = tui_first_reg_element_no_inline (lineNo)) == -1)
+ { /*
+ ** Looking at the general data, the 1st element on lineNo
+ */
+ }
+
+ return firstElementNo;
+} /* tuiFirstDataElementNoInLine */
+
+
+/*
+ ** tuiDeleteDataContentWindows()
+ ** Function to delete all the item windows in the data window.
+ ** This is usually done when the data window is scrolled.
+ */
+void
+tuiDeleteDataContentWindows (void)
+{
+ int i;
+ TuiGenWinInfoPtr dataItemWinPtr;
+
+ for (i = 0; (i < dataWin->generic.contentSize); i++)
+ {
+ dataItemWinPtr = &((TuiWinContent)
+ dataWin->generic.content)[i]->whichElement.dataWindow;
+ tuiDelwin (dataItemWinPtr->handle);
+ dataItemWinPtr->handle = (WINDOW *) NULL;
+ dataItemWinPtr->isVisible = FALSE;
+ }
+
+ return;
+} /* tuiDeleteDataContentWindows */
+
+
+void
+tuiEraseDataContent (char *prompt)
+{
+ werase (dataWin->generic.handle);
+ checkAndDisplayHighlightIfNeeded (dataWin);
+ if (prompt != (char *) NULL)
+ {
+ int halfWidth = (dataWin->generic.width - 2) / 2;
+ int xPos;
+
+ if (strlen (prompt) >= halfWidth)
+ xPos = 1;
+ else
+ xPos = halfWidth - strlen (prompt);
+ mvwaddstr (dataWin->generic.handle,
+ (dataWin->generic.height / 2),
+ xPos,
+ prompt);
+ }
+ wrefresh (dataWin->generic.handle);
+
+ return;
+} /* tuiEraseDataContent */
+
+
+/*
+ ** tuiDisplayAllData().
+ ** This function displays the data that is in the data window's
+ ** content. It does not set the content.
+ */
+void
+tuiDisplayAllData (void)
+{
+ if (dataWin->generic.contentSize <= 0)
+ tuiEraseDataContent (NO_DATA_STRING);
+ else
+ {
+ tuiEraseDataContent ((char *) NULL);
+ tuiDeleteDataContentWindows ();
+ checkAndDisplayHighlightIfNeeded (dataWin);
+ tui_display_registers_from (0);
+ /*
+ ** Then display the other data
+ */
+ if (dataWin->detail.dataDisplayInfo.dataContent !=
+ (TuiWinContent) NULL &&
+ dataWin->detail.dataDisplayInfo.dataContentCount > 0)
+ {
+ }
+ }
+ return;
+} /* tuiDisplayAllData */
+
+
+/*
+ ** tuiDisplayDataFromLine()
+ ** Function to display the data starting at line, lineNo, in the
+ ** data window.
+ */
+void
+tuiDisplayDataFromLine (int lineNo)
+{
+ int _lineNo = lineNo;
+
+ if (lineNo < 0)
+ _lineNo = 0;
+
+ checkAndDisplayHighlightIfNeeded (dataWin);
+
+ /* there is no general data, force regs to display (if there are any) */
+ if (dataWin->detail.dataDisplayInfo.dataContentCount <= 0)
+ tui_display_registers_from_line (_lineNo, TRUE);
+ else
+ {
+ int elementNo, startLineNo;
+ int regsLastLine = tui_last_regs_line_no ();
+
+
+ /* display regs if we can */
+ if (tui_display_registers_from_line (_lineNo, FALSE) < 0)
+ { /*
+ ** _lineNo is past the regs display, so calc where the
+ ** start data element is
+ */
+ if (regsLastLine < _lineNo)
+ { /* figure out how many lines each element is to obtain
+ the start elementNo */
+ }
+ }
+ else
+ { /*
+ ** calculate the starting element of the data display, given
+ ** regsLastLine and how many lines each element is, up to
+ ** _lineNo
+ */
+ }
+ /* Now display the data , starting at elementNo */
+ }
+
+ return;
+} /* tuiDisplayDataFromLine */
+
+
+/*
+ ** tuiDisplayDataFrom()
+ ** Display data starting at element elementNo
+ */
+void
+tuiDisplayDataFrom (int elementNo, int reuseWindows)
+{
+ int firstLine = (-1);
+
+ if (elementNo < dataWin->detail.dataDisplayInfo.regsContentCount)
+ firstLine = tui_line_from_reg_element_no (elementNo);
+ else
+ { /* calculate the firstLine from the element number */
+ }
+
+ if (firstLine >= 0)
+ {
+ tuiEraseDataContent ((char *) NULL);
+ if (!reuseWindows)
+ tuiDeleteDataContentWindows ();
+ tuiDisplayDataFromLine (firstLine);
+ }
+
+ return;
+} /* tuiDisplayDataFrom */
+
+
+/*
+ ** tuiRefreshDataWin()
+ ** Function to redisplay the contents of the data window.
+ */
+void
+tuiRefreshDataWin (void)
+{
+ tuiEraseDataContent ((char *) NULL);
+ if (dataWin->generic.contentSize > 0)
+ {
+ int firstElement = tuiFirstDataItemDisplayed ();
+
+ if (firstElement >= 0) /* re-use existing windows */
+ tuiDisplayDataFrom (firstElement, TRUE);
+ }
+
+ return;
+} /* tuiRefreshDataWin */
+
+
+/*
+ ** tuiCheckDataValues().
+ ** Function to check the data values and hilite any that have changed
+ */
+void
+tuiCheckDataValues (struct frame_info *frame)
+{
+ tui_check_register_values (frame);
+
+ /* Now check any other data values that there are */
+ if (m_winPtrNotNull (dataWin) && dataWin->generic.isVisible)
+ {
+ int i;
+
+ for (i = 0; dataWin->detail.dataDisplayInfo.dataContentCount; i++)
+ {
+#ifdef LATER
+ TuiDataElementPtr dataElementPtr;
+ TuiGenWinInfoPtr dataItemWinPtr;
+ Opaque newValue;
+
+ dataItemPtr = &dataWin->detail.dataDisplayInfo.
+ dataContent[i]->whichElement.dataWindow;
+ dataElementPtr = &((TuiWinContent)
+ dataItemWinPtr->content)[0]->whichElement.data;
+ if value
+ has changed (dataElementPtr, frame, &newValue)
+ {
+ dataElementPtr->value = newValue;
+ update the display with the new value, hiliting it.
+ }
+#endif
+ }
+ }
+} /* tuiCheckDataValues */
+
+
+/*
+ ** tuiVerticalDataScroll()
+ ** Scroll the data window vertically forward or backward.
+ */
+void
+tuiVerticalDataScroll (TuiScrollDirection scrollDirection, int numToScroll)
+{
+ int firstElementNo;
+ int firstLine = (-1);
+
+ firstElementNo = tuiFirstDataItemDisplayed ();
+ if (firstElementNo < dataWin->detail.dataDisplayInfo.regsContentCount)
+ firstLine = tui_line_from_reg_element_no (firstElementNo);
+ else
+ { /* calculate the first line from the element number which is in
+ ** the general data content
+ */
+ }
+
+ if (firstLine >= 0)
+ {
+ int lastElementNo, lastLine;
+
+ if (scrollDirection == FORWARD_SCROLL)
+ firstLine += numToScroll;
+ else
+ firstLine -= numToScroll;
+ tuiEraseDataContent ((char *) NULL);
+ tuiDeleteDataContentWindows ();
+ tuiDisplayDataFromLine (firstLine);
+ }
+
+ return;
+} /* tuiVerticalDataScroll */
+
+
+/*****************************************
+** STATIC LOCAL FUNCTIONS **
+******************************************/
diff --git a/gdb/tui/tui-windata.h b/gdb/tui/tui-windata.h
new file mode 100644
index 00000000000..0b1e700f1bb
--- /dev/null
+++ b/gdb/tui/tui-windata.h
@@ -0,0 +1,47 @@
+/* Data/register window display.
+ Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef _TUI_DATAWIN_H
+#define _TUI_DATAWIN_H
+
+
+/*****************************************
+** TYPE DEFINITIONS **
+******************************************/
+
+
+
+/*****************************************
+** PUBLIC FUNCTION EXTERNAL DECLS **
+******************************************/
+extern void tuiEraseDataContent (char *);
+extern void tuiDisplayAllData (void);
+extern void tuiCheckDataValues (struct frame_info *);
+extern void tuiDisplayDataFromLine (int);
+extern int tuiFirstDataItemDisplayed (void);
+extern int tuiFirstDataElementNoInLine (int);
+extern void tuiDeleteDataContentWindows (void);
+extern void tuiRefreshDataWin (void);
+extern void tuiDisplayDataFrom (int, int);
+extern void tuiVerticalDataScroll (TuiScrollDirection, int);
+
+#endif
+/*_TUI_DATAWIN_H*/
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
new file mode 100644
index 00000000000..2f32f646c74
--- /dev/null
+++ b/gdb/tui/tui-wingeneral.c
@@ -0,0 +1,285 @@
+/* General window behavior.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation,
+ Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-wingeneral.h"
+#include "tui/tui-win.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+/***********************
+** PUBLIC FUNCTIONS
+***********************/
+/*
+ ** tuiRefreshWin()
+ ** Refresh the window
+ */
+void
+tuiRefreshWin (TuiGenWinInfoPtr winInfo)
+{
+ if (winInfo->type == DATA_WIN && winInfo->contentSize > 0)
+ {
+ int i;
+
+ for (i = 0; (i < winInfo->contentSize); i++)
+ {
+ TuiGenWinInfoPtr dataItemWinPtr;
+
+ dataItemWinPtr = &((TuiWinContent)
+ winInfo->content)[i]->whichElement.dataWindow;
+ if (m_genWinPtrNotNull (dataItemWinPtr) &&
+ dataItemWinPtr->handle != (WINDOW *) NULL)
+ wrefresh (dataItemWinPtr->handle);
+ }
+ }
+ else if (winInfo->type == CMD_WIN)
+ {
+ /* Do nothing */
+ }
+ else
+ {
+ if (winInfo->handle != (WINDOW *) NULL)
+ wrefresh (winInfo->handle);
+ }
+
+ return;
+} /* tuiRefreshWin */
+
+
+/*
+ ** tuiDelwin()
+ ** Function to delete the curses window, checking for null
+ */
+void
+tuiDelwin (WINDOW * window)
+{
+ if (window != (WINDOW *) NULL)
+ delwin (window);
+
+ return;
+} /* tuiDelwin */
+
+
+/* Draw a border arround the window. */
+void
+boxWin (TuiGenWinInfoPtr winInfo, int highlightFlag)
+{
+ if (winInfo && winInfo->handle)
+ {
+ WINDOW *win;
+ int attrs;
+
+ win = winInfo->handle;
+ if (highlightFlag == HILITE)
+ attrs = tui_active_border_attrs;
+ else
+ attrs = tui_border_attrs;
+
+ wattron (win, attrs);
+ wborder (win, tui_border_vline, tui_border_vline,
+ tui_border_hline, tui_border_hline,
+ tui_border_ulcorner, tui_border_urcorner,
+ tui_border_llcorner, tui_border_lrcorner);
+ if (winInfo->title)
+ mvwaddstr (win, 0, 3, winInfo->title);
+ wattroff (win, attrs);
+ }
+}
+
+
+/*
+ ** unhighlightWin().
+ */
+void
+unhighlightWin (TuiWinInfoPtr winInfo)
+{
+ if (m_winPtrNotNull (winInfo) && winInfo->generic.handle != (WINDOW *) NULL)
+ {
+ boxWin ((TuiGenWinInfoPtr) winInfo, NO_HILITE);
+ wrefresh (winInfo->generic.handle);
+ m_setWinHighlightOff (winInfo);
+ }
+} /* unhighlightWin */
+
+
+/*
+ ** highlightWin().
+ */
+void
+highlightWin (TuiWinInfoPtr winInfo)
+{
+ if (m_winPtrNotNull (winInfo) &&
+ winInfo->canHighlight && winInfo->generic.handle != (WINDOW *) NULL)
+ {
+ boxWin ((TuiGenWinInfoPtr) winInfo, HILITE);
+ wrefresh (winInfo->generic.handle);
+ m_setWinHighlightOn (winInfo);
+ }
+} /* highlightWin */
+
+
+/*
+ ** checkAndDisplayHighlightIfNecessay
+ */
+void
+checkAndDisplayHighlightIfNeeded (TuiWinInfoPtr winInfo)
+{
+ if (m_winPtrNotNull (winInfo) && winInfo->generic.type != CMD_WIN)
+ {
+ if (winInfo->isHighlighted)
+ highlightWin (winInfo);
+ else
+ unhighlightWin (winInfo);
+
+ }
+ return;
+} /* checkAndDisplayHighlightIfNeeded */
+
+
+/*
+ ** makeWindow().
+ */
+void
+makeWindow (TuiGenWinInfoPtr winInfo, int boxIt)
+{
+ WINDOW *handle;
+
+ handle = newwin (winInfo->height,
+ winInfo->width,
+ winInfo->origin.y,
+ winInfo->origin.x);
+ winInfo->handle = handle;
+ if (handle != (WINDOW *) NULL)
+ {
+ if (boxIt == BOX_WINDOW)
+ boxWin (winInfo, NO_HILITE);
+ winInfo->isVisible = TRUE;
+ scrollok (handle, TRUE);
+ }
+}
+
+
+/*
+ ** makeVisible().
+ ** We can't really make windows visible, or invisible. So we
+ ** have to delete the entire window when making it visible,
+ ** and create it again when making it visible.
+ */
+void
+makeVisible (TuiGenWinInfoPtr winInfo, int visible)
+{
+ /* Don't tear down/recreate command window */
+ if (winInfo->type == CMD_WIN)
+ return;
+
+ if (visible)
+ {
+ if (!winInfo->isVisible)
+ {
+ makeWindow (
+ winInfo,
+ (winInfo->type != CMD_WIN && !m_winIsAuxillary (winInfo->type)));
+ winInfo->isVisible = TRUE;
+ }
+ }
+ else if (!visible &&
+ winInfo->isVisible && winInfo->handle != (WINDOW *) NULL)
+ {
+ winInfo->isVisible = FALSE;
+ tuiDelwin (winInfo->handle);
+ winInfo->handle = (WINDOW *) NULL;
+ }
+
+ return;
+} /* makeVisible */
+
+
+/*
+ ** makeAllVisible().
+ ** Makes all windows invisible (except the command and locator windows)
+ */
+void
+makeAllVisible (int visible)
+{
+ int i;
+
+ for (i = 0; i < MAX_MAJOR_WINDOWS; i++)
+ {
+ if (m_winPtrNotNull (winList[i]) &&
+ ((winList[i])->generic.type) != CMD_WIN)
+ {
+ if (m_winIsSourceType ((winList[i])->generic.type))
+ makeVisible ((winList[i])->detail.sourceInfo.executionInfo,
+ visible);
+ makeVisible ((TuiGenWinInfoPtr) winList[i], visible);
+ }
+ }
+
+ return;
+} /* makeAllVisible */
+
+/*
+ ** refreshAll().
+ ** Function to refresh all the windows currently displayed
+ */
+void
+refreshAll (TuiWinInfoPtr * list)
+{
+ TuiWinType type;
+ TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+
+ for (type = SRC_WIN; (type < MAX_MAJOR_WINDOWS); type++)
+ {
+ if (list[type] && list[type]->generic.isVisible)
+ {
+ if (type == SRC_WIN || type == DISASSEM_WIN)
+ {
+ touchwin (list[type]->detail.sourceInfo.executionInfo->handle);
+ tuiRefreshWin (list[type]->detail.sourceInfo.executionInfo);
+ }
+ touchwin (list[type]->generic.handle);
+ tuiRefreshWin (&list[type]->generic);
+ }
+ }
+ if (locator->isVisible)
+ {
+ touchwin (locator->handle);
+ tuiRefreshWin (locator);
+ }
+
+ return;
+} /* refreshAll */
+
+
+/*********************************
+** Local Static Functions
+*********************************/
diff --git a/gdb/tui/tui-wingeneral.h b/gdb/tui/tui-wingeneral.h
new file mode 100644
index 00000000000..42d1ce46add
--- /dev/null
+++ b/gdb/tui/tui-wingeneral.h
@@ -0,0 +1,49 @@
+/* General window behavior.
+ Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef TUI_GENERAL_WIN_H
+#define TUI_GENERAL_WIN_H
+
+/*
+ ** Functions
+ */
+extern void unhighlightWin (TuiWinInfoPtr);
+extern void makeVisible (TuiGenWinInfoPtr, int);
+extern void makeAllVisible (int);
+extern void makeWindow (TuiGenWinInfoPtr, int);
+extern TuiWinInfoPtr copyWin (TuiWinInfoPtr);
+extern void boxWin (TuiGenWinInfoPtr, int);
+extern void highlightWin (TuiWinInfoPtr);
+extern void checkAndDisplayHighlightIfNeeded (TuiWinInfoPtr);
+extern void refreshAll (TuiWinInfoPtr *);
+extern void tuiDelwin (WINDOW * window);
+extern void tuiRefreshWin (TuiGenWinInfoPtr);
+
+/*
+ ** Macros
+ */
+#define m_beVisible(winInfo) makeVisible((TuiGenWinInfoPtr)(winInfo), TRUE)
+#define m_beInvisible(winInfo) \
+ makeVisible((TuiGenWinInfoPtr)(winInfo), FALSE)
+#define m_allBeVisible() makeAllVisible(TRUE)
+#define m_allBeInvisible() makeAllVisible(FALSE)
+
+#endif /*TUI_GENERAL_WIN_H */
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
new file mode 100644
index 00000000000..87609b4cde8
--- /dev/null
+++ b/gdb/tui/tui-winsource.c
@@ -0,0 +1,715 @@
+/* TUI display source/assembly window.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
+
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include <ctype.h>
+#include "symtab.h"
+#include "frame.h"
+#include "breakpoint.h"
+#include "value.h"
+#include "source.h"
+
+#include "tui/tui.h"
+#include "tui/tui-data.h"
+#include "tui/tui-stack.h"
+#include "tui/tui-win.h"
+#include "tui/tui-wingeneral.h"
+#include "tui/tui-winsource.h"
+#include "tui/tui-source.h"
+#include "tui/tui-disasm.h"
+
+#ifdef HAVE_NCURSES_H
+#include <ncurses.h>
+#else
+#ifdef HAVE_CURSES_H
+#include <curses.h>
+#endif
+#endif
+
+/* Function to display the "main" routine. */
+void
+tui_display_main (void)
+{
+ if ((sourceWindows ())->count > 0)
+ {
+ CORE_ADDR addr;
+
+ addr = tui_get_begin_asm_address ();
+ if (addr != (CORE_ADDR) 0)
+ {
+ struct symtab_and_line sal;
+
+ tuiUpdateSourceWindowsWithAddr (addr);
+ sal = find_pc_line (addr, 0);
+ if (sal.symtab)
+ tuiUpdateLocatorFilename (sal.symtab->filename);
+ else
+ tuiUpdateLocatorFilename ("??");
+ }
+ }
+}
+
+
+
+/*
+ ** tuiUpdateSourceWindow().
+ ** Function to display source in the source window. This function
+ ** initializes the horizontal scroll to 0.
+ */
+void
+tuiUpdateSourceWindow (TuiWinInfoPtr winInfo, struct symtab *s,
+ TuiLineOrAddress lineOrAddr, int noerror)
+{
+ winInfo->detail.sourceInfo.horizontalOffset = 0;
+ tuiUpdateSourceWindowAsIs (winInfo, s, lineOrAddr, noerror);
+
+ return;
+} /* tuiUpdateSourceWindow */
+
+
+/*
+ ** tuiUpdateSourceWindowAsIs().
+ ** Function to display source in the source/asm window. This
+ ** function shows the source as specified by the horizontal offset.
+ */
+void
+tuiUpdateSourceWindowAsIs (TuiWinInfoPtr winInfo, struct symtab *s,
+ TuiLineOrAddress lineOrAddr, int noerror)
+{
+ TuiStatus ret;
+
+ if (winInfo->generic.type == SRC_WIN)
+ ret = tuiSetSourceContent (s, lineOrAddr.lineNo, noerror);
+ else
+ ret = tui_set_disassem_content (lineOrAddr.addr);
+
+ if (ret == TUI_FAILURE)
+ {
+ tuiClearSourceContent (winInfo, EMPTY_SOURCE_PROMPT);
+ tuiClearExecInfoContent (winInfo);
+ }
+ else
+ {
+ tui_update_breakpoint_info (winInfo, 0);
+ tuiShowSourceContent (winInfo);
+ tuiUpdateExecInfo (winInfo);
+ if (winInfo->generic.type == SRC_WIN)
+ {
+ struct symtab_and_line sal;
+
+ sal.line = lineOrAddr.lineNo +
+ (winInfo->generic.contentSize - 2);
+ sal.symtab = s;
+ set_current_source_symtab_and_line (&sal);
+ /*
+ ** If the focus was in the asm win, put it in the src
+ ** win if we don't have a split layout
+ */
+ if (tuiWinWithFocus () == disassemWin &&
+ currentLayout () != SRC_DISASSEM_COMMAND)
+ tuiSetWinFocusTo (srcWin);
+ }
+ }
+
+
+ return;
+} /* tuiUpdateSourceWindowAsIs */
+
+
+/*
+ ** tuiUpdateSourceWindowsWithAddr().
+ ** Function to ensure that the source and/or disassemly windows
+ ** reflect the input address.
+ */
+void
+tuiUpdateSourceWindowsWithAddr (CORE_ADDR addr)
+{
+ if (addr != 0)
+ {
+ struct symtab_and_line sal;
+ TuiLineOrAddress l;
+
+ switch (currentLayout ())
+ {
+ case DISASSEM_COMMAND:
+ case DISASSEM_DATA_COMMAND:
+ tui_show_disassem (addr);
+ break;
+ case SRC_DISASSEM_COMMAND:
+ tui_show_disassem_and_update_source (addr);
+ break;
+ default:
+ sal = find_pc_line (addr, 0);
+ l.lineNo = sal.line;
+ tuiShowSource (sal.symtab, l, FALSE);
+ break;
+ }
+ }
+ else
+ {
+ int i;
+
+ for (i = 0; i < (sourceWindows ())->count; i++)
+ {
+ TuiWinInfoPtr winInfo = (TuiWinInfoPtr) (sourceWindows ())->list[i];
+
+ tuiClearSourceContent (winInfo, EMPTY_SOURCE_PROMPT);
+ tuiClearExecInfoContent (winInfo);
+ }
+ }
+
+ return;
+} /* tuiUpdateSourceWindowsWithAddr */
+
+/*
+ ** tuiUpdateSourceWindowsWithLine().
+ ** Function to ensure that the source and/or disassemly windows
+ ** reflect the input address.
+ */
+void
+tuiUpdateSourceWindowsWithLine (struct symtab *s, int line)
+{
+ CORE_ADDR pc;
+ TuiLineOrAddress l;
+
+ switch (currentLayout ())
+ {
+ case DISASSEM_COMMAND:
+ case DISASSEM_DATA_COMMAND:
+ find_line_pc (s, line, &pc);
+ tuiUpdateSourceWindowsWithAddr (pc);
+ break;
+ default:
+ l.lineNo = line;
+ tuiShowSource (s, l, FALSE);
+ if (currentLayout () == SRC_DISASSEM_COMMAND)
+ {
+ find_line_pc (s, line, &pc);
+ tui_show_disassem (pc);
+ }
+ break;
+ }
+
+ return;
+} /* tuiUpdateSourceWindowsWithLine */
+
+/*
+ ** tuiClearSourceContent().
+ */
+void
+tuiClearSourceContent (TuiWinInfoPtr winInfo, int displayPrompt)
+{
+ if (m_winPtrNotNull (winInfo))
+ {
+ register int i;
+
+ winInfo->generic.contentInUse = FALSE;
+ tuiEraseSourceContent (winInfo, displayPrompt);
+ for (i = 0; i < winInfo->generic.contentSize; i++)
+ {
+ TuiWinElementPtr element =
+ (TuiWinElementPtr) winInfo->generic.content[i];
+ element->whichElement.source.hasBreak = FALSE;
+ element->whichElement.source.isExecPoint = FALSE;
+ }
+ }
+
+ return;
+} /* tuiClearSourceContent */
+
+
+/*
+ ** tuiEraseSourceContent().
+ */
+void
+tuiEraseSourceContent (TuiWinInfoPtr winInfo, int displayPrompt)
+{
+ int xPos;
+ int halfWidth = (winInfo->generic.width - 2) / 2;
+
+ if (winInfo->generic.handle != (WINDOW *) NULL)
+ {
+ werase (winInfo->generic.handle);
+ checkAndDisplayHighlightIfNeeded (winInfo);
+ if (displayPrompt == EMPTY_SOURCE_PROMPT)
+ {
+ char *noSrcStr;
+
+ if (winInfo->generic.type == SRC_WIN)
+ noSrcStr = NO_SRC_STRING;
+ else
+ noSrcStr = NO_DISASSEM_STRING;
+ if (strlen (noSrcStr) >= halfWidth)
+ xPos = 1;
+ else
+ xPos = halfWidth - strlen (noSrcStr);
+ mvwaddstr (winInfo->generic.handle,
+ (winInfo->generic.height / 2),
+ xPos,
+ noSrcStr);
+
+ /* elz: added this function call to set the real contents of
+ the window to what is on the screen, so that later calls
+ to refresh, do display
+ the correct stuff, and not the old image */
+
+ tuiSetSourceContentNil (winInfo, noSrcStr);
+ }
+ tuiRefreshWin (&winInfo->generic);
+ }
+ return;
+} /* tuiEraseSourceContent */
+
+
+/* Redraw the complete line of a source or disassembly window. */
+static void
+tui_show_source_line (TuiWinInfoPtr winInfo, int lineno)
+{
+ TuiWinElementPtr line;
+ int x, y;
+
+ line = (TuiWinElementPtr) winInfo->generic.content[lineno - 1];
+ if (line->whichElement.source.isExecPoint)
+ wattron (winInfo->generic.handle, A_STANDOUT);
+
+ mvwaddstr (winInfo->generic.handle, lineno, 1,
+ line->whichElement.source.line);
+ if (line->whichElement.source.isExecPoint)
+ wattroff (winInfo->generic.handle, A_STANDOUT);
+
+ /* Clear to end of line but stop before the border. */
+ getyx (winInfo->generic.handle, y, x);
+ while (x + 1 < winInfo->generic.width)
+ {
+ waddch (winInfo->generic.handle, ' ');
+ getyx (winInfo->generic.handle, y, x);
+ }
+}
+
+/*
+ ** tuiShowSourceContent().
+ */
+void
+tuiShowSourceContent (TuiWinInfoPtr winInfo)
+{
+ if (winInfo->generic.contentSize > 0)
+ {
+ int lineno;
+
+ for (lineno = 1; lineno <= winInfo->generic.contentSize; lineno++)
+ tui_show_source_line (winInfo, lineno);
+ }
+ else
+ tuiEraseSourceContent (winInfo, TRUE);
+
+ checkAndDisplayHighlightIfNeeded (winInfo);
+ tuiRefreshWin (&winInfo->generic);
+ winInfo->generic.contentInUse = TRUE;
+}
+
+
+/*
+ ** tuiHorizontalSourceScroll().
+ ** Scroll the source forward or backward horizontally
+ */
+void
+tuiHorizontalSourceScroll (TuiWinInfoPtr winInfo,
+ TuiScrollDirection direction,
+ int numToScroll)
+{
+ if (winInfo->generic.content != (OpaquePtr) NULL)
+ {
+ int offset;
+ struct symtab *s;
+ struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+
+ if (cursal.symtab == (struct symtab *) NULL)
+ s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
+ else
+ s = cursal.symtab;
+
+ if (direction == LEFT_SCROLL)
+ offset = winInfo->detail.sourceInfo.horizontalOffset + numToScroll;
+ else
+ {
+ if ((offset =
+ winInfo->detail.sourceInfo.horizontalOffset - numToScroll) < 0)
+ offset = 0;
+ }
+ winInfo->detail.sourceInfo.horizontalOffset = offset;
+ tuiUpdateSourceWindowAsIs (
+ winInfo,
+ s,
+ ((TuiWinElementPtr)
+ winInfo->generic.content[0])->whichElement.source.lineOrAddr,
+ FALSE);
+ }
+
+ return;
+} /* tuiHorizontalSourceScroll */
+
+
+/* Set or clear the hasBreak flag in the line whose line is lineNo. */
+void
+tuiSetIsExecPointAt (TuiLineOrAddress l, TuiWinInfoPtr winInfo)
+{
+ int changed = 0;
+ int i;
+ TuiWinContent content = (TuiWinContent) winInfo->generic.content;
+
+ i = 0;
+ while (i < winInfo->generic.contentSize)
+ {
+ int newState;
+
+ if (content[i]->whichElement.source.lineOrAddr.addr == l.addr)
+ newState = TRUE;
+ else
+ newState = FALSE;
+ if (newState != content[i]->whichElement.source.isExecPoint)
+ {
+ changed++;
+ content[i]->whichElement.source.isExecPoint = newState;
+ tui_show_source_line (winInfo, i + 1);
+ }
+ i++;
+ }
+ if (changed)
+ tuiRefreshWin (&winInfo->generic);
+}
+
+/* Update the execution windows to show the active breakpoints.
+ This is called whenever a breakpoint is inserted, removed or
+ has its state changed. */
+void
+tui_update_all_breakpoint_info ()
+{
+ TuiList* list = sourceWindows ();
+ int i;
+
+ for (i = 0; i < list->count; i++)
+ {
+ TuiWinInfoPtr win = (TuiWinInfoPtr) list->list[i];
+
+ if (tui_update_breakpoint_info (win, FALSE))
+ {
+ tuiUpdateExecInfo (win);
+ }
+ }
+}
+
+
+/* Scan the source window and the breakpoints to update the
+ hasBreak information for each line.
+ Returns 1 if something changed and the execution window
+ must be refreshed. */
+int
+tui_update_breakpoint_info (TuiWinInfoPtr win, int current_only)
+{
+ int i;
+ int need_refresh = 0;
+ TuiSourceInfoPtr src = &win->detail.sourceInfo;
+
+ for (i = 0; i < win->generic.contentSize; i++)
+ {
+ struct breakpoint *bp;
+ extern struct breakpoint *breakpoint_chain;
+ int mode;
+ TuiSourceElement* line;
+
+ line = &((TuiWinElementPtr) win->generic.content[i])->whichElement.source;
+ if (current_only && !line->isExecPoint)
+ continue;
+
+ /* Scan each breakpoint to see if the current line has something to
+ do with it. Identify enable/disabled breakpoints as well as
+ those that we already hit. */
+ mode = 0;
+ for (bp = breakpoint_chain;
+ bp != (struct breakpoint *) NULL;
+ bp = bp->next)
+ {
+ if ((win == srcWin
+ && bp->source_file
+ && (strcmp (src->filename, bp->source_file) == 0)
+ && bp->line_number == line->lineOrAddr.lineNo)
+ || (win == disassemWin
+ && bp->loc->address == line->lineOrAddr.addr))
+ {
+ if (bp->enable_state == bp_disabled)
+ mode |= TUI_BP_DISABLED;
+ else
+ mode |= TUI_BP_ENABLED;
+ if (bp->hit_count)
+ mode |= TUI_BP_HIT;
+ if (bp->cond)
+ mode |= TUI_BP_CONDITIONAL;
+ if (bp->type == bp_hardware_breakpoint)
+ mode |= TUI_BP_HARDWARE;
+ }
+ }
+ if (line->hasBreak != mode)
+ {
+ line->hasBreak = mode;
+ need_refresh = 1;
+ }
+ }
+ return need_refresh;
+}
+
+
+/*
+ ** tuiSetExecInfoContent().
+ ** Function to initialize the content of the execution info window,
+ ** based upon the input window which is either the source or
+ ** disassembly window.
+ */
+TuiStatus
+tuiSetExecInfoContent (TuiWinInfoPtr winInfo)
+{
+ TuiStatus ret = TUI_SUCCESS;
+
+ if (winInfo->detail.sourceInfo.executionInfo != (TuiGenWinInfoPtr) NULL)
+ {
+ TuiGenWinInfoPtr execInfoPtr = winInfo->detail.sourceInfo.executionInfo;
+
+ if (execInfoPtr->content == (OpaquePtr) NULL)
+ execInfoPtr->content =
+ (OpaquePtr) allocContent (winInfo->generic.height,
+ execInfoPtr->type);
+ if (execInfoPtr->content != (OpaquePtr) NULL)
+ {
+ int i;
+
+ tui_update_breakpoint_info (winInfo, 1);
+ for (i = 0; i < winInfo->generic.contentSize; i++)
+ {
+ TuiWinElementPtr element;
+ TuiWinElementPtr srcElement;
+ int mode;
+
+ element = (TuiWinElementPtr) execInfoPtr->content[i];
+ srcElement = (TuiWinElementPtr) winInfo->generic.content[i];
+
+ memset(element->whichElement.simpleString, ' ',
+ sizeof(element->whichElement.simpleString));
+ element->whichElement.simpleString[TUI_EXECINFO_SIZE - 1] = 0;
+
+ /* Now update the exec info content based upon the state
+ of each line as indicated by the source content. */
+ mode = srcElement->whichElement.source.hasBreak;
+ if (mode & TUI_BP_HIT)
+ element->whichElement.simpleString[TUI_BP_HIT_POS] =
+ (mode & TUI_BP_HARDWARE) ? 'H' : 'B';
+ else if (mode & (TUI_BP_ENABLED | TUI_BP_DISABLED))
+ element->whichElement.simpleString[TUI_BP_HIT_POS] =
+ (mode & TUI_BP_HARDWARE) ? 'h' : 'b';
+
+ if (mode & TUI_BP_ENABLED)
+ element->whichElement.simpleString[TUI_BP_BREAK_POS] = '+';
+ else if (mode & TUI_BP_DISABLED)
+ element->whichElement.simpleString[TUI_BP_BREAK_POS] = '-';
+
+ if (srcElement->whichElement.source.isExecPoint)
+ element->whichElement.simpleString[TUI_EXEC_POS] = '>';
+ }
+ execInfoPtr->contentSize = winInfo->generic.contentSize;
+ }
+ else
+ ret = TUI_FAILURE;
+ }
+
+ return ret;
+}
+
+
+/*
+ ** tuiShowExecInfoContent().
+ */
+void
+tuiShowExecInfoContent (TuiWinInfoPtr winInfo)
+{
+ TuiGenWinInfoPtr execInfo = winInfo->detail.sourceInfo.executionInfo;
+ int curLine;
+
+ werase (execInfo->handle);
+ tuiRefreshWin (execInfo);
+ for (curLine = 1; (curLine <= execInfo->contentSize); curLine++)
+ mvwaddstr (execInfo->handle,
+ curLine,
+ 0,
+ ((TuiWinElementPtr)
+ execInfo->content[curLine - 1])->whichElement.simpleString);
+ tuiRefreshWin (execInfo);
+ execInfo->contentInUse = TRUE;
+
+ return;
+} /* tuiShowExecInfoContent */
+
+
+/*
+ ** tuiEraseExecInfoContent().
+ */
+void
+tuiEraseExecInfoContent (TuiWinInfoPtr winInfo)
+{
+ TuiGenWinInfoPtr execInfo = winInfo->detail.sourceInfo.executionInfo;
+
+ werase (execInfo->handle);
+ tuiRefreshWin (execInfo);
+
+ return;
+} /* tuiEraseExecInfoContent */
+
+/*
+ ** tuiClearExecInfoContent().
+ */
+void
+tuiClearExecInfoContent (TuiWinInfoPtr winInfo)
+{
+ winInfo->detail.sourceInfo.executionInfo->contentInUse = FALSE;
+ tuiEraseExecInfoContent (winInfo);
+
+ return;
+} /* tuiClearExecInfoContent */
+
+/*
+ ** tuiUpdateExecInfo().
+ ** Function to update the execution info window
+ */
+void
+tuiUpdateExecInfo (TuiWinInfoPtr winInfo)
+{
+ tuiSetExecInfoContent (winInfo);
+ tuiShowExecInfoContent (winInfo);
+} /* tuiUpdateExecInfo */
+
+TuiStatus
+tuiAllocSourceBuffer (TuiWinInfoPtr winInfo)
+{
+ register char *srcLineBuf;
+ register int i, lineWidth, maxLines;
+ TuiStatus ret = TUI_FAILURE;
+
+ maxLines = winInfo->generic.height; /* less the highlight box */
+ lineWidth = winInfo->generic.width - 1;
+ /*
+ ** Allocate the buffer for the source lines. Do this only once since they
+ ** will be re-used for all source displays. The only other time this will
+ ** be done is when a window's size changes.
+ */
+ if (winInfo->generic.content == (OpaquePtr) NULL)
+ {
+ srcLineBuf = (char *) xmalloc ((maxLines * lineWidth) * sizeof (char));
+ if (srcLineBuf == (char *) NULL)
+ fputs_unfiltered (
+ "Unable to Allocate Memory for Source or Disassembly Display.\n",
+ gdb_stderr);
+ else
+ {
+ /* allocate the content list */
+ if ((winInfo->generic.content =
+ (OpaquePtr) allocContent (maxLines, SRC_WIN)) == (OpaquePtr) NULL)
+ {
+ tuiFree (srcLineBuf);
+ srcLineBuf = (char *) NULL;
+ fputs_unfiltered (
+ "Unable to Allocate Memory for Source or Disassembly Display.\n",
+ gdb_stderr);
+ }
+ }
+ for (i = 0; i < maxLines; i++)
+ ((TuiWinElementPtr)
+ winInfo->generic.content[i])->whichElement.source.line =
+ srcLineBuf + (lineWidth * i);
+ ret = TUI_SUCCESS;
+ }
+ else
+ ret = TUI_SUCCESS;
+
+ return ret;
+} /* tuiAllocSourceBuffer */
+
+
+/*
+ ** tuiLineIsDisplayed().
+ ** Answer whether the a particular line number or address is displayed
+ ** in the current source window.
+ */
+int
+tuiLineIsDisplayed (int line, TuiWinInfoPtr winInfo,
+ int checkThreshold)
+{
+ int isDisplayed = FALSE;
+ int i, threshold;
+
+ if (checkThreshold)
+ threshold = SCROLL_THRESHOLD;
+ else
+ threshold = 0;
+ i = 0;
+ while (i < winInfo->generic.contentSize - threshold && !isDisplayed)
+ {
+ isDisplayed = (((TuiWinElementPtr)
+ winInfo->generic.content[i])->whichElement.source.lineOrAddr.lineNo
+ == (int) line);
+ i++;
+ }
+
+ return isDisplayed;
+} /* tuiLineIsDisplayed */
+
+
+/*
+ ** tuiLineIsDisplayed().
+ ** Answer whether the a particular line number or address is displayed
+ ** in the current source window.
+ */
+int
+tuiAddrIsDisplayed (CORE_ADDR addr, TuiWinInfoPtr winInfo,
+ int checkThreshold)
+{
+ int isDisplayed = FALSE;
+ int i, threshold;
+
+ if (checkThreshold)
+ threshold = SCROLL_THRESHOLD;
+ else
+ threshold = 0;
+ i = 0;
+ while (i < winInfo->generic.contentSize - threshold && !isDisplayed)
+ {
+ isDisplayed = (((TuiWinElementPtr)
+ winInfo->generic.content[i])->whichElement.source.lineOrAddr.addr
+ == addr);
+ i++;
+ }
+
+ return isDisplayed;
+}
+
+
+/*****************************************
+** STATIC LOCAL FUNCTIONS **
+******************************************/
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
new file mode 100644
index 00000000000..cb00449ed2d
--- /dev/null
+++ b/gdb/tui/tui-winsource.h
@@ -0,0 +1,68 @@
+/* TUI display source/assembly window.
+ Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef _TUI_SOURCEWIN_H
+#define _TUI_SOURCEWIN_H
+
+/* Update the execution windows to show the active breakpoints.
+ This is called whenever a breakpoint is inserted, removed or
+ has its state changed. */
+extern void tui_update_all_breakpoint_info (void);
+
+/* Scan the source window and the breakpoints to update the
+ hasBreak information for each line.
+ Returns 1 if something changed and the execution window
+ must be refreshed. */
+extern int tui_update_breakpoint_info (TuiWinInfoPtr win, int current_only);
+
+/* Function to display the "main" routine. */
+extern void tui_display_main (void);
+extern void tuiUpdateSourceWindow (TuiWinInfoPtr, struct symtab *, TuiLineOrAddress,
+ int);
+extern void tuiUpdateSourceWindowAsIs (TuiWinInfoPtr, struct symtab *, TuiLineOrAddress,
+ int);
+extern void tuiUpdateSourceWindowsWithAddr (CORE_ADDR);
+extern void tuiUpdateSourceWindowsWithLine (struct symtab *, int);
+extern void tuiClearSourceContent (TuiWinInfoPtr, int);
+extern void tuiEraseSourceContent (TuiWinInfoPtr, int);
+extern void tuiSetSourceContentNil (TuiWinInfoPtr, char *);
+extern void tuiShowSourceContent (TuiWinInfoPtr);
+extern void tuiHorizontalSourceScroll (TuiWinInfoPtr, TuiScrollDirection,
+ int);
+extern TuiStatus tuiSetExecInfoContent (TuiWinInfoPtr);
+extern void tuiShowExecInfoContent (TuiWinInfoPtr);
+extern void tuiEraseExecInfoContent (TuiWinInfoPtr);
+extern void tuiClearExecInfoContent (TuiWinInfoPtr);
+extern void tuiUpdateExecInfo (TuiWinInfoPtr);
+
+extern void tuiSetIsExecPointAt (TuiLineOrAddress, TuiWinInfoPtr);
+extern TuiStatus tuiAllocSourceBuffer (TuiWinInfoPtr);
+extern int tuiLineIsDisplayed (int, TuiWinInfoPtr, int);
+extern int tuiAddrIsDisplayed (CORE_ADDR, TuiWinInfoPtr, int);
+
+
+/*
+ ** Constant definitions
+ */
+#define SCROLL_THRESHOLD 2 /* threshold for lazy scroll */
+
+#endif
+/*_TUI_SOURCEWIN_H */