* cris-tdep.c (cris_scan_prologue): Save the frame pointer's offset
when the frame pointer is pushed. Don't set the frame pointer's
address on the stack unless it's actually located there.
Set the SRP's address on the stack correctly when the PC is still in
the prologue.
(cris_return_value): New function.
(cris_gdbarch_init): Clear deprecated store_return_value,
extract_return_value.
(i387_collect_fxsave): New prototype.
* i387-tdep.c: Update copyright year.
(i387_collect_fxsave): New function containing most of the code
from i387_fill_fxsave.
(i387_fill_fxsave): Call i387_collect_fxsave.
(i386_handle_nonaligned_watchpoint): Rename local variable `rv' to
`retval'. Make variables `align' and `size' local to while-loop.
(i386_stopped_data_address): Rename local variable `ret' to `addr'.
(_initialize_i386_nat): New prototype.
* hppa-tdep.c (hppa_gdbarch_init): On 32-bit systems always use
the new frame unwind code.
(hppa_frame_cache): Use PCOQ_HEAD_REGNUM instead of PC_REGNUM.
(hppa_frame_prev_register): Compute PCOQ_TAIL_REGNUM from
PCOQ_HEAD_REGNUM.
* valprint.h (print_hex_chars, print_char_chars): New prototypes.
* valprint.c (print_hex_chars): Change from static to external.
(print_char_chars): New function.
* printcmd.c (print_scalar_formatted): For integer and enum types
that are longer than LONGEST, perform processing via appropriate
print_*_chars routines.
* amd64-tdep.c: Renamed from x86-64-tdep.c. Include
"amd64-tdep.h" instead of "x86-64-tdep.h".
* amd64-nat.c: Include "amd64-tdep.h" instead of "x86-64-tdep.h".
* amd64-linux-tdep.h: Renamed from x86-64-linux.h.
* amd64-linux-tdep.c: Renamed from x86-64-linux-tdep.c. Include
"amd64-tdep.h" and "amd64-linux-tdep.h" instead of "x86-64-tdep.h"
and "x86-64-tdep.c".
* amd64-linux-nat.c: Renamed from x86-64-linux-nat.c. Include
"amd64-tdep.h" and "amd64-linux-tdep.h" instead of "x86-64-tdep.h"
and "x86-64-tdep.c".
* amd64bsd-nat.c: Update copyright year.
Include "amd64-tdep.h" instead of "x86-64-tdep.h".
* amd64fbsd-tdep.c: Include "amd64-tdep.h" instead of
"x86-64-tdep.h".
* amd64fbsd-nat.c: Include "amd64-tdep.h" instead of
"x86-64-tdep.h".
* amd64nbsd-tdep.c: Include "amd64-tdep.h" instead of
"x86-64-tdep.h".
* amd64nbsd-nat.c: Include "amd64-tdep.h" instead of
"x86-64-tdep.h".
* amd64obsd-tdep.c: Include "amd64-tdep.h" instead of
"x86-64-tdep.h".
* amd64obsd-nat.c: Include "amd64-tdep.h" instead of
"x86-64-tdep.h".
* configure.host: (x86_64-*-linux*): Set gdb_target to linux64.
* configure.tgt (x86_64-*-linux*): Set gdb_target to linux64.
* Makefile.in (amd64_linux_tdep_h): Renamed from
x86_64_linux_tdep_h.
(amd64_tdep_h): Renamed from x86_64_tdep_h.
(amd64bsd-nat.o, amd64fbsd-nat.o, amd64fbsd-tdep.o, amd64-nat.o)
(amd64nbsd-nat.o, amd64nbsd-tdep.o, amd64obsd-nat.o)
(amd64obsd-tdep.o): Update dependencies.
(amd64-tdep.o, amd64-linux-nat.o, amd64-linux-tdep.o): New
dependencies.
(x86-64-linux-nat.o, x86-64-linux-tdep.o, x86-64-tdep.o): Remove
dependencies.
(ALLDEPFILES): Add amd64-tdep.c, amd64obsd-nat.c, amd64obsd-nat.c,
amd64-linux-nat.c amd64-linux-tdep.c.
* config/i386/tm-linux64.h: Renamed from tm-x86-64linux.h
* config/i386/nm-linux64.h: Renamed from nm-x86-64linux.h.
* config/i386/linux64.mt: Renamed from x86-64linux.mt.
(TDEPFILES): Replace x86-64-tdep.o and x86-64-linux-tdep.o with
amd64-tdep.o and amd64-linux-tdep.o.
(TM_FILE): Set to tm-linux64.h.
* config/i386/linux64.mh: Renamed from x86-64linux.mh.
(NAT_FILE): Set to nm-linux64.h.
(NATDEPFILES): Replace x86-64-linux-nat.o with amd64-linux-nat.o.
* config/i386/fbsd64.mt (TDEPFILES): Replace x86-64-tdep.o with
amd64-tdep.o.
* config/i386/nbsd64.mt (TDEPFILES): Replace x86-64-tdep.o with
amd64-tdep.o.
* config/i386/obsd64.mt (TDEPFILES): Replace x86-64-tdep.o with
amd64-tdep.o.
PR cli/1566. Problem found, and fix suggested by David Allan.
* cli/cli-script.c (execute_control_command): Unconditionally
install a cleanup. Default "ret" to "invalid_control". Use
"break" instead of "return" to escape from the switch.
with the lines macro defined in term.h on AiX.
* tui/tui-regs.c: %s/label_width/tui_label_width/g, to avoid
a collision with the label_width macro defined in term.h on AiX.
Committed by Kevin Buettner <kevinb@redhat.com>.
* ia64-tdep.h (ia64_write_pc, ia64_linux_write_pc): Declare.
* ia64-tdep.c (ia64_write_pc): Make it a global function.
(ia64_gdbarch_init): For Linux targets, use ia64_linux_write_pc()
instead of ia64_write_pc().
* ia64-linux-tdep.c (regcache.h): Include.
(ia64_linux_write_pc): New function.
(enum amd64_regnum): New.
(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): Removed.
(AMD64_NUM_GREGS): Renamed from X86_64_NUM_GREGS.
(amd64_init_abi, amd64_supply_fxsave, amd64_fill_fxsave): Adjust
prototypes for renamed functions.
* x86-64-tdep.c: Fix typo.
(amd64_dwarf_regmap): Use constants from `enum amd64_regnum' for
register numbers.
(amd64_return_value, amd64_push_arguments, amd64_push_dummy_call):
Use constants from `enum amd64_regnum' for register numbers.
(AMD64_NUM_SAVED_REGS): Adjust for renamed macros.
(amd64_analyze_prologue, amd64_frame_cache,
amd64_sigtramp_frame_cache): Use constants from `enum
amd64_regnum' for register numbers.
(amd64_supply_fpregset): Adjust for renamed functions.
(amd64_init_abi): Rename from x86_64_init_abi. Use constants from
`enum amd64_regnum' for register numbers.
(I387_ST0_REGNUM): Use constant from `enum amd64_regnum'.
(amd64_supply_fxsave): Rename from x86_64_supply_fxsave.
(amd64_fill_fxsave): Rename fro x86_64_fill_fxsave.
* x86-64-linux-tdep.c (amd64_linux_supply_gregset)
(amd64_linux_fill_gregset): Adjust for renamed macros.
(fetch_core_registers): Adjust for renamed functions.
(amd64_linux_init_abi): Adjust for renamed functions.
* x86-64-linux-nat.c (supply_gregset, fill_gregset): Adjust for
renamed functions.
* amd64-nat.c: Adjust for renamed macros.
* amd64bsd-nat.c (fetch_inferior_registers)
(store_inferior_registers): Use constants from `enum amd64_regnum'
for register numbers. Adjust for renamed variables.
* amd64fbsd-nat.c (supply_gregset, fill_gregset): Adjust for
renamed variables.
(_initialize_amd64fbsd_nat): Use constants from `enum
amd64_regnum' for register numbers.
* amd64fbsd-tdep.c (amd64fbsd_sigcontext_addr): Use constants from
`enum amd64_regnum' for register numbers.
(amd64fbsd_init_abi): Adjust for renamed functions.
* amd64nbsd-tdep.c (amd64nbsd_sigcontext_addr): Use constants from
`enum amd64_regnum' for register numbers.
(amd64nbsd_init_abi): Adjust for renamed functions.
(_initialize_amd64nbsd_ndep): Adjust for renamed macros.
* amd64obsd-tdep.c (amd64obsd_sigcontext_addr): Use constants from
`enum amd64_regnum' for register numbers.
(amd64obsd_init_abi): Adjust for renamed functions.
(_initialize_amd64obsd_ndep): Adjust for renamed macros.
* defs.h (nquery, yquery): New prototypes.
* breakpoint.c (break_command_1): Use new nquery interface.
* utils.c (defaulted_query, nquery, yquery): New functions.
* hppa-tdep.c (hppa_frame_align): New function.
(hppa32_push_dummy_call): New function.
(hppa64_push_dummy_call): New function.
(hppa_gdbarch_init): Set frame_align and push_dummy_call; keep
disabled.
(amd64_linux_supply_gregset): Renamed from
x86_64_linux_supply_gresget.
(amd64_linux_fill_gregset): Renamed from
x86_64_linux_fill_gregset.
(fetch_core_registers): Adjust for renamed functions.
(amd64_core_fns): Renamed from x86_64_core_fns.
(amd64_linux_sigtramp_start): Renamed from
x86_64_linux_sigtramp_start.
(amd64_linux_pc_in_sigtramp): Renamed from
x86_64_linux_pc_in_sigtramp. Adjust for renamed functions.
(AMD64_LINUX_UCONTEXT_SIGCONTEXT_OFFSET): Renamed from
X86_64_LINUX_UCONTEXT_SIGCONTEXT_OFFSET.
(amd64_linux_sigcontext_addr): Renamed from
x86_64_linux_sigcontext_addr.
(amd64_linux_sc_reg_offset): Renamed from
x86_64_linux_sc_reg_offset.
(amd64_linux_init_abi): Renamed from x86_64_linux_init_abi.
Adjust for renamed functions and variables.
(_initialize_amd64_linux_tdep): Renamed from
_initialize_x86_64_linux_tdep. Adjust for renamed functions and
variables.
* x86-64-linux-tdep.h: Update copyright year. Tweak comment.
Adjust for renamed functions.
from x86_64_linux_gregset64_reg_offset.
(amd64_linux_gregset32_reg_offset): Rename from
x86_64_linux_gregset64_reg_offset.
(amd64_linux_dr_get): Renamed from x86_64_linux_dr_get.
(amd64_linux_dr_set): Renamed from x86_64_linux_dr_set.
(amd64_linux_dr_set_control): Renamed from
x86_64_linux_dr_set_control. Adjust for renamed functions.
(amd64_linux_dr_set_addr): Renamed from x86_64_linux_dr_set_addr.
Adjust for renamed functions.
(amd64_linux_dr_reset_addr): Renamed from
x86_64_linux_dr_reset_addr. Adjust for renamed functions.
(amd64_linux_dr_get_status): Renamed from
x86_64_linux_dr_get_status. Adjust for renamed functions.
(_initialize_amd64_linux_nat): Renamed from
_initialize_x86_64_linux_nat. Adjust for renamed variables and
functions.
* config/i386/nm-x86-64linux.h: Update copyright year.
Adjust for renamed functions.
2004-02-22 Andrew Cagney <cagney@redhat.com>
* hppa-tdep.c: Include "trad-frame.h", "frame-unwind.h", and
"frame-base.h".
(struct hppa_frame_cache): Define.
(hppa_frame_cache, hppa_frame_this_id): New functions.
(hppa_frame_prev_register): New function.
(hppa_frame_unwind, hppa_frame_base): New variables.
(hppa_frame_unwind_sniffer): New function.
(hppa_frame_base_address, hppa_unwind_pc): New function.
(hppa_gdbarch_init): Set unwind_dummy_id, unwind_pc, frame unwind
sniffer, and frame base sniffer; keep disabled.
(hppa_frame_base_sniffer, hppa_unwind_dummy_id): New functions.
* Makefile.in: Update dependencies, fix s/nbsd/obsd/ typo.
* i386obsd-tdep.c: Update copyright years. Include
"solib-svr4.h".
(i386obsd_init_abi): Don't set regset_from_core_section here.
(i386obsd_aout_init_abi): New function. Set
regset_from_core_section here.
(i386obsd_elf_init_abi): New function.
(_initialize_i386obsd_tdep): Register OS/ABI for OpenBSD ELF.
* Makefile.in (i386obsd-tdep.o): Update dependecies.
* config/i386/obsd.mt (TDEPFILES): Add solib.o and solib-svr4.o.
(TM_FILE): Set to tm-nbsd.h.
* config/i386/obsd.mh (NATDEPFILES): Remove solib.o and
solib-sunos.o.
comments.
(amd64obsd_supply_regset, amd64obsd_regset_from_core_section): New
functions.
(amd64obsd_init_abi): Reorder initializations. Use
amd64obsd_r_reg_offset to initialize the general-purpose register
set details. Set regset_from_core_section.
(_initialize_amd64obsd_tdep): Rename from
_initialize_amd64obsd_ndep. Add OS ABI handler for core dumps.
* Makefile.in (amd64obsd-tdep.o): Update dependencies.
* config/i386/obsd64.mt (TDEPFILES): Add i386-tdep.o.
2004-02-19 Fred Fish <fnf@redhat.com>
Fix for PR breakpoint/1558.
* sh-tdep.c (IS_JSR): New macro.
(sh_analyze_prologue): Use IS_JSR to terminate prologue scan.
* printcmd.c (print_scalar_formatted): Do not check for sizeof
type being greater than sizeof of host's LONGEST. Always use
unpack_long() unless format 'f' chosen.
Committed by Elena Zannoni <ezannoni@redhat.com>
* symtab.c (find_pc_sect_psymtab): Return the psymtab that
contains a symbol wich is the best, non-exact match for the given
pc. Update comments.
Committed by Jim Blandy <jimb@redhat.com>.
* eval.c (evaluate_subexp_standard, case OP_OBJC_MSGCALL): Use
CORE_ADDR as type for selectors. Correct types for GNU run time
message lookup function to use double indirection.
* objc-lang.c (lookup_child_selector): Use CORE_ADDR as return type.
* objc-lang.h (lookup_child_selector): Adapt prototype.
Committed by Jim Blandy <jimb@redhat.com>.
* s390-nat.c (SUBOFF): New macro.
(supply_gregset, fill_gregset): Use it to handle debugging
of 32-bit exectuables running under a 64-bit kernel.
* s390-tdep.c: Include "solib-svr4.h".
(s390_svr4_fetch_link_map_offset): New function.
(s390x_svr_fetch_link_map_offset): Likewise.
(s390_gdbarch_init): Call set_solib_svr4_fetch_link_map_offsets.
* Makefile.in (s390-tdep.o): Update dependencies.
Committed by Jim Blandy <jimb@redhat.com>.
* config/s390/nm-linux.h: Update comments. Do not include "solib.h".
(KERNEL_U_ADDR, REGISTER_U_ADDR, U_REGS_OFFSET): Remove.
(FETCH_INFERIOR_REGISTERS): Define.
* config/s390/s390.mh (NATDEPFILES): Remove core-aout.o and
core-regset.o.
* config/s390/s390x.mt: Remove.
* config/s390/tm-s390.h: Remove.
* config/s390/tm-linux.h: Do not include "s390/tm-s390.h".
(TARGET_ELF64): Remove.
(SKIP_TRAMPOLINE_CODE): Do not undefine.
* configure.tgt [s390-*-*, s390x-*-*]: Merge into single
s390*-*-* case; always set gdb_target to s390.
* regformats/reg-s390.dat: Remove control registers.
* regformats/reg-s390x.dat: Likewise.
* s390-tdep.h: New file.
* s390-nat.c: Do not include <asm/processor.h> or <value.h>.
Include "inferior.h" and "s390-tdep.h".
Remove private definition of offsetof.
(s390_register_u_addr): Remove.
(regmap_gregset, regmap_fpregset): Define.
(supply_gregset, fill_gregset): Reimplement.
(supply_fpregset, fill_fpregset): Likewise.
(s390_inferior_tid): New function.
(fetch_regs, store_regs, fetch_fpregs, store_fpregs): Likewise.
(fetch_inferior_registers, store_inferior_registers): Likewise.
* s390-tdep.c: Do not define S390_TDEP. Include "defs.h" instead
of <defs.h>. Include "reggroups.h", "regset.h", and "s390-tdep.h".
Global replace of S390_GP0_REGNUM by S390_R0_REGNUM.
Global replace of S390_FP0_REGNUM by S390_F0_REGNUM.
(struct gdbarch_tdep): Define.
(struct s390_register_info): Define.
(s390_register_info): New variable.
(s390_register_name): Reimplement.
(s390_register_type): New function.
(s390_register_raw_size, s390x_register_raw_size): Remove.
(s390_cannot_fetch_register): Remove.
(s390_register_byte): Remove.
(s390_register_virtual_type, s390x_register_virtual_type): Remove.
(s390_dwarf_regmap): New variable.
(s390_dwarf_reg_to_regnum): New function.
(s390_stab_reg_to_regnum): Remove.
(s390_pseudo_register_read, s390_pseudo_register_write): New functions.
(s390x_pseudo_register_read, s390x_pseudo_register_write): Likewise.
(s390_convert_register_p): Likewise.
(s390_register_to_value, s390_value_to_register): Likewise.
(s390_register_reggroup_p): Likewise.
(s390_regmap_gregset, s390x_regmap_gregset, s390_regmap_fpregset,
s390_gregset, s390x_gregset, s390_fpregset): New variables.
(s390_supply_regset, s390_regset_from_core_section): New functions.
(GDB_TARGET_IS_ESAME): Move here from tm-s390.h.
(S390_FPR_SIZE): Likewise.
(S390_GPR_SIZE): Likewise. Redefine in terms of GDB_TARGET_IS_ESAME.
Global replace of DEPRECATED_REGISTER_SIZE by S390_GPR_SIZE.
(S390_NUM_GPRS): Move here from tm-s390.h.
(S390_NUM_FPRS): Likewise.
(s390_in_function_epilogue_p): New function.
(s390_is_sigreturn): Replace S390_PSW_ADDR_SIZE by S390_GPR_SIZE.
Replace S390_PC_REGNUM by S390_PSWA_REGNUM.
(s390_gdbarch_init): Allocate and set up gdbarch_tdep structure.
Replace s390_stab_reg_to_regnum by s390_dwarf_reg_to_regnum.
Replace S390_FP_REGNUM by S390_SP_REGNUM.
Remove calls to:
set_gdbarch_deprecated_max_register_raw_size,
set_gdbarch_deprecated_max_register_virtual_size,
set_gdbarch_deprecated_register_byte,
set_gdbarch_cannot_fetch_register,
set_gdbarch_cannot_store_register,
set_gdbarch_deprecated_register_size,
set_gdbarch_deprecated_register_raw_size,
set_gdbarch_deprecated_register_virtual_size,
set_gdbarch_deprecated_register_virtual_type,
set_gdbarch_deprecated_register_bytes.
Add calls to:
set_gdbarch_num_pseudo_regs,
set_gdbarch_register_type,
set_gdbarch_convert_register_p,
set_gdbarch_register_to_value,
set_gdbarch_value_to_register,
set_gdbarch_register_reggroup_p,
set_gdbarch_regset_from_core_section,
set_gdbarch_pseudo_register_read,
set_gdbarch_pseudo_register_write,
set_gdbarch_in_function_epilogue_p.
* Makefile.in (s390-nat.o, s390-tdep.o): Update dependencies.
(s390_tdep_h): New variable.
forward references, complain if the references aren't resolved by
the time we're finished reading.
(cleanup_undefined_types): Make error message more appropriate for
a complaint.
* Makefile.in (defs_h): Remove dependency on progress_h.
* defs.h (QUIT): Remove use of PROGRESS macro. Remove include of
progress.h.
* main.c (captured_main): Delete use of START_PROGRESS and
END_PROGRESS.
2004-02-17 Elena Zannoni <ezannoni@redhat.com>
* gdb.base/selftest.exp (do_steps_and_nexts): Add comment.
* configure.in: Always check for curses, including pdcurses.
Warn, instead of error, when no curses are found. Enable TUI when
curses is available.
* configure: Re-generate.
* procfs.c (procfs_init_inferior): Assume that
START_INFERIOR_TRAPS_EXPECTED is defined.
* config/ns32k/nbsdaout.mt (TM_FILE): Set to tm-ns32k.h.
* config/ns32k/tm-nbsd.h: Delete file,
START_INFERIOR_TRAPS_EXPECTED already defined as 2.
* dwarf2-frame.c (dwarf2_frame_data): New variable.
(struct dwarf2_frame_ops): New.
(dwarf2_frame_default_init_reg): New function, based on
dwarf2_frame_init_reg.
(dwarf2_frame_init, dwarf2_frame_set_init_reg): New function.
(dwarf2_frame_init_reg): Call architecture-specific function.
(dwarf2_frame_objfile_data): Renamed from dwarf2_frame_data.
(dwarf2_frame_find_fde, add_fde): Use dwarf2_frame_objfile_data
instead of dwarf2_frame_data.
(_initialize_dwarf2_frame): Initailize new dwarf2_frame_data.
Initialize dwarf2_frame_objfile instead of old dwarf2_frame_data.
(mips_linux_in_dynsym_stub, mips_linux_in_dynsym_resolve_code)
(mips_linux_skip_resolver): New functions.
(mips_linux_init_abi): Call set_gdbarch_skip_solib_resolver
and set_gdbarch_in_solib_call_trampoline.
* mips-tdep.c (mips_gdbarch_init): Move gdbarch_init_osabi call
to after set_gdbarch_in_solib_return_trampoline. Only set the
solib hooks to mips16 functions if the OS ABI is unknown.
* config/mips/tm-linux.h (IN_SOLIB_CALL_TRAMPOLINE): Undefine after
including "config/tm-linux.h".
(IN_SOLIB_DYNSYM_RESOLVE_CODE): Define.
* Makefile.in (mips-linux-tdep.o): Update.
* linespec.c (decode_compound): Only look for a class symbol when
considering all but the rightmost component.
2004-02-11 David Carlton <carlton@kealia.com>
* gdb.cp/breakpoint.exp: New.
* gdb.cp/breakpoint.cc: New.