GDB (xrefs)

Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/arm-linux-nat.c File Reference
`#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 }

## Functions
static void | fetch_fpregs (struct regcache *regcache)
static void | store_fpregs (const struct regcache *regcache)
static void | fetch_regs (struct regcache *regcache)
static void | store_regs (const struct regcache *regcache)
static void | fetch_wmmx_regs (struct regcache *regcache)
static void | store_wmmx_regs (const struct regcache *regcache)
static void | fetch_vfp_regs (struct regcache *regcache)
static void | store_vfp_regs (const struct regcache *regcache)
static void | arm_linux_fetch_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno)
static void | arm_linux_store_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno)
void | fill_gregset (const struct regcache *regcache, gdb_gregset_t *gregsetp, int regno)
void | supply_gregset (struct regcache *regcache, const gdb_gregset_t *gregsetp)
void | fill_fpregset (const struct regcache *regcache, gdb_fpregset_t *fpregsetp, int regno)
void | supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *fpregsetp)
ps_err_e | ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
static const struct target_desc * | arm_linux_read_description (struct target_ops *ops)
static const struct arm_linux_hwbp_cap * | arm_linux_get_hwbp_cap (void)
static int | arm_linux_get_hw_breakpoint_count (void)
static int | arm_linux_get_hw_watchpoint_count (void)
static int | arm_linux_can_use_hw_breakpoint (struct target_ops *self, enum bptype type, int cnt, int ot)
static struct arm_linux_process_info * | arm_linux_find_process_pid (pid_t pid)
static struct arm_linux_process_info * | arm_linux_add_process (pid_t pid)
static struct arm_linux_process_info * | arm_linux_process_info_get (pid_t pid)
static void | arm_linux_forget_process (pid_t pid)
static struct arm_linux_debug_reg_state * | arm_linux_get_debug_reg_state (pid_t pid)
static arm_hwbp_control_t | arm_hwbp_control_initialize (unsigned byte_address_select, arm_hwbp_type hwbp_type, int enable)
static int | arm_hwbp_control_is_enabled (arm_hwbp_control_t control)
static arm_hwbp_control_t | arm_hwbp_control_disable (arm_hwbp_control_t control)
static void | arm_linux_hw_breakpoint_initialize (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt, struct arm_linux_hw_breakpoint *p)
static arm_hwbp_type | arm_linux_get_hwbp_type (enum target_hw_bp_type type)
static void | arm_linux_hw_watchpoint_initialize (CORE_ADDR addr, int len, enum target_hw_bp_type type, struct arm_linux_hw_breakpoint *p)
static int | arm_linux_hw_breakpoint_equal (const struct arm_linux_hw_breakpoint *p1, const struct arm_linux_hw_breakpoint *p2)
static int | update_registers_callback (struct lwp_info *lwp, void *arg)
static void | arm_linux_insert_hw_breakpoint1 (const struct arm_linux_hw_breakpoint *bpt, int watchpoint)
static void | arm_linux_remove_hw_breakpoint1 (const struct arm_linux_hw_breakpoint *bpt, int watchpoint)
static int | arm_linux_insert_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
static int | arm_linux_remove_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
static int | arm_linux_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR addr, int len)
static int | arm_linux_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type rw, struct expression *cond)
static int | arm_linux_remove_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type rw, struct expression *cond)
static int | arm_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
static int | arm_linux_stopped_by_watchpoint (struct target_ops *ops)
static int | arm_linux_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr, CORE_ADDR start, int length)
static void | arm_linux_new_thread (struct lwp_info *lp)
static void | arm_linux_delete_thread (struct arch_lwp_info *arch_lwp)
static void | arm_linux_prepare_to_resume (struct lwp_info *lwp)
static void | arm_linux_new_fork (struct lwp_info *parent, pid_t child_pid)
void | _initialize_arm_linux_nat (void)

## Variables
int | arm_apcs_32
static struct arm_linux_process_info * | arm_linux_process_list = NULL

## Macro Definition Documentation

## ◆ IWMMXT_REGS_SIZE

#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().

## ◆ MAX_BPTS

#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().

## ◆ MAX_WPTS

#define MAX_WPTS 16

Definition at line 569 of file arm-linux-nat.c.

Referenced by arm_linux_get_hwbp_cap().

## ◆ PTRACE_GET_THREAD_AREA

#define PTRACE_GET_THREAD_AREA 22

Definition at line 49 of file arm-linux-nat.c.

Referenced by ps_get_thread_area().

## ◆ PTRACE_GETHBPREGS

#define PTRACE_GETHBPREGS 29

Definition at line 63 of file arm-linux-nat.c.

Referenced by arm_linux_get_hwbp_cap().

## ◆ PTRACE_GETVFPREGS

#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().

## ◆ PTRACE_GETWMMXREGS

#define PTRACE_GETWMMXREGS 18

Definition at line 53 of file arm-linux-nat.c.

Referenced by fetch_wmmx_regs(), and store_wmmx_regs().

## ◆ PTRACE_SETHBPREGS

#define PTRACE_SETHBPREGS 30

Definition at line 64 of file arm-linux-nat.c.

Referenced by arm_linux_prepare_to_resume().

## ◆ PTRACE_SETVFPREGS

#define PTRACE_SETVFPREGS 28

Definition at line 59 of file arm-linux-nat.c.

Referenced by store_vfp_regs().

## ◆ PTRACE_SETWMMXREGS

#define PTRACE_SETWMMXREGS 19

Definition at line 54 of file arm-linux-nat.c.

Referenced by store_wmmx_regs().

## Typedef Documentation

## ◆ arm_hwbp_control_t

typedef unsigned int arm_hwbp_control_t

Definition at line 678 of file arm-linux-nat.c.

## Enumeration Type Documentation

## ◆ arm_hwbp_type

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.

## Function Documentation

## ◆ _initialize_arm_linux_nat()

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.

## ◆ arm_hwbp_control_disable()

static arm_hwbp_control_t arm_hwbp_control_disable | ( | arm_hwbp_control_t | control | ) |
| static

Definition at line 845 of file arm-linux-nat.c.

Referenced by arm_linux_remove_hw_breakpoint1().

## ◆ arm_hwbp_control_initialize()

static arm_hwbp_control_t arm_hwbp_control_initialize | ( | unsigned | byte_address_select,
|  | arm_hwbp_type | hwbp_type,
|  | int | enable
| ) |  |
| 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().

## ◆ arm_hwbp_control_is_enabled()

static int arm_hwbp_control_is_enabled | ( | arm_hwbp_control_t | control | ) |
| static

Definition at line 838 of file arm-linux-nat.c.

Referenced by arm_linux_insert_hw_breakpoint1(), and arm_linux_prepare_to_resume().

## ◆ arm_linux_add_process()

static struct arm_linux_process_info* arm_linux_add_process | ( | pid_t | pid | ) |
| 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().

## ◆ arm_linux_can_use_hw_breakpoint()

static int arm_linux_can_use_hw_breakpoint | ( | struct target_ops * | self,
|  | enum bptype | type,
|  | int | cnt,
|  | int | ot
| ) |  |
| 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().

## ◆ arm_linux_delete_thread()

static void arm_linux_delete_thread | ( | struct arch_lwp_info * | arch_lwp | ) |
| static

Definition at line 1208 of file arm-linux-nat.c.

References xfree().

Referenced by _initialize_arm_linux_nat().

## ◆ arm_linux_fetch_inferior_registers()

static void arm_linux_fetch_inferior_registers | ( | struct target_ops * | ops,
|  | struct regcache * | regcache,
|  | int | regno
| ) |  |
| 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().

## ◆ arm_linux_find_process_pid()

static struct arm_linux_process_info* arm_linux_find_process_pid | ( | pid_t | pid | ) |
| 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().

## ◆ arm_linux_forget_process()

static void arm_linux_forget_process | ( | pid_t | pid | ) |
| 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().

## ◆ arm_linux_get_debug_reg_state()

static struct arm_linux_debug_reg_state* arm_linux_get_debug_reg_state | ( | pid_t | pid | ) |
| 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().

## ◆ arm_linux_get_hw_breakpoint_count()

static int arm_linux_get_hw_breakpoint_count | ( | void |  | ) |
| 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().

## ◆ arm_linux_get_hw_watchpoint_count()

static int arm_linux_get_hw_watchpoint_count | ( | void |  | ) |
| 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().

## ◆ arm_linux_get_hwbp_cap()

static const struct arm_linux_hwbp_cap* arm_linux_get_hwbp_cap | ( | void |  | ) |
| 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().

## ◆ arm_linux_get_hwbp_type()

static arm_hwbp_type arm_linux_get_hwbp_type | ( | enum target_hw_bp_type | type | ) |
| 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().

## ◆ arm_linux_hw_breakpoint_equal()

static int arm_linux_hw_breakpoint_equal | ( | const struct arm_linux_hw_breakpoint * | p1,
|  | const struct arm_linux_hw_breakpoint * | p2
| ) |  |
| 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().

## ◆ arm_linux_hw_breakpoint_initialize()

static void arm_linux_hw_breakpoint_initialize | ( | struct gdbarch * | gdbarch,
|  | struct bp_target_info * | bp_tgt,
|  | struct arm_linux_hw_breakpoint * | p
| ) |  |
| 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().

## ◆ arm_linux_hw_watchpoint_initialize()

static void arm_linux_hw_watchpoint_initialize | ( | CORE_ADDR | addr,
|  | int | len,
|  | enum target_hw_bp_type | type,
|  | struct arm_linux_hw_breakpoint * | p
| ) |  |
| 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().

## ◆ arm_linux_insert_hw_breakpoint()

static int arm_linux_insert_hw_breakpoint | ( | struct target_ops * | self,
|  | struct gdbarch * | gdbarch,
|  | struct bp_target_info * | bp_tgt
| ) |  |
| 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().

## ◆ arm_linux_insert_hw_breakpoint1()

static void arm_linux_insert_hw_breakpoint1 | ( | const struct arm_linux_hw_breakpoint * | bpt,
|  | int | watchpoint
| ) |  |
| 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().

## ◆ arm_linux_insert_watchpoint()

static int arm_linux_insert_watchpoint | ( | struct target_ops * | self,
|  | CORE_ADDR | addr,
|  | int | len,
|  | enum target_hw_bp_type | rw,
|  | struct expression * | cond
| ) |  |
| 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().

## ◆ arm_linux_new_fork()

static void arm_linux_new_fork | ( | struct lwp_info * | parent,
|  | pid_t | child_pid
| ) |  |
| 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().

## ◆ arm_linux_new_thread()

static void arm_linux_new_thread | ( | struct lwp_info * | lp | ) |
| 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().

## ◆ arm_linux_prepare_to_resume()

static void arm_linux_prepare_to_resume | ( | struct lwp_info * | lwp | ) |
| 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().

## ◆ arm_linux_process_info_get()

static struct arm_linux_process_info* arm_linux_process_info_get | ( | pid_t | pid | ) |
| 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().

## ◆ arm_linux_read_description()

static const struct target_desc* arm_linux_read_description | ( | struct target_ops * | ops | ) |
| 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().

## ◆ arm_linux_region_ok_for_hw_watchpoint()

static int arm_linux_region_ok_for_hw_watchpoint | ( | struct target_ops * | self,
|  | CORE_ADDR | addr,
|  | int | len
| ) |  |
| 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().

## ◆ arm_linux_remove_hw_breakpoint()

static int arm_linux_remove_hw_breakpoint | ( | struct target_ops * | self,
|  | struct gdbarch * | gdbarch,
|  | struct bp_target_info * | bp_tgt
| ) |  |
| 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().

## ◆ arm_linux_remove_hw_breakpoint1()

static void arm_linux_remove_hw_breakpoint1 | ( | const struct arm_linux_hw_breakpoint * | bpt,
|  | int | watchpoint
| ) |  |
| 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().

## ◆ arm_linux_remove_watchpoint()

static int arm_linux_remove_watchpoint | ( | struct target_ops * | self,
|  | CORE_ADDR | addr,
|  | int | len,
|  | enum target_hw_bp_type | rw,
|  | struct expression * | cond
| ) |  |
| 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().

## ◆ arm_linux_stopped_by_watchpoint()

static int arm_linux_stopped_by_watchpoint | ( | struct target_ops * | ops | ) |
| static

Definition at line 1171 of file arm-linux-nat.c.

References arm_linux_stopped_data_address().

Referenced by _initialize_arm_linux_nat().

## ◆ arm_linux_stopped_data_address()

static int arm_linux_stopped_data_address | ( | struct target_ops * | target,
|  | CORE_ADDR * | addr_p
| ) |  |
| 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().

## ◆ arm_linux_store_inferior_registers()

static void arm_linux_store_inferior_registers | ( | struct target_ops * | ops,
|  | struct regcache * | regcache,
|  | int | regno
| ) |  |
| 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().

## ◆ arm_linux_watchpoint_addr_within_range()

static int arm_linux_watchpoint_addr_within_range | ( | struct target_ops * | target,
|  | CORE_ADDR | addr,
|  | CORE_ADDR | start,
|  | int | length
| ) |  |
| static

Definition at line 1178 of file arm-linux-nat.c.

Referenced by _initialize_arm_linux_nat().

## ◆ fetch_fpregs()

static void fetch_fpregs | ( | struct regcache * | regcache | ) |
| 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().

## ◆ fetch_regs()

static void fetch_regs | ( | struct regcache * | regcache | ) |
| 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().

## ◆ fetch_vfp_regs()

static void fetch_vfp_regs | ( | struct regcache * | regcache | ) |
| 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().

## ◆ fetch_wmmx_regs()

static void fetch_wmmx_regs | ( | struct regcache * | regcache | ) |
| 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().

## ◆ fill_fpregset()

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().

## ◆ fill_gregset()

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_get_thread_area()

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.

## ◆ store_fpregs()

static void store_fpregs | ( | const struct regcache * | regcache | ) |
| 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().

## ◆ store_regs()

static void store_regs | ( | const struct regcache * | regcache | ) |
| 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().

## ◆ store_vfp_regs()

static void store_vfp_regs | ( | const struct regcache * | regcache | ) |
| 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().

## ◆ store_wmmx_regs()

static void store_wmmx_regs | ( | const struct regcache * | regcache | ) |
| 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().

## ◆ supply_fpregset()

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().

## ◆ supply_gregset()

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().

## ◆ update_registers_callback()

static int update_registers_callback | ( | struct lwp_info * | lwp,
|  | void * | arg
| ) |  |
| 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().

## Variable Documentation

## ◆ arm_apcs_32

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().

## ◆ arm_linux_process_list

struct arm_linux_process_info* arm_linux_process_list = NULL
| 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().