aboutsummaryrefslogtreecommitdiff
path: root/gdb/aarch64-linux-nat.c
AgeCommit message (Collapse)AuthorFilesLines
2014-09-11Introduce show_debug_regsGary Benson1-17/+13
This commit adds a new global flag show_debug_regs to common-debug.h to replace the flag debug_hw_points used by gdbserver and by the Linux x86 and AArch64 ports, and to replace the flag maint_show_dr used by the Linux MIPS port. Note that some debug printing in the AArch64 port was enabled only if debug_hw_points > 1 but no way to set debug_hw_points to values other than 0 and 1 was provided; that code was effectively dead. This commit enables all debug printing if show_debug_regs is nonzero, so the AArch64 output will be more verbose than previously. gdb/ChangeLog: * common/common-debug.h (show_debug_regs): Declare. * common/common-debug.c (show_debug_regs): Define. * aarch64-linux-nat.c (debug_hw_points): Don't define. Replace all uses with show_debug_regs. Replace all uses that considered debug_hw_points as a multi-value integer with straight boolean uses. * x86-nat.c (debug_hw_points): Don't define. Replace all uses with show_debug_regs. * nat/x86-dregs.c (debug_hw_points): Don't declare. Replace all uses with show_debug_regs. * mips-linux-nat.c (maint_show_dr): Don't define. Replace all uses with show_debug_regs. gdb/gdbserver/ChangeLog: * server.h (debug_hw_points): Don't declare. * server.c (debug_hw_points): Don't define. Replace all uses with show_debug_regs. * linux-aarch64-low.c (debug_hw_points): Don't define. Replace all uses with show_debug_regs.
2014-08-21gdb: Fix aarch64 native build issue caused by use of LONGESTWill Newton1-1/+1
Recent gdb code refactor changes LONGEST from a macro to a typedef, thus the use of it in aarch64-linux-nat.c is no longer valid. 2014-08-21 Bin Cheng <bin.cheng@arm.com> * aarch64-linux-nat.c (dr_changed_t): Change the type from unsigned LONGEST to ULONGEST.
2014-08-07AARCH64 Linux: Fill 'collect_regset' in regset structures.Andreas Arnez1-26/+12
In order to provide 'collect_regset' support, the generic function regcache_collect_regset is exploited. Since this requires writing appropriate register maps, these can be used for supply_regset as well.
2014-05-22Include asm/ptrace.h in aarch64-linux-nat.cRamana Radhakrishnan1-0/+1
A recent change to glibc removed asm/ptrace.h from user.h for AArch64. This meant that cross-native builds of gdb using trunk glibc broke because aarch64-linux-nat.c because user_hwdebug_state couldn't be found. Fixed by including asm/ptrace.h like other ports. 2014-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * aarch64-linux-nat.c (asm/ptrace.h): Include.
2014-02-19Add target_ops argument to to_post_startup_inferiorTom Tromey1-3/+5
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_post_startup_inferior>: Add argument. (target_post_startup_inferior): Add argument. * target.c (debug_to_post_startup_inferior): Add argument. (update_current_target): Update. * spu-linux-nat.c (spu_child_post_startup_inferior): Add 'self' argument. * linux-nat.c (linux_child_post_startup_inferior): Add 'self' argument. * inf-ptrace.c (inf_ptrace_post_startup_inferior): Add 'self' argument. * inf-child.c (inf_child_post_startup_inferior): Add 'self' argument. * i386-linux-nat.c (i386_linux_child_post_startup_inferior): Add 'self' argument. (super_post_startup_inferior): Likewise. * amd64-linux-nat.c (amd64_linux_child_post_startup_inferior): Add 'self' argument. (super_post_startup_inferior): Likewise. * aarch64-linux-nat.c (aarch64_linux_child_post_startup_inferior): Add 'self' argument. (super_post_startup_inferior): Likewise.
2014-02-19Add target_ops argument to to_region_ok_for_hw_watchpointTom Tromey1-1/+2
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_region_ok_for_hw_watchpoint>: Add argument. (target_region_ok_for_hw_watchpoint): Add argument. * target.c (debug_to_region_ok_for_hw_watchpoint): Add argument. (default_region_ok_for_hw_watchpoint): Add argument. * spu-multiarch.c (spu_region_ok_for_hw_watchpoint): Add argument. * s390-linux-nat.c (s390_region_ok_for_hw_watchpoint): Add 'self' argument. * remote.c (remote_region_ok_for_hw_watchpoint): Add 'self' argument. * procfs.c (procfs_region_ok_for_hw_watchpoint): Add 'self' argument. * ppc-linux-nat.c (ppc_linux_region_ok_for_hw_watchpoint): Add 'self' argument. * mips-linux-nat.c (mips_linux_region_ok_for_hw_watchpoint): Add 'self' argument. * inf-ttrace.c (inf_ttrace_region_ok_for_hw_watchpoint): Add 'self' argument. * i386-nat.c (i386_region_ok_for_watchpoint): Add 'self' argument. * arm-linux-nat.c (arm_linux_region_ok_for_hw_watchpoint): Add 'self' argument. * aarch64-linux-nat.c (aarch64_linux_region_ok_for_hw_watchpoint): Add 'self' argument.
2014-02-19Add target_ops argument to to_insert_watchpointTom Tromey1-1/+2
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_insert_watchpoint>: Add argument. (target_insert_watchpoint): Add argument. * target.c (debug_to_insert_watchpoint): Add argument. (update_current_target): Update. * s390-linux-nat.c (s390_insert_watchpoint): Add 'self' argument. * remote.c (remote_insert_watchpoint): Add 'self' argument. * remote-mips.c (mips_insert_watchpoint): Add 'self' argument. * remote-m32r-sdi.c (m32r_insert_watchpoint): Add 'self' argument. * procfs.c (procfs_insert_watchpoint): Add 'self' argument. * ppc-linux-nat.c (ppc_linux_insert_watchpoint): Add 'self' argument. * nto-procfs.c (procfs_insert_hw_watchpoint): Add 'self' argument. (procfs_insert_hw_watchpoint): Add 'self' argument. * mips-linux-nat.c (mips_linux_insert_watchpoint): Add 'self' argument. * inf-ttrace.c (inf_ttrace_insert_watchpoint): Add 'self' argument. * ia64-linux-nat.c (ia64_linux_insert_watchpoint): Add 'self' argument. * i386-nat.c (i386_insert_watchpoint): Add 'self' argument. * arm-linux-nat.c (arm_linux_insert_watchpoint): Add 'self' argument. * aarch64-linux-nat.c (aarch64_linux_insert_watchpoint): Add 'self' argument.
2014-02-19Add target_ops argument to to_remove_watchpointTom Tromey1-1/+2
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_remove_watchpoint>: Add argument. (target_remove_watchpoint): Add argument. * target.c (debug_to_remove_watchpoint): Add argument. (update_current_target): Update. * s390-linux-nat.c (s390_remove_watchpoint): Add 'self' argument. * remote.c (remote_remove_watchpoint): Add 'self' argument. * remote-mips.c (mips_remove_watchpoint): Add 'self' argument. * remote-m32r-sdi.c (m32r_remove_watchpoint): Add 'self' argument. * procfs.c (procfs_remove_watchpoint): Add 'self' argument. * ppc-linux-nat.c (ppc_linux_remove_watchpoint): Add 'self' argument. * nto-procfs.c (procfs_remove_hw_watchpoint): Add 'self' argument. * mips-linux-nat.c (mips_linux_remove_watchpoint): Add 'self' argument. * inf-ttrace.c (inf_ttrace_remove_watchpoint): Add 'self' argument. * ia64-linux-nat.c (ia64_linux_remove_watchpoint): Add 'self' argument. * i386-nat.c (i386_remove_watchpoint): Add 'self' argument. * arm-linux-nat.c (arm_linux_remove_watchpoint): Add 'self' argument. * aarch64-linux-nat.c (aarch64_linux_remove_watchpoint): Add 'self' argument.
2014-02-19Add target_ops argument to to_remove_hw_breakpointTom Tromey1-1/+2
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_remove_hw_breakpoint>: Add argument. (target_remove_hw_breakpoint): Add argument. * target.c (debug_to_remove_hw_breakpoint): Add argument. (update_current_target): Update. * remote.c (remote_remove_hw_breakpoint): Add 'self' argument. * ppc-linux-nat.c (ppc_linux_remove_hw_breakpoint): Add 'self' argument. * i386-nat.c (i386_remove_hw_breakpoint): Add 'self' argument. * arm-linux-nat.c (arm_linux_remove_hw_breakpoint): Add 'self' argument. * aarch64-linux-nat.c (aarch64_linux_remove_hw_breakpoint): Add 'self' argument.
2014-02-19Add target_ops argument to to_insert_hw_breakpointTom Tromey1-1/+2
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_insert_hw_breakpoint>: Add argument. (target_insert_hw_breakpoint): Add argument. * target.c (debug_to_insert_hw_breakpoint): Add argument. (update_current_target): Update. * remote.c (remote_insert_hw_breakpoint): Add 'self' argument. * ppc-linux-nat.c (ppc_linux_insert_hw_breakpoint): Add 'self' argument. * nto-procfs.c (procfs_insert_hw_breakpoint): Add 'self' argument. * i386-nat.c (i386_insert_hw_breakpoint): Add 'self' argument. * arm-linux-nat.c (arm_linux_insert_hw_breakpoint): Add 'self' argument. * aarch64-linux-nat.c (aarch64_linux_insert_hw_breakpoint): Add 'self' argument.
2014-02-19Add target_ops argument to to_can_use_hw_breakpointTom Tromey1-1/+2
2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_can_use_hw_breakpoint>: Add argument. (target_can_use_hardware_watchpoint): Add argument. * target.c (debug_to_can_use_hw_breakpoint): Add argument. (update_current_target): Update. * spu-linux-nat.c (spu_can_use_hw_breakpoint): Add 'self' argument. * s390-linux-nat.c (s390_can_use_hw_breakpoint): Add 'self' argument. * remote.c (remote_check_watch_resources): Add 'self' argument. * remote-mips.c (mips_can_use_watchpoint): Add 'self' argument. * remote-m32r-sdi.c (m32r_can_use_hw_watchpoint): Add 'self' argument. * procfs.c (procfs_can_use_hw_breakpoint): Add 'self' argument. * ppc-linux-nat.c (ppc_linux_can_use_hw_breakpoint): Add 'self' argument. * nto-procfs.c (procfs_can_use_hw_breakpoint): Add 'self' argument. * mips-linux-nat.c (mips_linux_can_use_hw_breakpoint): Add 'self' argument. * inf-ttrace.c (inf_ttrace_can_use_hw_breakpoint): Add 'self' argument. * ia64-linux-nat.c (ia64_linux_can_use_hw_breakpoint): Add 'self' argument. * ia64-hpux-nat.c (ia64_hpux_can_use_hw_breakpoint): Add 'self' argument. * i386-nat.c (i386_can_use_hw_breakpoint): Add 'self' argument. * arm-linux-nat.c (arm_linux_can_use_hw_breakpoint): Add 'self' argument. * aarch64-linux-nat.c (aarch64_linux_can_use_hw_breakpoint): Add 'self' argument.
2014-02-19add "this" pointers to more target APIsTom Tromey1-2/+2
A subsequent pass introduces delegation helper functions to the target API. This delegation is much cleaner if the target_ops pointer is directly available at delegation time. This patch adds the "this" pointer to various to_* methods for this purpose. This updates a number of ports which I am unable to test. Please give them a look-over. Any possible problem here is trivial, though, as all that is required is adding an argument to a function. 2014-02-19 Tom Tromey <tromey@redhat.com> * aarch64-linux-nat.c (aarch64_linux_stopped_by_watchpoint): Add 'ops' argument. * arm-linux-nat.c (arm_linux_stopped_by_watchpoint): Add 'ops' argument. * i386-nat.c (i386_stopped_by_watchpoint): Add 'ops' argument. * ia64-linux-nat.c (ia64_linux_stopped_by_watchpoint): Add 'ops' argument. * inf-ttrace.c (inf_ttrace_stopped_by_watchpoint): Add 'ops' argument. * linux-nat.c (save_sigtrap): Update. (linux_nat_stopped_by_watchpoint, linux_nat_is_async_p) (linux_nat_can_async_p, linux_nat_async): Add 'ops' argument. (linux_nat_close): Update. * mips-linux-nat.c (mips_linux_stopped_by_watchpoint): Add 'ops' argument. * ppc-linux-nat.c (ppc_linux_stopped_by_watchpoint): Add 'ops' argument. * procfs.c (procfs_stopped_by_watchpoint): Add 'ops' argument. * record-full.c (record_full_beneath_to_stopped_by_watchpoint) (record_full_beneath_to_async, tmp_to_stopped_by_watchpoint) (tmp_to_async): Add 'ops' argument. (record_full_stopped_by_watchpoint, record_full_async) (record_full_can_async_p, record_full_is_async_p): Add 'ops' argument. * remote-m32r-sdi.c (m32r_insert_breakpoint, m32r_remove_breakpoint) (m32r_stopped_by_watchpoint): Add 'ops' argument. * remote-mips.c (mips_stopped_by_watchpoint): Add 'ops' argument. * remote.c (remote_stopped_by_watchpoint_p, remote_can_async_p) (remote_is_async_p, remote_async): Add 'ops' argument. (remote_stopped_data_address): Update. * s390-nat.c (s390_stopped_by_watchpoint): Add 'ops' argument. * target.c (update_current_target) (find_default_can_async_p, find_default_is_async_p): Update. (init_dummy_target): Update. (debug_to_stopped_by_watchpoint): Add 'ops' argument. * target.h (struct target_ops) <to_stopped_by_watchpoint, to_can_async_p, to_is_async_p, to_async>: Add 'ops' argument. (target_can_async_p, target_is_async_p, target_async) (target_stopped_by_watchpoint): Update.
2014-01-01Update Copyright year range in all files maintained by GDB.Joel Brobecker1-1/+1
2013-12-18gdb/Yufeng Zhang1-1/+4
* aarch64-linux-nat.c (aarch64_linux_set_debug_regs): Set iov.iov_len with the real length in use. gdb/gdbserver/ * linux-aarch64-low.c (aarch64_linux_set_debug_regs): Set iov.iov_len with the real length in use.
2013-09-30 * aarch64-linux-nat.c: Replace PIDGET with ptid_get_pid.Luis Machado1-3/+3
Replace TIDGET with ptid_get_lwp. Replace GET_LWP with ptid_get_lwp. * aix-thread.c (BUILD_THREAD, BUILD_LWP): Remove. Replace BUILD_THREAD with ptid_build. Replace BUILD_LWP with ptid_build. Replace PIDGET with ptid_get_pid. Replace TIDGET with ptid_get_lwp. * alphabsd-nat.c: Replace PIDGET with ptid_get_pid. * amd64-linux-nat.c: Replace PIDGET with ptid_get_pid. Replace TIDGET with ptid_get_lwp. * amd64bsd-nat.c: Replace PIDGET with ptid_get_pid. * arm-linux-nat.c: Replace PIDGET with ptid_get_pid. Replace TIDGET with ptid_get_lwp. Replace GET_LWP with ptid_get_lwp. * armnbsd-nat.c: Replace PIDGET with ptid_get_pid. * auxv.c: Likewise. * breakpoint.c: Likewise. * common/ptid.c (ptid_is_pid): Condense check for null_ptid and minus_one_ptid. (ptid_lwp_p): New function. (ptid_tid_p): New function. * common/ptid.h: Update comments for accessors. (ptid_lwp_p): New prototype. (ptid_tid_p): New prototype. * defs.h (PIDGET, TIDGET, MERGEPID): Do not define. * gcore.c: Replace PIDGET with ptid_get_pid. * gdbthread.h: Likewise. * gnu-nat.c: Likewise. * hppa-linux-nat.c: Replace PIDGET with ptid_get_pid. Replace TIDGET with ptid_get_lwp. * hppabsd-nat.c: Replace PIDGET with ptid_get_pid. * hppanbsd-nat.c: Likewise. * i386-linux-nat.c: Replace PIDGET with ptid_get_pid. Replace TIDGET with ptid_get_lwp. * i386bsd-nat.c: Replace PIDGET with ptid_get_pid. * ia64-linux-nat.c: Replace PIDGET with ptid_get_pid. * infcmd.c: Likewise. * inferior.h: Likewise. * inflow.c: Likewise. * infrun.c: Likewise. * linux-fork.c: Likewise. * linux-nat.c: Replace PIDGET with ptid_get_pid. Replace GET_PID with ptid_get_pid. Replace is_lwp with ptid_lwp_p. Replace GET_LWP with ptid_get_lwp. Replace BUILD_LWP with ptid_build.
2013-09-122013-09-12 Andrew Pinski <apinski@cavium.com>Andrew Pinski1-0/+1
* aarch64-linux-nat.c (aarch64_linux_set_debug_regs): Zero out regs.
2013-02-142013-02-14 Pedro Alves <palves@redhat.com>Yufeng Zhang1-68/+141
Yufeng Zhang <yufeng.zhang@arm.com> * aarch64-linux-nat.c (aarch64_init_debug_reg_state): Delete. (aarch64_inferior_data, struct aarch64_inferior_data): Delete. (struct aarch64_process_info): New. (aarch64_process_list): New global. (aarch64_find_process_pid, aarch64_add_process) (aarch64_process_info_get): New functions. (aarch64_inferior_data_get): Delete. (aarch64_process_info_get): New function. (aarch64_forget_process): New function. (aarch64_get_debug_reg_state): New parameter 'pid'. Reimplement. (aarch64_linux_prepare_to_resume): Pass the lwp's pid to aarch64_get_debug_reg_state. (aarch64_notify_debug_reg_change): Use iterate_over_lwps instead of linux_nat_iterate_watchpoint_lwps. (aarch64_linux_new_fork): New function. (aarch64_linux_child_post_startup_inferior): Use aarch64_forget_process instead of aarch64_init_debug_reg_state. (aarch64_handle_breakpoint, aarch64_linux_insert_hw_breakpoint) (aarch64_linux_remove_hw_breakpoint) (aarch64_handle_aligned_watchpoint) (aarch64_handle_unaligned_watchpoint) (aarch64_linux_insert_watchpoint) (aarch64_linux_remove_watchpoint) (aarch64_linux_stopped_data_address): Adjust to pass the current process id to aarch64_debug_reg_state. (_initialize_aarch64_linux_nat): Install aarch64_linux_new_fork as linux_nat_new_fork hook, and aarch64_forget_process as linux_nat_forget_process hook; remove the call to register_inferior_data_with_cleanup.
2013-02-13ARI fix: Replace %llx with %s and phex().Marcus Shawcroft1-14/+16
2013-02-13 Marcus Shawcroft <marcus.shawcroft@arm.com> * aarch64-linux-nat.c (debug_reg_change_callback) (aarch64_linux_get_debug_reg_capacity): ARI fix: Replace %llx with %s and phex().
2013-02-13ARI fix: Replace long long with LONGEST.Marcus Shawcroft1-1/+1
* aarch64-linux-nat.c (dr_changed_t): ARI fix: Replace long long with LONGEST.
2013-02-08Adding aarch64-linux-nat support.Marcus Shawcroft1-0/+1479
2013-02-08 Jim MacArthur <jim.macarthur@arm.com> Marcus Shawcroft <marcus.shawcroft@arm.com> Nigel Stephens <nigel.stephens@arm.com> Yufeng Zhang <yufeng.zhang@arm.com> * aarch64-linux-nat.c: New file. * config/aarch64/linux.mh: New file. * configure.host: Add AArch64. * Makefile.in (ALLDEPFILES): Add aarch64-linux-nat.c.