|
GDBserver
|
#include "server.h"#include "linux-low.h"#include "arch/arm.h"#include "arch/arm-linux.h"#include "arch/arm-get-next-pcs.h"#include "linux-aarch32-low.h"#include <sys/uio.h>#include <elf.h>#include "nat/gdb_ptrace.h"#include <signal.h>#include <sys/syscall.h>Go to the source code of this file.
Classes | |
| struct | arm_linux_hw_breakpoint |
| struct | arch_process_info |
| struct | arch_lwp_info |
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 | MAX_BPTS 32 |
| #define | MAX_WPTS 32 |
| #define | HWCAP_VFP 64 |
| #define | HWCAP_IWMMXT 512 |
| #define | HWCAP_NEON 4096 |
| #define | HWCAP_VFPv3 8192 |
| #define | HWCAP_VFPv3D16 16384 |
| #define | arm_num_regs 26 |
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 | |
| const struct target_desc * | tdesc_arm |
| const struct target_desc * | tdesc_arm_with_iwmmxt |
| const struct target_desc * | tdesc_arm_with_vfpv2 |
| const struct target_desc * | tdesc_arm_with_vfpv3 |
| struct { | |
| unsigned char arch | |
| unsigned char max_wp_length | |
| unsigned char wp_count | |
| unsigned char bp_count | |
| } | arm_linux_hwbp_cap |
| static int | arm_regmap [] |
| static struct arm_get_next_pcs_ops | get_next_pcs_ops |
| static struct regset_info | arm_regsets [] |
| static struct regsets_info | arm_regsets_info |
| static struct usrregs_info | arm_usrregs_info |
| static struct regs_info | regs_info_arm |
| struct linux_target_ops | the_low_target |
| #define arm_num_regs 26 |
Definition at line 133 of file linux-arm-low.c.
Referenced by arm_cannot_fetch_register(), arm_cannot_store_register(), arm_fill_wmmxregset(), and arm_store_wmmxregset().
| #define HWCAP_IWMMXT 512 |
Definition at line 124 of file linux-arm-low.c.
Referenced by arm_read_description().
| #define HWCAP_NEON 4096 |
Definition at line 125 of file linux-arm-low.c.
Referenced by arm_read_description().
| #define HWCAP_VFP 64 |
Definition at line 123 of file linux-arm-low.c.
Referenced by arm_read_description().
| #define HWCAP_VFPv3 8192 |
Definition at line 126 of file linux-arm-low.c.
Referenced by arm_read_description().
| #define HWCAP_VFPv3D16 16384 |
Definition at line 127 of file linux-arm-low.c.
Referenced by arm_read_description().
| #define MAX_BPTS 32 |
Definition at line 100 of file linux-arm-low.c.
Referenced by arm_linux_init_hwbp_cap(), arm_new_fork(), and arm_new_thread().
| #define MAX_WPTS 32 |
Definition at line 101 of file linux-arm-low.c.
Referenced by arm_linux_init_hwbp_cap(), arm_new_fork(), and arm_new_thread().
| #define PTRACE_GET_THREAD_AREA 22 |
Definition at line 50 of file linux-arm-low.c.
Referenced by ps_get_thread_area().
| #define PTRACE_GETHBPREGS 29 |
Definition at line 64 of file linux-arm-low.c.
Referenced by arm_linux_init_hwbp_cap().
| #define PTRACE_GETVFPREGS 27 |
Definition at line 59 of file linux-arm-low.c.
Referenced by arm_read_description().
| #define PTRACE_GETWMMXREGS 18 |
Definition at line 54 of file linux-arm-low.c.
| #define PTRACE_SETHBPREGS 30 |
Definition at line 65 of file linux-arm-low.c.
Referenced by arm_prepare_to_resume().
| #define PTRACE_SETVFPREGS 28 |
Definition at line 60 of file linux-arm-low.c.
| #define PTRACE_SETWMMXREGS 19 |
Definition at line 55 of file linux-arm-low.c.
| typedef unsigned int arm_hwbp_control_t |
Definition at line 87 of file linux-arm-low.c.
| enum arm_hwbp_type |
| Enumerator | |
|---|---|
| arm_hwbp_break | |
| arm_hwbp_load | |
| arm_hwbp_store | |
| arm_hwbp_access | |
Definition at line 78 of file linux-arm-low.c.
|
static |
Definition at line 920 of file linux-arm-low.c.
References arm_read_description(), current_process(), current_thread, have_ptrace_getregset, lwpid_of(), ptrace(), PTRACE_GETREGSET, and process_info::tdesc.
|
static |
Definition at line 170 of file linux-arm-low.c.
References arm_num_regs.
|
static |
Definition at line 164 of file linux-arm-low.c.
References arm_num_regs.
|
static |
Definition at line 642 of file linux-arm-low.c.
References xfree().
|
static |
Definition at line 665 of file linux-arm-low.c.
References xfree().
|
static |
Definition at line 210 of file linux-arm-low.c.
References arm_fill_vfpregset_num(), regcache::tdesc, tdesc_arm_with_neon, tdesc_arm_with_vfpv2, and tdesc_arm_with_vfpv3.
|
static |
Definition at line 176 of file linux-arm-low.c.
References arm_num_regs, collect_register(), regcache::tdesc, and tdesc_arm_with_iwmmxt.
Definition at line 941 of file linux-arm-low.c.
References get_next_pcs_ops.
|
static |
Definition at line 851 of file linux-arm-low.c.
References alloca(), offset, target_ops::read_auxv, and the_target.
Referenced by arm_read_description().
|
static |
Definition at line 967 of file linux-arm-low.c.
References arm_is_thumb_mode(), collect_register_by_name(), target_ops::read_memory, the_target, and UNKNOWN_SYSCALL.
|
static |
Definition at line 366 of file linux-arm-low.c.
Referenced by arm_remove_point().
|
static |
Definition at line 339 of file linux-arm-low.c.
References arm_hwbp_break, and gdb_assert.
Referenced by arm_linux_hw_point_initialize().
|
static |
Definition at line 352 of file linux-arm-low.c.
Referenced by arm_insert_point(), and arm_prepare_to_resume().
|
static |
Definition at line 359 of file linux-arm-low.c.
Referenced by arm_prepare_to_resume().
|
static |
Definition at line 500 of file linux-arm-low.c.
References process_info_private::arch_private, arm_hwbp_control_is_enabled(), arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arm_linux_hw_point_initialize(), arch_process_info::bpts, arm_linux_hw_breakpoint::control, current_process(), current_thread, for_each_thread(), thread_info::id, ptid_t::pid(), process_info::priv, update_registers_callback(), and arch_process_info::wpts.
|
static |
Definition at line 315 of file linux-arm-low.c.
References arm_linux_hwbp_cap.
Referenced by arm_insert_point(), arm_prepare_to_resume(), and arm_remove_point().
|
static |
Definition at line 322 of file linux-arm-low.c.
References arm_linux_hwbp_cap.
Referenced by arm_insert_point(), arm_prepare_to_resume(), arm_remove_point(), and arm_stopped_by_watchpoint().
|
static |
Definition at line 329 of file linux-arm-low.c.
References arm_linux_hwbp_cap.
Referenced by arm_linux_hw_point_initialize().
|
static |
Definition at line 373 of file linux-arm-low.c.
References arm_linux_hw_breakpoint::address, and arm_linux_hw_breakpoint::control.
Referenced by arm_remove_point().
|
static |
Definition at line 405 of file linux-arm-low.c.
References arm_linux_hw_breakpoint::address, arm_hwbp_break, arm_hwbp_control_initialize(), arm_linux_get_hw_watchpoint_max_length(), arm_linux_hw_breakpoint::control, max_wp_length, and raw_bkpt_type_to_arm_hwbp_type().
Referenced by arm_insert_point(), and arm_remove_point().
|
static |
Definition at line 292 of file linux-arm-low.c.
References arm_linux_hwbp_cap, internal_error(), MAX_BPTS, MAX_WPTS, ptrace(), and PTRACE_GETHBPREGS.
Referenced by arm_read_description().
|
static |
Definition at line 671 of file linux-arm-low.c.
References process_info_private::arch_private, lwp_info::arch_private, arch_lwp_info::bpts_changed, find_lwp_pid(), gdb_assert, MAX_BPTS, MAX_WPTS, process_info::pid, process_info::priv, and arch_lwp_info::wpts_changed.
|
static |
Definition at line 633 of file linux-arm-low.c.
References XCNEW.
|
static |
Definition at line 649 of file linux-arm-low.c.
References lwp_info::arch_private, arch_lwp_info::bpts_changed, MAX_BPTS, MAX_WPTS, arch_lwp_info::wpts_changed, and XCNEW.
|
static |
Definition at line 717 of file linux-arm-low.c.
References arm_linux_hw_breakpoint::address, process_info_private::arch_private, lwp_info::arch_private, arm_hwbp_control_is_enabled(), arm_hwbp_control_is_initialized(), arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arch_process_info::bpts, arm_linux_hw_breakpoint::control, errno, find_process_pid(), get_lwp_thread, lwpid_of(), perror_with_name(), pid_of(), process_info::priv, ptrace(), PTRACE_SETHBPREGS, PTRACE_TYPE_ARG3, and arch_process_info::wpts.
|
static |
Definition at line 873 of file linux-arm-low.c.
References arm_get_hwcap(), arm_linux_init_hwbp_cap(), current_thread, errno, free(), HWCAP_IWMMXT, HWCAP_NEON, HWCAP_VFP, HWCAP_VFPv3, HWCAP_VFPv3D16, lwpid_of(), ptrace(), PTRACE_GETVFPREGS, tdesc_arm, tdesc_arm_with_iwmmxt, tdesc_arm_with_neon, tdesc_arm_with_vfpv2, tdesc_arm_with_vfpv3, and xmalloc().
Referenced by arm_arch_setup().
|
static |
Definition at line 1034 of file linux-arm-low.c.
References current_process(), have_ptrace_getregset, regs_info_aarch32, regs_info_arm, process_info::tdesc, tdesc_arm_with_neon, and tdesc_arm_with_vfpv3.
|
static |
Definition at line 545 of file linux-arm-low.c.
References process_info_private::arch_private, arm_hwbp_control_disable(), arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arm_linux_hw_breakpoint_equal(), arm_linux_hw_point_initialize(), arch_process_info::bpts, arm_linux_hw_breakpoint::control, current_process(), current_thread, for_each_thread(), thread_info::id, ptid_t::pid(), process_info::priv, update_registers_callback(), and arch_process_info::wpts.
|
static |
Definition at line 772 of file linux-arm-low.c.
References collect_register_by_name(), gdb_assert, target_ops::read_memory, sp, and the_target.
Referenced by get_next_pcs_syscall_next_pc().
|
static |
Definition at line 590 of file linux-arm-low.c.
References lwp_info::arch_private, arm_linux_get_hw_watchpoint_count(), current_thread, errno, get_thread_lwp, lwpid_of(), ptrace(), PTRACE_GETSIGINFO, and arch_lwp_info::stopped_data_address.
|
static |
Definition at line 625 of file linux-arm-low.c.
References lwp_info::arch_private, current_thread, get_thread_lwp, and arch_lwp_info::stopped_data_address.
|
static |
Definition at line 233 of file linux-arm-low.c.
References arm_store_vfpregset_num(), regcache::tdesc, tdesc_arm_with_neon, tdesc_arm_with_vfpv2, and tdesc_arm_with_vfpv3.
|
static |
Definition at line 193 of file linux-arm-low.c.
References arm_num_regs, supply_register(), regcache::tdesc, and tdesc_arm_with_iwmmxt.
|
static |
Definition at line 959 of file linux-arm-low.c.
|
static |
Definition at line 482 of file linux-arm-low.c.
References Z_PACKET_ACCESS_WP, Z_PACKET_HW_BP, Z_PACKET_READ_WP, Z_PACKET_SW_BP, and Z_PACKET_WRITE_WP.
|
static |
Definition at line 227 of file linux-arm-low.c.
|
static |
Definition at line 250 of file linux-arm-low.c.
References arm_is_thumb_mode().
|
static |
Definition at line 259 of file linux-arm-low.c.
References target_read_memory().
|
static |
Definition at line 802 of file linux-arm-low.c.
References arm_is_thumb_mode(), arm_sigreturn_next_pc(), collect_register(), regcache_read_pc(), and target_read_memory().
| void init_registers_arm | ( | void | ) |
Referenced by initialize_low_arch().
| void init_registers_arm_with_iwmmxt | ( | void | ) |
Referenced by initialize_low_arch().
| void init_registers_arm_with_vfpv2 | ( | void | ) |
Referenced by initialize_low_arch().
| void init_registers_arm_with_vfpv3 | ( | void | ) |
Referenced by initialize_low_arch().
| void initialize_low_arch | ( | void | ) |
Definition at line 1085 of file linux-arm-low.c.
References arm_regsets_info, init_registers_arm(), init_registers_arm_with_iwmmxt(), init_registers_arm_with_vfpv2(), init_registers_arm_with_vfpv3(), and initialize_low_arch_aarch32().
| ps_err_e ps_get_thread_area | ( | struct ps_prochandle * | ph, |
| lwpid_t | lwpid, | ||
| int | idx, | ||
| void ** | base | ||
| ) |
Definition at line 274 of file linux-arm-low.c.
References PS_ERR, PS_OK, ptrace(), and PTRACE_GET_THREAD_AREA.
|
static |
Definition at line 382 of file linux-arm-low.c.
References arm_hwbp_access, arm_hwbp_break, arm_hwbp_load, arm_hwbp_store, gdb_assert_not_reached, raw_bkpt_type_access_wp, raw_bkpt_type_hw, raw_bkpt_type_read_wp, and raw_bkpt_type_write_wp.
Referenced by arm_linux_hw_point_initialize().
|
static |
Definition at line 464 of file linux-arm-low.c.
References lwp_info::arch_private, arch_lwp_info::bpts_changed, get_thread_lwp, linux_stop_lwp(), lwp_info::stopped, lwp_info::thread, and arch_lwp_info::wpts_changed.
Referenced by arm_insert_point(), and arm_remove_point().
| unsigned char arch |
Definition at line 71 of file linux-arm-low.c.
| struct { ... } arm_linux_hwbp_cap |
|
static |
Definition at line 135 of file linux-arm-low.c.
|
static |
Definition at line 1000 of file linux-arm-low.c.
|
static |
Definition at line 1013 of file linux-arm-low.c.
Referenced by initialize_low_arch().
|
static |
Definition at line 1020 of file linux-arm-low.c.
| unsigned char bp_count |
Definition at line 74 of file linux-arm-low.c.
|
static |
Definition at line 155 of file linux-arm-low.c.
Referenced by arm_gdbserver_get_next_pcs().
| unsigned char max_wp_length |
Definition at line 72 of file linux-arm-low.c.
Referenced by arm_linux_hw_point_initialize().
|
static |
Definition at line 1026 of file linux-arm-low.c.
Referenced by arm_regs_info().
| const struct target_desc* tdesc_arm |
Referenced by arm_read_description().
| const struct target_desc* tdesc_arm_with_iwmmxt |
Referenced by arm_fill_wmmxregset(), arm_read_description(), and arm_store_wmmxregset().
| const struct target_desc* tdesc_arm_with_vfpv2 |
Referenced by arm_fill_vfpregset(), arm_read_description(), and arm_store_vfpregset().
| const struct target_desc* tdesc_arm_with_vfpv3 |
Referenced by arm_fill_vfpregset(), arm_read_description(), arm_regs_info(), and arm_store_vfpregset().
| struct linux_target_ops the_low_target |
Definition at line 1045 of file linux-arm-low.c.
| unsigned char wp_count |
Definition at line 73 of file linux-arm-low.c.
1.8.14