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 "observable.h"
#include "gdbthread.h"
#include "aarch32-tdep.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 "linux-tdep.h"
#include "gregset.h"
#include "gdb_proc_service.h"
Go to the source code of this file.
Classes | |
class | arm_linux_nat_target |
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 |
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 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 | |
static arm_linux_nat_target | the_arm_linux_nat_target |
static struct arm_linux_process_info * | arm_linux_process_list = NULL |
#define MAX_BPTS 16 |
Definition at line 592 of file arm-linux-nat.c.
Referenced by arm_linux_get_hwbp_cap(), and arm_linux_nat_target::low_new_thread().
#define MAX_WPTS 16 |
Definition at line 593 of file arm-linux-nat.c.
Referenced by arm_linux_get_hwbp_cap().
#define PTRACE_GET_THREAD_AREA 22 |
Definition at line 51 of file arm-linux-nat.c.
Referenced by ps_get_thread_area().
#define PTRACE_GETHBPREGS 29 |
Definition at line 65 of file arm-linux-nat.c.
Referenced by arm_linux_get_hwbp_cap().
#define PTRACE_GETVFPREGS 27 |
Definition at line 60 of file arm-linux-nat.c.
Referenced by fetch_vfp_regs(), arm_linux_nat_target::read_description(), and store_vfp_regs().
#define PTRACE_GETWMMXREGS 18 |
Definition at line 55 of file arm-linux-nat.c.
Referenced by fetch_wmmx_regs(), and store_wmmx_regs().
#define PTRACE_SETHBPREGS 30 |
Definition at line 66 of file arm-linux-nat.c.
Referenced by arm_linux_nat_target::low_prepare_to_resume().
#define PTRACE_SETVFPREGS 28 |
Definition at line 61 of file arm-linux-nat.c.
Referenced by store_vfp_regs().
#define PTRACE_SETWMMXREGS 19 |
Definition at line 56 of file arm-linux-nat.c.
Referenced by store_wmmx_regs().
typedef unsigned int arm_hwbp_control_t |
Definition at line 701 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 692 of file arm-linux-nat.c.
void _initialize_arm_linux_nat | ( | ) |
Definition at line 1307 of file arm-linux-nat.c.
References add_inf_child_target(), linux_target, and the_arm_linux_nat_target.
|
static |
Definition at line 868 of file arm-linux-nat.c.
Referenced by arm_linux_remove_hw_breakpoint1().
|
static |
Definition at line 848 of file arm-linux-nat.c.
References arm_hwbp_break, and enable.
Referenced by arm_linux_hw_breakpoint_initialize(), and arm_linux_hw_watchpoint_initialize().
|
static |
Definition at line 861 of file arm-linux-nat.c.
Referenced by arm_linux_insert_hw_breakpoint1(), and arm_linux_nat_target::low_prepare_to_resume().
|
static |
Definition at line 781 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 766 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 838 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_remove_hw_breakpoint1(), arm_linux_nat_target::low_new_fork(), and arm_linux_nat_target::low_prepare_to_resume().
|
static |
Definition at line 646 of file arm-linux-nat.c.
References arm_linux_get_hwbp_cap(), and arm_linux_hwbp_cap::bp_count.
Referenced by arm_linux_insert_hw_breakpoint1(), arm_linux_remove_hw_breakpoint1(), arm_linux_nat_target::can_use_hw_breakpoint(), arm_linux_nat_target::insert_hw_breakpoint(), arm_linux_nat_target::low_prepare_to_resume(), and arm_linux_nat_target::remove_hw_breakpoint().
|
static |
Definition at line 654 of file arm-linux-nat.c.
References arm_linux_get_hwbp_cap(), and arm_linux_hwbp_cap::wp_count.
Referenced by arm_linux_insert_hw_breakpoint1(), arm_linux_remove_hw_breakpoint1(), arm_linux_nat_target::can_use_hw_breakpoint(), arm_linux_nat_target::insert_watchpoint(), arm_linux_nat_target::low_prepare_to_resume(), arm_linux_nat_target::remove_watchpoint(), and arm_linux_nat_target::stopped_data_address().
|
static |
Definition at line 599 of file arm-linux-nat.c.
References available, inferior_ptid, MAX_BPTS, MAX_WPTS, ptrace, and PTRACE_GETHBPREGS.
Referenced by arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arm_linux_hw_watchpoint_initialize(), and arm_linux_nat_target::region_ok_for_hw_watchpoint().
|
static |
Definition at line 903 of file arm-linux-nat.c.
References arm_hwbp_access, arm_hwbp_load, and arm_hwbp_store.
Referenced by arm_linux_hw_watchpoint_initialize().
|
static |
Definition at line 935 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 876 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_nat_target::insert_hw_breakpoint(), and arm_linux_nat_target::remove_hw_breakpoint().
|
static |
Definition at line 916 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, and arm_linux_hwbp_cap::max_wp_length.
Referenced by arm_linux_nat_target::insert_watchpoint(), and arm_linux_nat_target::remove_watchpoint().
|
static |
Definition at line 968 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, arm_linux_hw_breakpoint::control, inferior_ptid, iterate_over_lwps(), pid, update_registers_callback(), and arm_linux_debug_reg_state::wpts.
Referenced by arm_linux_nat_target::insert_hw_breakpoint(), and arm_linux_nat_target::insert_watchpoint().
|
static |
Definition at line 798 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 1009 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, inferior_ptid, iterate_over_lwps(), pid, update_registers_callback(), and arm_linux_debug_reg_state::wpts.
Referenced by arm_linux_nat_target::remove_hw_breakpoint(), and arm_linux_nat_target::remove_watchpoint().
|
static |
Definition at line 116 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, regcache::ptid(), ptrace, PTRACE_GETREGSET, reg_buffer::raw_supply(), and supply_nwfpe_register().
Referenced by arm_linux_nat_target::fetch_registers().
|
static |
Definition at line 206 of file arm-linux-nat.c.
References aarch32_gp_regcache_supply(), arm_apcs_32, have_ptrace_getregset, regcache::ptid(), ptrace, PTRACE_GETREGS, and PTRACE_GETREGSET.
Referenced by arm_linux_nat_target::fetch_registers().
|
static |
Definition at line 337 of file arm-linux-nat.c.
References aarch32_vfp_regcache_supply(), reg_buffer::arch(), ARM_VFP3_REGS_SIZE, have_ptrace_getregset, regcache::ptid(), ptrace, PTRACE_GETREGSET, PTRACE_GETVFPREGS, and arm_gdbarch_tdep::vfp_register_count.
Referenced by arm_linux_nat_target::fetch_registers().
|
static |
Definition at line 279 of file arm-linux-nat.c.
References ARM_WCGR0_REGNUM, ARM_WCSSF_REGNUM, ARM_WR0_REGNUM, IWMMXT_REGS_SIZE, regcache::ptid(), ptrace, PTRACE_GETWMMXREGS, and reg_buffer::raw_supply().
Referenced by arm_linux_nat_target::fetch_registers().
void fill_fpregset | ( | const struct regcache * | regcache, |
gdb_fpregset_t * | fpregsetp, | ||
int | regno ) |
Definition at line 499 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 486 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 517 of file arm-linux-nat.c.
References ptrace, and PTRACE_GET_THREAD_AREA.
|
static |
Definition at line 152 of file arm-linux-nat.c.
References ARM_F0_REGNUM, ARM_F7_REGNUM, ARM_FPS_REGNUM, ARM_LINUX_SIZEOF_NWFPE, collect_nwfpe_register(), reg_buffer::get_register_status(), have_ptrace_getregset, NWFPE_FPSR_OFFSET, regcache::ptid(), ptrace, PTRACE_GETREGSET, PTRACE_SETFPREGS, PTRACE_SETREGSET, and reg_buffer::raw_collect().
Referenced by arm_linux_nat_target::store_registers().
|
static |
Definition at line 233 of file arm-linux-nat.c.
References aarch32_gp_regcache_collect(), arm_apcs_32, have_ptrace_getregset, regcache::ptid(), ptrace, PTRACE_GETREGS, PTRACE_GETREGSET, PTRACE_SETREGS, and PTRACE_SETREGSET.
Referenced by arm_linux_nat_target::store_registers().
|
static |
Definition at line 366 of file arm-linux-nat.c.
References aarch32_vfp_regcache_collect(), reg_buffer::arch(), ARM_VFP3_REGS_SIZE, have_ptrace_getregset, regcache::ptid(), ptrace, PTRACE_GETREGSET, PTRACE_GETVFPREGS, PTRACE_SETREGSET, PTRACE_SETVFPREGS, and arm_gdbarch_tdep::vfp_register_count.
Referenced by arm_linux_nat_target::store_registers().
|
static |
Definition at line 304 of file arm-linux-nat.c.
References ARM_WCGR0_REGNUM, ARM_WCSSF_REGNUM, ARM_WR0_REGNUM, reg_buffer::get_register_status(), IWMMXT_REGS_SIZE, regcache::ptid(), ptrace, PTRACE_GETWMMXREGS, PTRACE_SETWMMXREGS, and reg_buffer::raw_collect().
Referenced by arm_linux_nat_target::store_registers().
void supply_fpregset | ( | struct regcache * | regcache, |
const gdb_fpregset_t * | fpregsetp ) |
Definition at line 509 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 493 of file arm-linux-nat.c.
References arm_linux_supply_gregset().
|
static |
Definition at line 945 of file arm-linux-nat.c.
References lwp_info::arch_private, arch_lwp_info::bpts_changed, linux_stop_lwp(), lwp_info::stopped, and arch_lwp_info::wpts_changed.
Referenced by arm_linux_insert_hw_breakpoint1(), and arm_linux_remove_hw_breakpoint1().
|
static |
Definition at line 761 of file arm-linux-nat.c.
Referenced by arm_linux_add_process(), arm_linux_find_process_pid(), and arm_linux_nat_target::low_forget_process().
|
static |
Definition at line 110 of file arm-linux-nat.c.
Referenced by _initialize_arm_linux_nat().