|
GDB (xrefs)
|
#include "defs.h"#include "inferior.h"#include "gdbcore.h"#include "regcache.h"#include "target.h"#include "linux-nat.h"#include "target-descriptions.h"#include "auxv.h"#include "observer.h"#include "gdbthread.h"#include "arm-tdep.h"#include "arm-linux-tdep.h"#include "aarch32-linux-nat.h"#include <elf/common.h>#include <sys/user.h>#include "nat/gdb_ptrace.h"#include <sys/utsname.h>#include <sys/procfs.h>#include "nat/linux-ptrace.h"#include "gregset.h"#include "gdb_proc_service.h"Go to the source code of this file.
Classes | |
| struct | arm_linux_hwbp_cap |
| struct | arm_linux_hw_breakpoint |
| struct | arm_linux_debug_reg_state |
| struct | arm_linux_process_info |
| struct | arch_lwp_info |
| struct | update_registers_data |
Macros | |
| #define | PTRACE_GET_THREAD_AREA 22 |
| #define | PTRACE_GETWMMXREGS 18 |
| #define | PTRACE_SETWMMXREGS 19 |
| #define | PTRACE_GETVFPREGS 27 |
| #define | PTRACE_SETVFPREGS 28 |
| #define | PTRACE_GETHBPREGS 29 |
| #define | PTRACE_SETHBPREGS 30 |
| #define | IWMMXT_REGS_SIZE (16 * 8 + 6 * 4) |
| #define | MAX_BPTS 16 |
| #define | MAX_WPTS 16 |
Typedefs | |
| typedef unsigned int | arm_hwbp_control_t |
Enumerations | |
| enum | arm_hwbp_type { arm_hwbp_break = 0, arm_hwbp_load = 1, arm_hwbp_store = 2, arm_hwbp_access = 3 } |
Variables | |
| int | arm_apcs_32 |
| static struct arm_linux_process_info * | arm_linux_process_list = NULL |
| #define IWMMXT_REGS_SIZE (16 * 8 + 6 * 4) |
Definition at line 236 of file arm-linux-nat.c.
Referenced by fetch_wmmx_regs(), and store_wmmx_regs().
| #define MAX_BPTS 16 |
Definition at line 568 of file arm-linux-nat.c.
Referenced by arm_linux_get_hwbp_cap(), and arm_linux_new_thread().
| #define MAX_WPTS 16 |
Definition at line 569 of file arm-linux-nat.c.
Referenced by arm_linux_get_hwbp_cap().
| #define PTRACE_GET_THREAD_AREA 22 |
Definition at line 49 of file arm-linux-nat.c.
Referenced by ps_get_thread_area().
| #define PTRACE_GETHBPREGS 29 |
Definition at line 63 of file arm-linux-nat.c.
Referenced by arm_linux_get_hwbp_cap().
| #define PTRACE_GETVFPREGS 27 |
Definition at line 58 of file arm-linux-nat.c.
Referenced by arm_linux_read_description(), fetch_vfp_regs(), and store_vfp_regs().
| #define PTRACE_GETWMMXREGS 18 |
Definition at line 53 of file arm-linux-nat.c.
Referenced by fetch_wmmx_regs(), and store_wmmx_regs().
| #define PTRACE_SETHBPREGS 30 |
Definition at line 64 of file arm-linux-nat.c.
Referenced by arm_linux_prepare_to_resume().
| #define PTRACE_SETVFPREGS 28 |
Definition at line 59 of file arm-linux-nat.c.
Referenced by store_vfp_regs().
| #define PTRACE_SETWMMXREGS 19 |
Definition at line 54 of file arm-linux-nat.c.
Referenced by store_wmmx_regs().
| typedef unsigned int arm_hwbp_control_t |
Definition at line 678 of file arm-linux-nat.c.
| enum arm_hwbp_type |
| Enumerator | |
|---|---|
| arm_hwbp_break | |
| arm_hwbp_load | |
| arm_hwbp_store | |
| arm_hwbp_access | |
Definition at line 669 of file arm-linux-nat.c.
| void _initialize_arm_linux_nat | ( | void | ) |
Definition at line 1295 of file arm-linux-nat.c.
References arm_linux_can_use_hw_breakpoint(), arm_linux_delete_thread(), arm_linux_fetch_inferior_registers(), arm_linux_forget_process(), arm_linux_insert_hw_breakpoint(), arm_linux_insert_watchpoint(), arm_linux_new_fork(), arm_linux_new_thread(), arm_linux_prepare_to_resume(), arm_linux_read_description(), arm_linux_region_ok_for_hw_watchpoint(), arm_linux_remove_hw_breakpoint(), arm_linux_remove_watchpoint(), arm_linux_stopped_by_watchpoint(), arm_linux_stopped_data_address(), arm_linux_store_inferior_registers(), arm_linux_watchpoint_addr_within_range(), linux_nat_add_target(), linux_nat_set_delete_thread(), linux_nat_set_forget_process(), linux_nat_set_new_fork(), linux_nat_set_new_thread(), linux_nat_set_prepare_to_resume(), linux_target(), target_ops::to_can_use_hw_breakpoint, target_ops::to_fetch_registers, target_ops::to_insert_hw_breakpoint, target_ops::to_insert_watchpoint, target_ops::to_read_description, target_ops::to_region_ok_for_hw_watchpoint, target_ops::to_remove_hw_breakpoint, target_ops::to_remove_watchpoint, target_ops::to_stopped_by_watchpoint, target_ops::to_stopped_data_address, target_ops::to_store_registers, and target_ops::to_watchpoint_addr_within_range.
|
static |
Definition at line 845 of file arm-linux-nat.c.
Referenced by arm_linux_remove_hw_breakpoint1().
|
static |
Definition at line 825 of file arm-linux-nat.c.
References arm_hwbp_break, enable, and gdb_assert.
Referenced by arm_linux_hw_breakpoint_initialize(), and arm_linux_hw_watchpoint_initialize().
|
static |
Definition at line 838 of file arm-linux-nat.c.
Referenced by arm_linux_insert_hw_breakpoint1(), and arm_linux_prepare_to_resume().
|
static |
Definition at line 758 of file arm-linux-nat.c.
References arm_linux_process_list, proc::next, pid, and XCNEW.
Referenced by arm_linux_process_info_get().
|
static |
Definition at line 639 of file arm-linux-nat.c.
References arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), bp_access_watchpoint, bp_hardware_breakpoint, bp_hardware_watchpoint, bp_read_watchpoint, bp_watchpoint, and gdb_assert.
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 1208 of file arm-linux-nat.c.
References xfree().
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 378 of file arm-linux-nat.c.
References regcache::arch(), ARM_D0_REGNUM, ARM_F0_REGNUM, ARM_FPS_REGNUM, ARM_FPSCR_REGNUM, ARM_PS_REGNUM, ARM_WCGR7_REGNUM, ARM_WR0_REGNUM, fetch_fpregs(), fetch_regs(), fetch_vfp_regs(), fetch_wmmx_regs(), gdbarch_tdep(), gdbarch_tdep::have_fpa_registers, gdbarch_tdep::have_wmmx_registers, and gdbarch_tdep::vfp_register_count.
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 743 of file arm-linux-nat.c.
References arm_linux_process_list, proc::next, and pid.
Referenced by arm_linux_process_info_get().
|
static |
Definition at line 790 of file arm-linux-nat.c.
References arm_linux_process_list, proc::next, pid, and xfree().
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 815 of file arm-linux-nat.c.
References arm_linux_process_info_get(), pid, and arm_linux_process_info::state.
Referenced by arm_linux_insert_hw_breakpoint1(), arm_linux_new_fork(), arm_linux_prepare_to_resume(), and arm_linux_remove_hw_breakpoint1().
|
static |
Definition at line 622 of file arm-linux-nat.c.
References arm_linux_get_hwbp_cap(), and arm_linux_hwbp_cap::bp_count.
Referenced by arm_linux_can_use_hw_breakpoint(), arm_linux_insert_hw_breakpoint(), arm_linux_insert_hw_breakpoint1(), arm_linux_prepare_to_resume(), arm_linux_remove_hw_breakpoint(), and arm_linux_remove_hw_breakpoint1().
|
static |
Definition at line 630 of file arm-linux-nat.c.
References arm_linux_get_hwbp_cap(), and arm_linux_hwbp_cap::wp_count.
Referenced by arm_linux_can_use_hw_breakpoint(), arm_linux_insert_hw_breakpoint1(), arm_linux_insert_watchpoint(), arm_linux_prepare_to_resume(), arm_linux_remove_hw_breakpoint1(), arm_linux_remove_watchpoint(), and arm_linux_stopped_data_address().
|
static |
Definition at line 575 of file arm-linux-nat.c.
References _, arm_linux_hwbp_cap::arch, available, arm_linux_hwbp_cap::bp_count, inferior_ptid, MAX_BPTS, arm_linux_hwbp_cap::max_wp_length, MAX_WPTS, ptid_get_lwp(), ptrace(), PTRACE_GETHBPREGS, selftests::ptid::tid, warning(), and arm_linux_hwbp_cap::wp_count.
Referenced by arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arm_linux_hw_watchpoint_initialize(), and arm_linux_region_ok_for_hw_watchpoint().
|
static |
Definition at line 880 of file arm-linux-nat.c.
References arm_hwbp_access, arm_hwbp_load, arm_hwbp_store, hw_read, and hw_write.
Referenced by arm_linux_hw_watchpoint_initialize().
|
static |
Definition at line 912 of file arm-linux-nat.c.
References arm_linux_hw_breakpoint::address, and arm_linux_hw_breakpoint::control.
Referenced by arm_linux_remove_hw_breakpoint1().
|
static |
Definition at line 853 of file arm-linux-nat.c.
References arm_linux_hw_breakpoint::address, arm_hwbp_break, arm_hwbp_control_initialize(), arm_pc_is_thumb(), arm_linux_hw_breakpoint::control, bp_target_info::placed_address, and bp_target_info::reqstd_address.
Referenced by arm_linux_insert_hw_breakpoint(), and arm_linux_remove_hw_breakpoint().
|
static |
Definition at line 893 of file arm-linux-nat.c.
References arm_linux_hw_breakpoint::address, arm_hwbp_control_initialize(), arm_linux_get_hwbp_cap(), arm_linux_get_hwbp_type(), arm_linux_hw_breakpoint::control, gdb_assert, and arm_linux_hwbp_cap::max_wp_length.
Referenced by arm_linux_insert_watchpoint(), and arm_linux_remove_watchpoint().
|
static |
Definition at line 1030 of file arm-linux-nat.c.
References arm_linux_get_hw_breakpoint_count(), arm_linux_hw_breakpoint_initialize(), and arm_linux_insert_hw_breakpoint1().
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 953 of file arm-linux-nat.c.
References arm_hwbp_control_is_enabled(), arm_linux_get_debug_reg_state(), arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arm_linux_debug_reg_state::bpts, gdb_assert, update_registers_data::index, inferior_ptid, iterate_over_lwps(), pid, pid_to_ptid(), ptid_get_pid(), update_registers_callback(), update_registers_data::watch, and arm_linux_debug_reg_state::wpts.
Referenced by arm_linux_insert_hw_breakpoint(), and arm_linux_insert_watchpoint().
|
static |
Definition at line 1102 of file arm-linux-nat.c.
References arm_linux_get_hw_watchpoint_count(), arm_linux_hw_watchpoint_initialize(), and arm_linux_insert_hw_breakpoint1().
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 1271 of file arm-linux-nat.c.
References lwp_info::arch_private, arm_linux_get_debug_reg_state(), lwp_info::ptid, and ptid_get_pid().
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 1188 of file arm-linux-nat.c.
References lwp_info::arch_private, arch_lwp_info::bpts_changed, MAX_BPTS, arch_lwp_info::wpts_changed, and XCNEW.
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 1217 of file arm-linux-nat.c.
References _, arm_hwbp_control_is_enabled(), arm_linux_get_debug_reg_state(), arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arm_linux_debug_reg_state::bpts, arch_lwp_info::bpts_changed, selftests::ptid::lwp, perror_with_name(), pid, ptid_get_lwp(), ptid_get_pid(), ptrace(), PTRACE_SETHBPREGS, PTRACE_TYPE_ARG3, arm_linux_debug_reg_state::wpts, and arch_lwp_info::wpts_changed.
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 775 of file arm-linux-nat.c.
References arm_linux_add_process(), arm_linux_find_process_pid(), and pid.
Referenced by arm_linux_get_debug_reg_state().
|
static |
Definition at line 499 of file arm-linux-nat.c.
References target_ops::beneath, have_ptrace_getregset, HWCAP_IWMMXT, HWCAP_NEON, HWCAP_VFP, HWCAP_VFPv3, HWCAP_VFPv3D16, inferior_ptid, pid, ptid_get_lwp(), ptrace(), PTRACE_GETREGSET, PTRACE_GETVFPREGS, target_auxv_search(), tdesc_arm_with_iwmmxt, tdesc_arm_with_neon, tdesc_arm_with_vfpv2, tdesc_arm_with_vfpv3, selftests::ptid::tid, target_ops::to_read_description, TRIBOOL_FALSE, TRIBOOL_TRUE, TRIBOOL_UNKNOWN, and VFP_REGS_SIZE.
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 1069 of file arm-linux-nat.c.
References arm_linux_get_hwbp_cap(), arm_linux_hwbp_cap::max_wp_length, and arm_linux_hwbp_cap::wp_count.
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 1049 of file arm-linux-nat.c.
References arm_linux_get_hw_breakpoint_count(), arm_linux_hw_breakpoint_initialize(), and arm_linux_remove_hw_breakpoint1().
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 992 of file arm-linux-nat.c.
References arm_hwbp_control_disable(), arm_linux_get_debug_reg_state(), arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arm_linux_hw_breakpoint_equal(), arm_linux_debug_reg_state::bpts, arm_linux_hw_breakpoint::control, gdb_assert, update_registers_data::index, inferior_ptid, iterate_over_lwps(), pid, pid_to_ptid(), ptid_get_pid(), update_registers_callback(), update_registers_data::watch, and arm_linux_debug_reg_state::wpts.
Referenced by arm_linux_remove_hw_breakpoint(), and arm_linux_remove_watchpoint().
|
static |
Definition at line 1122 of file arm-linux-nat.c.
References arm_linux_get_hw_watchpoint_count(), arm_linux_hw_watchpoint_initialize(), and arm_linux_remove_hw_breakpoint1().
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 1171 of file arm-linux-nat.c.
References arm_linux_stopped_data_address().
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 1141 of file arm-linux-nat.c.
References arm_linux_get_hw_watchpoint_count(), inferior_ptid, and linux_nat_get_siginfo().
Referenced by _initialize_arm_linux_nat(), and arm_linux_stopped_by_watchpoint().
|
static |
Definition at line 416 of file arm-linux-nat.c.
References regcache::arch(), ARM_D0_REGNUM, ARM_F0_REGNUM, ARM_FPS_REGNUM, ARM_FPSCR_REGNUM, ARM_PS_REGNUM, ARM_WCGR7_REGNUM, ARM_WR0_REGNUM, gdbarch_tdep(), gdbarch_tdep::have_fpa_registers, gdbarch_tdep::have_wmmx_registers, store_fpregs(), store_regs(), store_vfp_regs(), store_wmmx_regs(), and gdbarch_tdep::vfp_register_count.
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 1178 of file arm-linux-nat.c.
Referenced by _initialize_arm_linux_nat().
|
static |
Definition at line 73 of file arm-linux-nat.c.
References _, ARM_F0_REGNUM, ARM_F7_REGNUM, ARM_FPS_REGNUM, ARM_LINUX_SIZEOF_NWFPE, have_ptrace_getregset, NWFPE_FPSR_OFFSET, perror_with_name(), ptid_get_lwp(), ptrace(), PTRACE_GETREGSET, regcache_get_ptid(), regcache_raw_supply(), supply_nwfpe_register(), selftests::ptid::tid, and TRIBOOL_TRUE.
Referenced by arm_linux_fetch_inferior_registers().
|
static |
Definition at line 164 of file arm-linux-nat.c.
References _, aarch32_gp_regcache_supply(), arm_apcs_32, have_ptrace_getregset, perror_with_name(), ptid_get_lwp(), ptrace(), PTRACE_GETREGS, PTRACE_GETREGSET, regcache_get_ptid(), selftests::ptid::tid, and TRIBOOL_TRUE.
Referenced by arm_linux_fetch_inferior_registers().
|
static |
Definition at line 302 of file arm-linux-nat.c.
References _, aarch32_vfp_regcache_supply(), regcache::arch(), gdbarch_tdep(), have_ptrace_getregset, perror_with_name(), ptid_get_lwp(), ptrace(), PTRACE_GETREGSET, PTRACE_GETVFPREGS, regcache_get_ptid(), selftests::ptid::tid, TRIBOOL_TRUE, gdbarch_tdep::vfp_register_count, and VFP_REGS_SIZE.
Referenced by arm_linux_fetch_inferior_registers().
|
static |
Definition at line 239 of file arm-linux-nat.c.
References _, ARM_WCGR0_REGNUM, ARM_WCSSF_REGNUM, ARM_WR0_REGNUM, IWMMXT_REGS_SIZE, perror_with_name(), ptid_get_lwp(), ptrace(), PTRACE_GETWMMXREGS, regcache_get_ptid(), regcache_raw_supply(), and selftests::ptid::tid.
Referenced by arm_linux_fetch_inferior_registers().
| void fill_fpregset | ( | const struct regcache * | regcache, |
| gdb_fpregset_t * | fpregsetp, | ||
| int | regno | ||
| ) |
Definition at line 466 of file arm-linux-nat.c.
References arm_linux_collect_nwfpe().
| void fill_gregset | ( | const struct regcache * | regcache, |
| gdb_gregset_t * | gregsetp, | ||
| int | regno | ||
| ) |
Definition at line 453 of file arm-linux-nat.c.
References arm_linux_collect_gregset().
| ps_err_e ps_get_thread_area | ( | struct ps_prochandle * | ph, |
| lwpid_t | lwpid, | ||
| int | idx, | ||
| void ** | base | ||
| ) |
Definition at line 484 of file arm-linux-nat.c.
References PS_ERR, PS_OK, ptrace(), and PTRACE_GET_THREAD_AREA.
|
static |
Definition at line 110 of file arm-linux-nat.c.
References _, ARM_F0_REGNUM, ARM_F7_REGNUM, ARM_FPS_REGNUM, ARM_LINUX_SIZEOF_NWFPE, collect_nwfpe_register(), have_ptrace_getregset, NWFPE_FPSR_OFFSET, perror_with_name(), ptid_get_lwp(), ptrace(), PTRACE_GETREGSET, PTRACE_SETFPREGS, PTRACE_SETREGSET, REG_VALID, regcache_get_ptid(), regcache_raw_collect(), regcache_register_status(), selftests::ptid::tid, and TRIBOOL_TRUE.
Referenced by arm_linux_store_inferior_registers().
|
static |
Definition at line 191 of file arm-linux-nat.c.
References _, aarch32_gp_regcache_collect(), arm_apcs_32, have_ptrace_getregset, perror_with_name(), ptid_get_lwp(), ptrace(), PTRACE_GETREGS, PTRACE_GETREGSET, PTRACE_SETREGS, PTRACE_SETREGSET, regcache_get_ptid(), selftests::ptid::tid, and TRIBOOL_TRUE.
Referenced by arm_linux_store_inferior_registers().
|
static |
Definition at line 331 of file arm-linux-nat.c.
References _, aarch32_vfp_regcache_collect(), regcache::arch(), gdbarch_tdep(), have_ptrace_getregset, perror_with_name(), ptid_get_lwp(), ptrace(), PTRACE_GETREGSET, PTRACE_GETVFPREGS, PTRACE_SETREGSET, PTRACE_SETVFPREGS, regcache_get_ptid(), selftests::ptid::tid, TRIBOOL_TRUE, gdbarch_tdep::vfp_register_count, and VFP_REGS_SIZE.
Referenced by arm_linux_store_inferior_registers().
|
static |
Definition at line 265 of file arm-linux-nat.c.
References _, ARM_WCGR0_REGNUM, ARM_WCSSF_REGNUM, ARM_WR0_REGNUM, IWMMXT_REGS_SIZE, perror_with_name(), ptid_get_lwp(), ptrace(), PTRACE_GETWMMXREGS, PTRACE_SETWMMXREGS, REG_VALID, regcache_get_ptid(), regcache_raw_collect(), regcache_register_status(), and selftests::ptid::tid.
Referenced by arm_linux_store_inferior_registers().
| void supply_fpregset | ( | struct regcache * | regcache, |
| const gdb_fpregset_t * | fpregsetp | ||
| ) |
Definition at line 476 of file arm-linux-nat.c.
References arm_linux_supply_nwfpe().
| void supply_gregset | ( | struct regcache * | regcache, |
| const gdb_gregset_t * | gregsetp | ||
| ) |
Definition at line 460 of file arm-linux-nat.c.
References arm_linux_supply_gregset().
|
static |
Definition at line 928 of file arm-linux-nat.c.
References update_registers_data::index, linux_stop_lwp(), selftests::ptid::lwp, update_registers_data::watch, and XCNEW.
Referenced by arm_linux_insert_hw_breakpoint1(), and arm_linux_remove_hw_breakpoint1().
| int arm_apcs_32 |
Definition at line 281 of file arm-tdep.c.
Referenced by aarch32_gp_regcache_collect(), aarch32_gp_regcache_supply(), fetch_regs(), and store_regs().
|
static |
Definition at line 738 of file arm-linux-nat.c.
Referenced by arm_linux_add_process(), arm_linux_find_process_pid(), and arm_linux_forget_process().
1.8.14