* regformats/reg-ppc.dat: Rename "ps" to "msr".
* regformats/reg-ppc64.dat: Likewise.
gdbserver/ChangeLog:
* configure.srv [powerpc64-*-linux*]: Add all files mentioned for
powerpc-*-linux* to srv_regobj and reg_xmlfiles.
* linux-ppc-low.c (ppc_get_pc): Support bi-arch operation.
(ppc_set_pc): Likewise.
(ppc_arch_setup): New function.
(ppc_fill_gregset): Call ppc_collect_ptrace_register instead
of collect_register.
(the_low_target): Use ppc_arch_setup as arch_setup initializer.
instead of linux-ppc64-low.o.
* linux-ppc64-low.c: Remove file.
* Makefile.in (SFILES): Remove linux-ppc64-low.c.
(linux-ppc64-low.o): Remove rule.
* linux-ppc-low.c (init_registers_ppc64): Add prototype.
(init_registers_powerpc_64): Likewise.
(ppc_regmap): Conditionally define depending on __powerpc64__.
(ppc_cannot_store_register): Do not special-case "fpscr" when
compiled on __powerpc64__.
(ppc_collect_ptrace_register): New function.
(ppc_supply_ptrace_register): New function.
(ppc_breakpoint): Change type to "unsigned int".
(ppc_breakpoint_at): Change type of "insn" to "unsigned int".
(the_low_target): Conditionally provide initializers for the
arch_setup member depending on __powerpc64__. Install
collect_ptrace_register and supply_ptrace_register members.
function body to test breakpoints.
* gdb.mi/mi-break.exp, gdb.mi/mi2-break.exp: Adjust the actual
location where the breakpoint is inserted when using the line
where a function is declared. Fix typo in the description of
one of the tests.
* gdb.mi/mi-simplerun.exp, gdb.mi/mi2-simplerun.exp: Likewise.
reg-s390.o and reg-s390x.o.
* linux-low.c (new_inferior): New global variable.
(linux_create_inferior, linux_attach): Set it.
(linux_wait_for_process): Call the_low_target.arch_setup after the
target has stopped for the first time.
(initialize_low): Do not call the_low_target.arch_setup.
* linux-s390-low.c (s390_get_pc): Support bi-arch operation.
(s390_set_pc): Likewise.
(s390_arch_setup): New function.
(the_low_target): Use s390_arch_setup as arch_setup routine.
* regcache.c (realloc_register_cache): New function.
(set_register_cache): Call it for each existing regcache.
r_brk_offset.
(mipsnbsd_lp64_fetch_link_map_offsets): Likewise.
* solib-svr4.c (solib_svr4_r_brk): New.
(open_symbol_file_object, svr4_current_sos): Always check the
debug base.
(svr4_fetch_objfile_link_map): Do not set debug_base.
(enable_break): Use r_brk if it is set.
(svr4_ilp32_fetch_link_map_offsets): Set r_brk_offset.
(svr4_lp64_fetch_link_map_offsets): Likewise.
* solib-svr4.h (struct link_map_offsets): Add r_brk_offset.
Mark Kettenis <kettenis@gnu.org>
* alpha-tdep.c (alpha_heuristic_unwind_cache): Replace saved_regs by
trad_frame_saved_reg.
(trad-frame.h): New include.
(alpha_heuristic_frame_unwind_cache): Use trad_frame_alloc_saved_regs
instead of frame_obstack_zalloc.
(alpha_heuristic_frame_prev_register): Use trad_frame_get_prev_register.
* Makefile.in (alpha-tdep.o): Add dependency to trad_frame_h.
* gdb.texinfo (vAttach, vRun): Remove requirement of the stub
killing the inferior when it is already debugging a process.
gdbserver/
* server.c (handle_v_requests): When handling the vRun and vAttach
packets, if already debugging a process, don't kill it. Return an
error instead.
and replace current_gdbarch by gdbarch.
(store_register): Update call for exec_one_dummy_insn.
(fetch_register, store_register): Update call of regmap.
* ppcnbsd-nat.c (getregs_supplies, getfpregs_supplies): Add gdbarch as
parameter and replace current_gdbarch by gdbarch.
(ppcnbsd_store_inferior_registers): Use get_regcache_arch to get at
the current architecture. Update call for getregs_supplies and
getfpregs_supplies.
(ppcnbsd_fetch_inferior_registers): Likewise.
* ppcobsd-nat.c (getfpregs_supplies): Add gdbarch as parameter and
replace current_gdbarch by gdbarch.
(ppcobsd_fetch_registers, ppcobsd_store_registers): Use
get_regcache_arch to get at the current architecture. Update call for
getfpregs_supplies.
parameter. Set current_process_handle and current_process_id from the
parameters. Clear globals.
(win32_create_inferior): Don't set current_process_handle and
current_process_id here. Instead pass them on the call to
do_initial_child_stuff.
(win32_attach): Likewise.
(win32_clear_inferiors): New.
(win32_kill): Don't close the current process handle or the
current thread handle here. Instead call win32_clear_inferiors.
(win32_detach): Don't open a new handle to the process. Call
win32_clear_inferiors.
(win32_join): Don't rely on current_process_handle; open a new
handle using the process id.
(win32_wait): Call win32_clear_inferiors when the inferior process
has exited.
* NEWS (New native configurations): Xtensa GNU/Linux.
(New targets): Xtensa GNU/Linux.
* Makefile.in (ALL_TARGET_OBS): Add xtensa-linux-nat.o and
xtensa-linux-tdep.o
(ALLDEPFILES): Add xtensa-linux-tdep.c and xtensa-linux-nat.c
(xtensa-linux-nat.o, xtensa-linux-tdep.o): New dependencies.
* configure.tgt (xtensa*-*-linux*): New entry.
* xtensa-config.c (xtensa_tdep): New variable.
(xtensa_config_byte_order, xtensa_config_tdep): Removed.
(rmap): Change format based on new macro XTREG.
(XTENSA_CONFIG_INSTANTIATE): Use new macro defined in xtensa-tdep.h.
* xtensa-linux-nat.c: New.
* xtensa-linux-tdep.c: New.
* xtensa-xtregs.c: New.
* xtensa-tdep.h (xtensa_elf_gregset_t): Update.
(XTENSA_ELF_NGREG, XTREG, XTREG_END, XTENSA_GDBARCH_TDEP_INSTANTIATE)
(XCHAL_NUM_CONTEXTS, XCHAL_HAVE_EXCEPTIONS): New macros.
(xtensa_register_t): New field coprocessor.
(XTENSA_REGISTER_FLAGS_PRIVILEGED): Name spelling corrected.
* xtensa-tdep.c (xtensa_config_tdep, xtensa_config_byte_order): Removed.
(xtensa_pseudo_register_read, xtensa_pseudo_register_write):
Update to handle privileged registers.
(xtensa_supply_gregset) Remove exccause and excvaddr registers.
(xtensa_push_dummy_call): Set windowstart register correctly.
(call0_analyze_prologue): Initialize xtensa_default_isa.
(xtensa_derive_tdep): New.
(xtensa_gdbarch_init): Get rid of xtensa_config_byte_order and
xtensa_config_tdep, use XCHAL_HAVE_BE and xtensa_tdep instead.
Call xtensa_derive_tdep().
* config/xtensa/linux.mh: New.
* regformats/reg-xtensa.dat: New.
(ambiguous_names_p): New fn.
(update_breakpoint_locations): When restoring bp enable status, don't
compare function names if any functions have same name.
* Makefile.in (breakpoint.o): Add hashtab.h dependency.
* gdb.cp/mb-inline.exp: New.
* gdb.cp/mb-inline.h: New.
* gdb.cp/mb-inline1.cc: New.
* gdb.cp/mb-inline2.cc: New.
(struct string_vector, new_string_vector, string_vector_append):
Delete.
(char_ptr): New typedef.
(DEF_VEC_P (char_ptr)): New VEC type.
(symbol_completion_add): Update profile to take the new VEC type
instead of the old string_vector structure. Update code accordingly.
(ada_make_symbol_completion_list): Use the new VEC type instead of
the old string_vector structure, and update the code accordingly.
* Makefile.in (ada-lang.o): Add dependency on vec.h.
integer/float division operations when EVAL_AVOID_SIDE_EFFECTS.
* valops.c (value_one): New function.
* value.h (value_one): Declare.
Fix argument promotion for binary arithmetic ops for C.
* valarith.c (unop_result_type): New fn.
(binop_result_type): New fn.
(value_binop): Move result type computation to binop_result_type.
(value_pos, value_neg, value_complement): Move result type
computation to unop_result_type.
* gdb.base/whatis-exp.exp: Fix expected result of whatis x+y, x-y, x*y.
* gdbtypes.c (get_vptr_fieldno): Renamed from fill_in_vptr_fieldno.
Return basetype, fieldno if found. All callers updated.
Don't cache TYPE_VPTR_FIELDNO, TYPE_VPTR_BASETYPE if from different
objfile.
* gdbtypes.h (get_vptr_fieldno): Renamed from fill_in_vptr_fieldno.
* symfile.h (fill_in_vptr_fieldno): Delete.
* gdb.cp/gdb2384.exp: New file.
* gdb.cp/gdb2384.cc: New file.
* gdb.cp/gdb2384-base.h: New file.
* gdb.cp/gdb2384-base.cc: New file.
Thiago Jung Bauermann <bauerman@br.ibm.com>
* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Pass floats that
don't fit into registerson the stack the way GCC does.
about non-existent functions for -break-insert.
* breakpoint.c (break_command_really): Use throw_exception
for rethrowing. If rethrowing, don't print the exception.
available in PowerPC architecture.
(Embedded Processors): Change node name of PowerPC item in menu.
(PowerPC): Rename to...
(PowerPC Embedded): this.
(Architectures): Add new PowerPC item in menu.
(PowerPC): New node.
Thiago Jung Bauermann <bauerman@br.ibm.com>
* infcmd.c (default_print_registers_info): Also print hex
raw contents for TYPE_CODE_DECFLOAT registers.
* ppc-tdep.h (gdbarch_tdep): Add ppc_dl0_regnum member.
* rs6000-tdep.c (IS_DFP_PSEUDOREG): New macro.
(rs6000_register_name): Add support for DFP pseudo-registers.
(rs6000_pseudo_register_type): Likewise.
rs6000_pseudo_register_reggroup_p): Likewise.
(ppc_pseudo_register_read): New function.
(ppc_pseudo_register_write): Likewise.
(rs6000_pseudo_register_read): Likewise.
(rs6000_pseudo_register_write): Likewise.
(e500_pseudo_register_read): Move checks to
rs6000_pseudo_register_read.
(e500_pseudo_register_write): Move checks to
rs6000_pseudo_register_write.
(rs6000_gdbarch_init): Initialize tdep->ppc_dl0_regnum. Install
rs6000_pseudo_register_read and rs6000_pseudo_register_write
in gdbarch if SPE or DFP is available. Adjust gdbarch's
num_pseudo_regs to account for DFP pseudo regs.
* rs6000-tdep.c (IS_SPE_PSEUDOREG): New macro.
(spe_register_p, rs6000_register_name, rs6000_pseudo_register_type,
rs6000_pseudo_register_reggroup_p, e500_move_ev_register,
e500_pseudo_register_read, e500_pseudo_register_write): Use
IS_SPE_PSEUDOREG macro.
(rs6000_frame_cache): Remove use of tdep->ppc_ev31_regnum.
(rs6000_gdbarch_init): Remove unnecessary num_sprs local variable.
Remove initialization of tdep->ppc_ev31_regnum.
* valarith.c (value_binop): Add floating-point BINOP_MIN and
BINOP_MAX cases.
For BINOP_EXP, use length and signedness of left operand only for
result, as for shifts.
For integral operands to BINOP_EXP, use new integer_pow and
uinteger_pow functions so as to get full range of results.
(integer_pow): New function.
(uinteger_pow): New function.
2008-01-30 Paul N. Hilfinger <hilfinger@adacore.com>
* gdb.ada/exprs: New test program.
* gdb.ada/exprs.exp: New testcase.
TYPE_CODE_DECFLOAT arguments.
(ppc64_sysv_abi_push_dummy_call) Likewise.
(get_decimal_float_return_value): New function.
(do_ppc_sysv_return_value): Add support for TYPE_CODE_DECFLOAT return
values by calling get_decimal_float_return_value.
(ppc64_sysv_abi_return_value): Likewise.
(linux_kill, linux_detach): Clean up the process list.
* remote-utils.c (remote_open): Improve port number parsing.
(putpkt_binary, input_interrupt): Only send interrupts if the target
is running.
* server.c (extended_protocol): Make static.
(attached): Define earlier.
(exit_requested, response_needed, program_argv): New variables.
(target_running): New.
(start_inferior): Clear attached here.
(attach_inferior): Set attached here.
(require_running): Define.
(handle_query): Use require_running and target_running. Implement
"monitor exit".
(handle_v_attach, handle_v_run): New.
(handle_v_requests): Use require_running. Handle vAttach and vRun.
(gdbserver_usage): Update.
(main): Redo argument parsing. Handle --debug and --multi. Handle
--attach along with other options or after the port. Save
program_argv. Support no initial program. Resynchronize
communication with GDB after an error. Handle "monitor exit".
Use require_running and target_running. Always allow the extended
protocol. Do not error out for Hc0 or Hc-1. Do not automatically
restart in extended mode.
* README: Refer to the GDB manual. Update --attach usage.
* remote.c (struct remote_state): Add cached_wait_status.
(remote_exec_file): New variable.
(PACKET_vAttach, PACKET_vRun): New constants.
(extended_remote_restart): Do not query for status.
(struct start_remote_args): New.
(remote_start_remote): Take it as a second argument. Check
whether the target is running. Issue an error for non-running
non-extended targets. Cache the wait status. Set inferior_ptid
here.
(remote_open_1): Prompt to disconnect non-running targets. Make
sure the target is marked running. Do not set inferior_ptid here.
Update call to remote_start_remote. Do not call remote_check_symbols
if the target is not running.
(remote_detach_1): Rename from remote_detach. Take an EXTENDED
argument. Handle a non-running target.
(remote_detach): Use it.
(extended_remote_detach): New.
(remote_disconnect): Fix typo. Use remoute_mourn_1.
(extended_remote_attach_1, extended_remote_attach)
(extended_async_remote_attach): New.
(remote_vcont_resume): Remove unused variable.
(remote_wait, remote_async_wait): Use any cached wait status.
(putpkt_binary, getpkt): Clear any cached wait status.
(extended_remoute_mourn_1): New.
(extended_remote_mourn): Use it.
(extended_async_remote_mourn, extended_remote_run): New.
(extended_remote_create_inferior_1): New.
(extended_remote_create_inferior): Use it.
(extended_remote_async_create_inferior): Likewise.
(remote_xfer_partial): Skip for non-executing targets.
(init_extended_remote_ops): Set to_detach and to_attach.
(init_extended_async_remote_ops): Likewise. Use
extended_async_remote_mourn.
(_initialize_remote): Register vAttach, vRun, and
set remote exec-file.
* NEWS: Mention vAttach, vRun, and gdbserver extended-remote support.
* gdb.server/ext-attach.c, gdb.server/ext-attach.exp,
gdb.server/ext-run.exp: New files.
* lib/gdbserver-support.exp (gdbserver_download): New.
(gdbserver_start): New. Update gdbserver expected
output.
(gdbserver_spawn): Use them.
(gdbserver_start_extended): New.
* gdb.texinfo (Using the `gdbserver' Program): Add security
warning. Rearrange into subsections and subsubsections. Document
--multi and --debug. Correct --with-sysroot typo. Update --attach
usage. Make load reference clearer. Document monitor exit.
(Remote Configuration): Document set remote exec-file, attach-packet,
and run-packet.
(Packets): Document vAttach and vRun.
* NEWS: Mention exec tracing support.
* inf-ttrace.c (inf_ttrace_wait): Return TARGET_WAITKIND_EXECD for
exec events.
* infcmd.c (kill_if_already_running, detach_command)
(disconnect_command): Replace SOLIB_RESTART with no_shared_libraries.
* infrun.c (MAY_FOLLOW_EXEC, may_follow_exec): Delete.
(follow_exec): Do not check may_follow_exec. Do not mourn and push
targets. Apply the sysroot path to the loaded executable. Use
no_shared_libraries.
* linux-nat.c (linux_child_follow_fork): Print fork following
messages if verbose.
(kill_wait_callback): Kill again before waiting a second time.
* symfile.c (symbol_file_clear): Replace SOLIB_RESTART with
no_shared_libraries.
* gdb.base/foll-exec.exp: Update header. Skip on remote targets.
Run on GNU/Linux.
(do_exec_tests): Check for systems which do not support catchpoints.
Do not match START.
* gdb.base/foll-fork.exp: Update header. Skip on remote targets.
Run on GNU/Linux. Enable verbose output.
(check_fork_catchpoints): New.
(explicit_fork_child_follow, catch_fork_child_follow)
(tcatch_fork_parent_follow): Update expected messages.
(do_fork_tests): Use check_fork_catchpoints.
* gdb.base/foll-vfork.exp: Update header. Skip on remote targets.
Run on GNU/Linux. Enable verbose output.
(check_vfork_catchpoints): New.
(vfork_parent_follow_to_bp, tcatch_vfork_then_child_follow): Update
expected messages.
(do_vfork_and_exec_tests): Use check_fork_catchpoints.
* varobj (adjust_value_for_child_access): Added checking for
returned value from gdb_value_ind.
(c_describe_child): Likewise.
(cplus_describe_child): Fixed a typo.
This eliminates the need to traverse value chain, doing
various checks, in three different places.
* breakpoint.h (struct bp_location): New fields
lengths and watchpoint_type.
(struct breakpoint): Remove the val_chain field.
* breakpoint.c (is_hardware_watchpoint): New.
(free_valchain): Remove.
(update_watchpoint): New.
(insert_bp_location): For hardware watchpoint, just
directly insert it.
(insert_breakpoints): Call update_watchpoint_locations
on all watchpoints. If we have failed to insert
any location of a hardware watchpoint, remove all inserted
locations.
(remove_breakpoint): For hardware watchpoints, directly
remove location.
(watchpoints_triggered): Iterate over locations.
(bpstat_stop_status): Use only first location of
a resource watchpoint.
(delete_breakpoint): Don't call free_valchain.
(print_one_breakpoint): Don't print all
locations for watchpoints.
(breakpoint_re_set_one): Use update_watchpoint for
watchpoints.
* breakpoint.c (insert_bp_location): For watchpoints,
recompute condition.
(breakpoint_re_set_one): Instead of recomputing value
and condition for watchpoints, just reset value and
let insert_breakpoints/insert_bp_location recompute it.
Don't do anything about disabled watchpoint.
* thread.c (add_thread_silent): Renamed
from add_thread.
(print_thread_events): New variable definition.
(show_print_thread_events): New function.
(_initialize_thread): Add "set print thread-events" and
"show print thread-events" commands.
(add_thread): Announce new thread.
* gdbthread.h (add_thread_silent): Declare.
(print_thread_events): New variable declaration.
* inf-ttrace.c (inf_ttrace_wait): Don't
inform about new thread, as add_thread is always
called too, and will take care of that.
* infrun.c (handle_inferior_event): Likewise.
* procfs.c (procfs_wait): Likewise.
* remote.c (remote_currthread): Likewise.
* sol-thread.c (sol_thread_wait): Likewise.
* win32-nat.c (get_win32_debug_event): Likewise.
* linux-thread-db.c (attach_thread): Likewise.
Remove the verbose parameter.
(check_event): Make detach_thread be verbose
only if print_thread_events is set.
* linux-nat.c (lin_lwp_attach_lwp): Don't inform
about new thread. This is called only from
linux-thread-db.c:attach_thread, which will take care.
Remove the verbose parameter.
* linux-nat.h (lin_lwp_attach_lwp): Adjust prototype.
* hppabsd-tdep.c (hppabsd_supply_gregset): Move to ...
(hppabsd_gregset): Move to ...
(hppabsd_regset_from_core_section): Rename
hppaobsd_regset_from_core_section and move to ...
(hppabsd_find_global_pointer): Update comment.
(hppabsd_init_abi): Make global. Do not register
hppabsd_regset_from_core_section.
(hppabsd_core_osabi_sniffer): Rename hppaobsd_core_osabi_sniffer and
move to ...
(_initialize_hppabsd_tdep): Move to ...
* hppaobsd-tdep.c: ... here. New file.
* hppnbsd-tdep.c: New file.
* hppnbsd-nat.c: New file.
* Makefile.in (ALL_TARGET_OBS): Add hppanbsd-tdep.o and hppaobsd-tdep.o.
(ALLDEPFILES): Add hppabsd-nat.c and hppabsd-tdep.c.
(hppabsd-nat.o, hppabsd-tdep.o): New dependencies.
(hppabsd-tdep.o, hppaobsd-tdep.o): Update dependencies.
* configure.host (hppa*-*-netbsd*): New entry.
* configure.tgt (hppa*-*-netbsd*): New entry.
(hppa*-*-openbsd*): Update.
* NEWS (New native configuration): Mention NetBSD/hppa.
(New targets): Mention NetBSD/hppa.
(Delete Breaks, Edit, Set Breaks): Remove description of
locations. Instead, add a reference to "Specify Location".
(Machine Code, Jumping, Thread Stops, Continuing and Stepping)
(Symbols): Refer to "Specify Location" for the valid forms of
linespecs and locations.