GDB (xrefs)
|
#include "defs.h"
#include "observer.h"
#include "frame.h"
#include "inferior.h"
#include "gdbthread.h"
#include "gdbcore.h"
#include "regcache.h"
#include "target.h"
#include "linux-nat.h"
#include <sys/types.h>
#include <signal.h>
#include <sys/user.h>
#include <sys/ioctl.h>
#include "gdb_wait.h"
#include <fcntl.h>
#include <sys/procfs.h>
#include <sys/ptrace.h>
#include "gregset.h"
#include "ppc-tdep.h"
#include "ppc-linux-tdep.h"
#include "elf/common.h"
#include "auxv.h"
#include "nat/ppc-linux.h"
Go to the source code of this file.
Classes | |
struct | ppc_debug_info |
struct | ppc_hw_breakpoint |
struct | gdb_evrregset_t |
struct | hw_break_tuple |
struct | thread_points |
Typedefs | |
typedef char | gdb_vrregset_t[SIZEOF_VRREGS] |
typedef char | gdb_vsxregset_t[SIZEOF_VSXREGS] |
typedef struct thread_points * | thread_points_p |
Variables | |
int | have_ptrace_getsetvsxregs = 1 |
int | have_ptrace_getvrregs = 1 |
int | have_ptrace_getsetevrregs = 1 |
int | have_ptrace_getsetregs = 1 |
int | have_ptrace_getsetfpregs = 1 |
static long | saved_dabr_value |
static struct ppc_debug_info | hwdebug_info |
static size_t | max_slots_number = 0 |
#define PPC_BREAKPOINT_CONDITION_AND 0x1 |
Definition at line 116 of file ppc-linux-nat.c.
Referenced by calculate_dvc().
#define PPC_BREAKPOINT_CONDITION_AND_OR 0x3 |
Definition at line 119 of file ppc-linux-nat.c.
#define PPC_BREAKPOINT_CONDITION_BE | ( | n | ) | (1<<((n)+PPC_BREAKPOINT_CONDITION_BE_SHIFT)) |
Definition at line 122 of file ppc-linux-nat.c.
Referenced by calculate_dvc().
#define PPC_BREAKPOINT_CONDITION_BE_ALL 0x00ff0000 |
Definition at line 120 of file ppc-linux-nat.c.
#define PPC_BREAKPOINT_CONDITION_BE_SHIFT 16 |
Definition at line 121 of file ppc-linux-nat.c.
#define PPC_BREAKPOINT_CONDITION_EXACT 0x1 |
Definition at line 117 of file ppc-linux-nat.c.
#define PPC_BREAKPOINT_CONDITION_NONE 0x0 |
Definition at line 115 of file ppc-linux-nat.c.
Referenced by can_use_watchpoint_cond_accel(), create_watchpoint_request(), ppc_linux_insert_hw_breakpoint(), ppc_linux_insert_mask_watchpoint(), ppc_linux_remove_hw_breakpoint(), and ppc_linux_remove_mask_watchpoint().
#define PPC_BREAKPOINT_CONDITION_OR 0x2 |
Definition at line 118 of file ppc-linux-nat.c.
#define PPC_BREAKPOINT_MODE_EXACT 0x0 |
Definition at line 109 of file ppc-linux-nat.c.
Referenced by create_watchpoint_request(), ppc_linux_insert_hw_breakpoint(), and ppc_linux_remove_hw_breakpoint().
#define PPC_BREAKPOINT_MODE_MASK 0x3 |
Definition at line 112 of file ppc-linux-nat.c.
Referenced by ppc_linux_insert_mask_watchpoint(), and ppc_linux_remove_mask_watchpoint().
#define PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE 0x2 |
Definition at line 111 of file ppc-linux-nat.c.
#define PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE 0x1 |
Definition at line 110 of file ppc-linux-nat.c.
Referenced by create_watchpoint_request(), ppc_linux_insert_hw_breakpoint(), and ppc_linux_remove_hw_breakpoint().
#define PPC_BREAKPOINT_TRIGGER_EXECUTE 0x1 |
Definition at line 103 of file ppc-linux-nat.c.
Referenced by ppc_linux_insert_hw_breakpoint(), ppc_linux_remove_hw_breakpoint(), and ppc_linux_stopped_data_address().
#define PPC_BREAKPOINT_TRIGGER_READ 0x2 |
Definition at line 104 of file ppc-linux-nat.c.
Referenced by get_trigger_type().
#define PPC_BREAKPOINT_TRIGGER_RW 0x6 |
Definition at line 106 of file ppc-linux-nat.c.
#define PPC_BREAKPOINT_TRIGGER_WRITE 0x4 |
Definition at line 105 of file ppc-linux-nat.c.
Referenced by get_trigger_type().
#define PPC_DEBUG_CURRENT_VERSION 1 |
#define PPC_DEBUG_FEATURE_DATA_BP_DAWR 0x10 |
Definition at line 129 of file ppc-linux-nat.c.
Referenced by ppc_linux_region_ok_for_hw_watchpoint().
#define PPC_DEBUG_FEATURE_DATA_BP_MASK 0x8 |
Definition at line 89 of file ppc-linux-nat.c.
Referenced by ppc_linux_masked_watch_num_registers().
#define PPC_DEBUG_FEATURE_DATA_BP_RANGE 0x4 |
Definition at line 88 of file ppc-linux-nat.c.
Referenced by create_watchpoint_request(), and ppc_linux_region_ok_for_hw_watchpoint().
#define PPC_DEBUG_FEATURE_INSN_BP_MASK 0x2 |
Definition at line 87 of file ppc-linux-nat.c.
#define PPC_DEBUG_FEATURE_INSN_BP_RANGE 0x1 |
Definition at line 86 of file ppc-linux-nat.c.
Referenced by ppc_linux_ranged_break_num_registers().
#define PPC_PTRACE_DELHWDEBUG 0x87 |
Definition at line 72 of file ppc-linux-nat.c.
Referenced by hwdebug_remove_point(), and ppc_linux_new_thread().
#define PPC_PTRACE_GETHWDBGINFO 0x89 |
Definition at line 70 of file ppc-linux-nat.c.
Referenced by VEC().
#define PPC_PTRACE_SETHWDEBUG 0x88 |
Definition at line 71 of file ppc-linux-nat.c.
Referenced by hwdebug_insert_point().
#define PTRACE_GET_DEBUGREG 25 |
Definition at line 52 of file ppc-linux-nat.c.
#define PTRACE_GETFPREGS 14 |
Definition at line 141 of file ppc-linux-nat.c.
Referenced by amd64_linux_fetch_inferior_registers(), amd64_linux_store_inferior_registers(), fetch_all_fp_regs(), fetch_fpregs(), mips64_linux_regsets_fetch_registers(), mips64_linux_regsets_store_registers(), store_all_fp_regs(), and store_fpregs().
#define PTRACE_GETREGS 12 |
Definition at line 135 of file ppc-linux-nat.c.
Referenced by amd64_linux_fetch_inferior_registers(), amd64_linux_store_inferior_registers(), fetch_all_gp_regs(), fetch_gregs(), fetch_inferior_registers(), fetch_register(), fetch_regs(), mips64_linux_regsets_fetch_registers(), mips64_linux_regsets_store_registers(), store_all_gp_regs(), store_gregs(), store_inferior_registers(), store_register(), and store_regs().
#define PTRACE_GETSIGINFO 0x4202 |
Definition at line 58 of file ppc-linux-nat.c.
#define PTRACE_SET_DEBUGREG 26 |
Definition at line 55 of file ppc-linux-nat.c.
Referenced by ppc_linux_can_use_hw_breakpoint(), ppc_linux_insert_watchpoint(), ppc_linux_new_thread(), and ppc_linux_remove_watchpoint().
#define PTRACE_SETFPREGS 15 |
Definition at line 144 of file ppc-linux-nat.c.
Referenced by amd64_linux_store_inferior_registers(), mips64_linux_regsets_store_registers(), store_all_fp_regs(), store_fpregister(), and store_fpregs().
#define PTRACE_SETREGS 13 |
Definition at line 138 of file ppc-linux-nat.c.
Referenced by amd64_linux_store_inferior_registers(), mips64_linux_regsets_store_registers(), store_all_gp_regs(), store_gregs(), store_inferior_registers(), store_register(), and store_regs().
#define SIZEOF_VRREGS 33*16+4 |
Definition at line 174 of file ppc-linux-nat.c.
#define SIZEOF_VSXREGS 32*8 |
Definition at line 210 of file ppc-linux-nat.c.
typedef char gdb_vrregset_t[SIZEOF_VRREGS] |
Definition at line 176 of file ppc-linux-nat.c.
typedef char gdb_vsxregset_t[SIZEOF_VSXREGS] |
Definition at line 212 of file ppc-linux-nat.c.
typedef struct thread_points * thread_points_p |
void _initialize_ppc_linux_nat | ( | void | ) |
Definition at line 2487 of file ppc-linux-nat.c.
References linux_nat_add_target(), linux_nat_set_new_thread(), linux_target(), observer_attach_thread_exit(), ppc_linux_auxv_parse(), ppc_linux_can_accel_watchpoint_condition(), ppc_linux_can_use_hw_breakpoint(), ppc_linux_fetch_inferior_registers(), ppc_linux_insert_hw_breakpoint(), ppc_linux_insert_mask_watchpoint(), ppc_linux_insert_watchpoint(), ppc_linux_masked_watch_num_registers(), ppc_linux_new_thread(), ppc_linux_ranged_break_num_registers(), ppc_linux_read_description(), ppc_linux_region_ok_for_hw_watchpoint(), ppc_linux_remove_hw_breakpoint(), ppc_linux_remove_mask_watchpoint(), ppc_linux_remove_watchpoint(), ppc_linux_stopped_by_watchpoint(), ppc_linux_stopped_data_address(), ppc_linux_store_inferior_registers(), ppc_linux_thread_exit(), ppc_linux_watchpoint_addr_within_range(), target_ops::to_auxv_parse, target_ops::to_can_accel_watchpoint_condition, target_ops::to_can_use_hw_breakpoint, target_ops::to_fetch_registers, target_ops::to_insert_hw_breakpoint, target_ops::to_insert_mask_watchpoint, target_ops::to_insert_watchpoint, target_ops::to_masked_watch_num_registers, target_ops::to_ranged_break_num_registers, target_ops::to_read_description, target_ops::to_region_ok_for_hw_watchpoint, target_ops::to_remove_hw_breakpoint, target_ops::to_remove_mask_watchpoint, 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 1811 of file ppc-linux-nat.c.
References hwdebug_info, len, PPC_BREAKPOINT_CONDITION_AND, PPC_BREAKPOINT_CONDITION_BE, and ppc_debug_info::sizeof_condition.
Referenced by create_watchpoint_request().
|
static |
Definition at line 1774 of file ppc-linux-nat.c.
References ppc_hw_breakpoint::condition_mode, hw_break_tuple::hw_break, thread_points::hw_breaks, hwdebug_find_thread_points_by_tid(), hwdebug_info, inferior_ptid, max_slots_number, ppc_debug_info::num_condition_regs, PPC_BREAKPOINT_CONDITION_NONE, ptid_get_lwp(), and thread_points::tid.
Referenced by create_watchpoint_request().
|
static |
Definition at line 1901 of file ppc-linux-nat.c.
References check_typedef(), expression::elts, fetch_subexp_value(), free_value_chain(), lval_memory, num_memory_accesses(), exp_element::opcode, TYPE_LENGTH, value_address(), value_as_long(), VALUE_LVAL, and value_type().
Referenced by create_watchpoint_request(), and ppc_linux_can_accel_watchpoint_condition().
|
static |
Definition at line 1986 of file ppc-linux-nat.c.
References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, calculate_dvc(), can_use_watchpoint_cond_accel(), check_condition(), ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, ppc_debug_info::features, get_trigger_type(), hwdebug_info, ppc_debug_info::num_condition_regs, PPC_BREAKPOINT_CONDITION_NONE, PPC_BREAKPOINT_MODE_EXACT, PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE, PPC_DEBUG_CURRENT_VERSION, PPC_DEBUG_FEATURE_DATA_BP_RANGE, ppc_hw_breakpoint::trigger_type, and ppc_hw_breakpoint::version.
Referenced by ppc_linux_insert_watchpoint(), and ppc_linux_remove_watchpoint().
DEF_VEC_P | ( | thread_points_p | ) |
Definition at line 722 of file ppc-linux-nat.c.
References _, have_ptrace_getsetfpregs, perror_with_name(), ptrace(), PTRACE_GETFPREGS, and supply_fpregset().
Referenced by fetch_fp_regs().
Definition at line 668 of file ppc-linux-nat.c.
References _, gdbarch_tdep(), get_regcache_arch(), gdbarch_tdep::gregset, have_ptrace_getsetregs, perror_with_name(), ptrace(), PTRACE_GETREGS, and supply_gregset().
Referenced by fetch_gp_regs().
Definition at line 385 of file ppc-linux-nat.c.
References _, gdbarch_tdep(), get_regcache_arch(), have_ptrace_getvrregs, offset, perror_with_name(), gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, ptrace(), PTRACE_GETVRREGS, regcache_raw_supply(), register_size(), and gdbarch_tdep::regs.
Referenced by fetch_register().
Definition at line 641 of file ppc-linux-nat.c.
References _, have_ptrace_getvrregs, perror_with_name(), ptrace(), PTRACE_GETVRREGS, gdbarch_tdep::regs, and supply_vrregset().
Referenced by fetch_ppc_registers().
Definition at line 748 of file ppc-linux-nat.c.
References fetch_all_fp_regs(), fetch_register(), gdbarch_tdep(), get_regcache_arch(), have_ptrace_getsetfpregs, gdbarch_tdep::ppc_fp0_regnum, and ppc_num_fprs.
Referenced by fetch_ppc_registers().
Definition at line 696 of file ppc-linux-nat.c.
References fetch_all_gp_regs(), fetch_register(), gdbarch_tdep(), get_regcache_arch(), have_ptrace_getsetregs, gdbarch_tdep::ppc_gp0_regnum, and ppc_num_gprs.
Referenced by fetch_ppc_registers().
Definition at line 766 of file ppc-linux-nat.c.
References fetch_altivec_registers(), fetch_fp_regs(), fetch_gp_regs(), fetch_register(), fetch_spe_register(), fetch_vsx_registers(), gdbarch_pc_regnum(), gdbarch_tdep(), get_regcache_arch(), have_ptrace_getsetvsxregs, have_ptrace_getvrregs, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_fpscr_regnum, ppc_linux_trap_reg_p(), gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, PPC_ORIG_R3_REGNUM, gdbarch_tdep::ppc_ps_regnum, PPC_TRAP_REGNUM, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, gdbarch_tdep::ppc_vsr0_upper_regnum, and gdbarch_tdep::ppc_xer_regnum.
Referenced by ppc_linux_fetch_inferior_registers().
Definition at line 491 of file ppc-linux-nat.c.
References _, altivec_register_p(), fetch_altivec_register(), fetch_spe_register(), fetch_vsx_register(), gdbarch_byte_order(), gdbarch_register_name(), gdbarch_tdep(), get_regcache_arch(), have_ptrace_getsetvsxregs, have_ptrace_getvrregs, internal_error(), gdb.printing::long, MAX_REGISTER_SIZE, offset, perror_with_name(), ppc_register_u_addr(), ptrace(), PTRACE_TYPE_ARG3, regcache_raw_supply(), register_size(), spe_register_p(), vsx_register_p(), and xsnprintf().
Referenced by fetch_fp_regs(), fetch_gp_regs(), fetch_ppc_registers(), and ppc_linux_fetch_inferior_registers().
Definition at line 452 of file ppc-linux-nat.c.
References gdb_evrregset_t::acc, gdb_evrregset_t::evr, gdb_assert, gdbarch_tdep(), get_regcache_arch(), get_spe_registers(), gdbarch_tdep::ppc_acc_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, ppc_num_gprs, gdbarch_tdep::ppc_spefscr_regnum, regcache_raw_supply(), register_size(), and gdb_evrregset_t::spefscr.
Referenced by fetch_ppc_registers(), and fetch_register().
Definition at line 357 of file ppc-linux-nat.c.
References _, gdbarch_tdep(), get_regcache_arch(), have_ptrace_getsetvsxregs, perror_with_name(), gdbarch_tdep::ppc_vsr0_upper_regnum, ptrace(), PTRACE_GETVSXREGS, regcache_raw_supply(), register_size(), and gdbarch_tdep::regs.
Referenced by fetch_register().
Definition at line 622 of file ppc-linux-nat.c.
References _, have_ptrace_getsetvsxregs, perror_with_name(), ptrace(), PTRACE_GETVSXREGS, gdbarch_tdep::regs, and supply_vsxregset().
Referenced by fetch_ppc_registers().
void fill_fpregset | ( | const struct regcache * | regcache, |
gdb_fpregset_t * | fpregsetp, | ||
int | regno | ||
) |
Definition at line 2343 of file ppc-linux-nat.c.
References ppc_collect_fpregset(), and ppc_linux_fpregset().
Referenced by store_all_fp_regs().
void fill_gregset | ( | const struct regcache * | regcache, |
gdb_gregset_t * | gregsetp, | ||
int | regno | ||
) |
Definition at line 2323 of file ppc-linux-nat.c.
References ppc_collect_gregset(), and ppc_linux_gregset().
Referenced by store_all_gp_regs().
|
static |
Definition at line 1067 of file ppc-linux-nat.c.
References gdbarch_tdep(), get_regcache_arch(), offset, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, regcache_raw_collect(), and register_size().
Referenced by store_altivec_registers().
|
static |
Definition at line 1054 of file ppc-linux-nat.c.
References gdbarch_tdep(), get_regcache_arch(), ppc_num_vshrs, gdbarch_tdep::ppc_vsr0_upper_regnum, regcache_raw_collect(), and register_size().
Referenced by store_vsx_registers().
|
static |
Definition at line 426 of file ppc-linux-nat.c.
References _, have_ptrace_getsetevrregs, perror_with_name(), ptrace(), and PTRACE_GETEVRREGS.
Referenced by fetch_spe_register(), and store_spe_register().
Definition at line 1702 of file ppc-linux-nat.c.
References hw_read, hw_write, PPC_BREAKPOINT_TRIGGER_READ, and PPC_BREAKPOINT_TRIGGER_WRITE.
Referenced by create_watchpoint_request(), ppc_linux_insert_mask_watchpoint(), and ppc_linux_remove_mask_watchpoint().
|
static |
Definition at line 1516 of file ppc-linux-nat.c.
References thread_points::hw_breaks, max_slots_number, thread_points::tid, VEC_iterate, VEC_safe_push, xmalloc(), and xzalloc().
Referenced by can_use_watchpoint_cond_accel(), hwdebug_insert_point(), hwdebug_remove_point(), and ppc_linux_stopped_data_address().
|
static |
Definition at line 1545 of file ppc-linux-nat.c.
References _, discard_cleanups(), gdb_assert, hw_break_tuple::hw_break, thread_points::hw_breaks, hwdebug_find_thread_points_by_tid(), make_cleanup(), max_slots_number, perror_with_name(), PPC_PTRACE_SETHWDEBUG, ptrace(), hw_break_tuple::slot, xfree(), and xmalloc().
Referenced by ppc_linux_insert_hw_breakpoint(), ppc_linux_insert_mask_watchpoint(), ppc_linux_insert_watchpoint(), and ppc_linux_new_thread().
|
static |
Definition at line 1501 of file ppc-linux-nat.c.
References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, and ppc_hw_breakpoint::trigger_type.
Referenced by hwdebug_remove_point().
|
static |
Definition at line 1585 of file ppc-linux-nat.c.
References _, gdb_assert, hw_break_tuple::hw_break, thread_points::hw_breaks, hwdebug_find_thread_points_by_tid(), hwdebug_point_cmp(), max_slots_number, perror_with_name(), PPC_PTRACE_DELHWDEBUG, ptrace(), and xfree().
Referenced by ppc_linux_remove_hw_breakpoint(), ppc_linux_remove_mask_watchpoint(), and ppc_linux_remove_watchpoint().
Definition at line 1853 of file ppc-linux-nat.c.
References deprecated_value_modifiable(), lval_memory, not_lval, value_lazy(), VALUE_LVAL, and value_next().
Referenced by check_condition().
|
static |
Definition at line 2376 of file ppc-linux-nat.c.
References extract_unsigned_integer(), gdbarch_byte_order(), ppc_linux_target_wordsize(), and target_gdbarch().
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 1969 of file ppc-linux-nat.c.
References check_condition(), hwdebug_info, and ppc_debug_info::num_condition_regs.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 1393 of file ppc-linux-nat.c.
References bp_access_watchpoint, bp_hardware_breakpoint, bp_hardware_watchpoint, bp_read_watchpoint, bp_watchpoint, hwdebug_info, inferior_ptid, ppc_debug_info::num_data_bps, ppc_debug_info::num_instruction_bps, ptid_get_lwp(), ptid_get_pid(), ptrace(), and PTRACE_SET_DEBUGREG.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 809 of file ppc-linux-nat.c.
References fetch_ppc_registers(), fetch_register(), inferior_ptid, ptid_get_lwp(), and ptid_get_pid().
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 1303 of file ppc-linux-nat.c.
References current_target, and target_auxv_search().
Referenced by ppc_linux_insert_watchpoint(), ppc_linux_read_description(), ppc_linux_region_ok_for_hw_watchpoint(), and ppc_linux_watchpoint_addr_within_range().
|
static |
Definition at line 1628 of file ppc-linux-nat.c.
References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, ALL_LWPS, ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, hwdebug_insert_point(), bp_target_info::length, bp_target_info::placed_address, PPC_BREAKPOINT_CONDITION_NONE, PPC_BREAKPOINT_MODE_EXACT, PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE, PPC_BREAKPOINT_TRIGGER_EXECUTE, PPC_DEBUG_CURRENT_VERSION, lwp_info::ptid, ptid_get_lwp(), bp_target_info::reqstd_address, ppc_hw_breakpoint::trigger_type, and ppc_hw_breakpoint::version.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 1722 of file ppc-linux-nat.c.
References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, ALL_LWPS, ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, gdb_assert, get_trigger_type(), hwdebug_insert_point(), PPC_BREAKPOINT_CONDITION_NONE, PPC_BREAKPOINT_MODE_MASK, PPC_DEBUG_CURRENT_VERSION, lwp_info::ptid, ptid_get_lwp(), ppc_hw_breakpoint::trigger_type, and ppc_hw_breakpoint::version.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 2032 of file ppc-linux-nat.c.
References ALL_LWPS, create_watchpoint_request(), hw_access, hw_read, hw_write, hwdebug_insert_point(), PPC_FEATURE_BOOKE, ppc_linux_get_hwcap(), lwp_info::ptid, ptid_get_lwp(), ptrace(), PTRACE_SET_DEBUGREG, and saved_dabr_value.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 2274 of file ppc-linux-nat.c.
References _, ppc_debug_info::features, hwdebug_info, PPC_DEBUG_FEATURE_DATA_BP_MASK, and warning().
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 2134 of file ppc-linux-nat.c.
References hw_break_tuple::hw_break, thread_points::hw_breaks, hwdebug_insert_point(), max_slots_number, PPC_PTRACE_DELHWDEBUG, lwp_info::ptid, ptid_get_lwp(), ptrace(), PTRACE_SET_DEBUGREG, saved_dabr_value, hw_break_tuple::slot, VEC_empty, and VEC_last.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 1617 of file ppc-linux-nat.c.
References ppc_debug_info::features, hwdebug_info, and PPC_DEBUG_FEATURE_INSN_BP_RANGE.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 2399 of file ppc-linux-nat.c.
References _, have_ptrace_getsetevrregs, have_ptrace_getsetvsxregs, have_ptrace_getvrregs, inferior_ptid, perror_with_name(), PPC_FEATURE_CELL, PPC_FEATURE_HAS_DFP, ppc_linux_get_hwcap(), ppc_linux_target_wordsize(), ptid_get_lwp(), ptid_get_pid(), ptrace(), PTRACE_GETEVRREGS, PTRACE_GETVRREGS, PTRACE_GETVSXREGS, tdesc_powerpc_32l, tdesc_powerpc_64l, tdesc_powerpc_altivec32l, tdesc_powerpc_altivec64l, tdesc_powerpc_cell32l, tdesc_powerpc_cell64l, tdesc_powerpc_e500l, tdesc_powerpc_isa205_32l, tdesc_powerpc_isa205_64l, tdesc_powerpc_isa205_altivec32l, tdesc_powerpc_isa205_altivec64l, tdesc_powerpc_isa205_vsx32l, tdesc_powerpc_isa205_vsx64l, tdesc_powerpc_vsx32l, and tdesc_powerpc_vsx64l.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 1451 of file ppc-linux-nat.c.
References ppc_debug_info::data_bp_alignment, ppc_debug_info::features, hwdebug_info, PPC_DEBUG_FEATURE_DATA_BP_DAWR, PPC_DEBUG_FEATURE_DATA_BP_RANGE, PPC_FEATURE_BOOKE, and ppc_linux_get_hwcap().
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 1665 of file ppc-linux-nat.c.
References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, ALL_LWPS, ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, hwdebug_remove_point(), if(), bp_target_info::length, bp_target_info::placed_address, PPC_BREAKPOINT_CONDITION_NONE, PPC_BREAKPOINT_MODE_EXACT, PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE, PPC_BREAKPOINT_TRIGGER_EXECUTE, PPC_DEBUG_CURRENT_VERSION, lwp_info::ptid, ptid_get_lwp(), ppc_hw_breakpoint::trigger_type, and ppc_hw_breakpoint::version.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 1750 of file ppc-linux-nat.c.
References ppc_hw_breakpoint::addr, ppc_hw_breakpoint::addr2, ppc_hw_breakpoint::addr_mode, ALL_LWPS, ppc_hw_breakpoint::condition_mode, ppc_hw_breakpoint::condition_value, gdb_assert, get_trigger_type(), hwdebug_remove_point(), PPC_BREAKPOINT_CONDITION_NONE, PPC_BREAKPOINT_MODE_MASK, PPC_DEBUG_CURRENT_VERSION, lwp_info::ptid, ptid_get_lwp(), ppc_hw_breakpoint::trigger_type, and ppc_hw_breakpoint::version.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 2101 of file ppc-linux-nat.c.
References ALL_LWPS, create_watchpoint_request(), hwdebug_remove_point(), lwp_info::ptid, ptid_get_lwp(), ptrace(), PTRACE_SET_DEBUGREG, and saved_dabr_value.
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 2244 of file ppc-linux-nat.c.
References ppc_linux_stopped_data_address().
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 2205 of file ppc-linux-nat.c.
References hw_break_tuple::hw_break, thread_points::hw_breaks, hwdebug_find_thread_points_by_tid(), inferior_ptid, linux_nat_get_siginfo(), max_slots_number, PPC_BREAKPOINT_TRIGGER_EXECUTE, ptid_get_lwp(), hw_break_tuple::slot, and ppc_hw_breakpoint::trigger_type.
Referenced by _initialize_ppc_linux_nat(), and ppc_linux_stopped_by_watchpoint().
|
static |
Definition at line 2292 of file ppc-linux-nat.c.
References inferior_ptid, ptid_get_lwp(), ptid_get_pid(), store_ppc_registers(), and store_register().
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 2353 of file ppc-linux-nat.c.
References inferior_ptid, gdb.printing::long, ptid_get_lwp(), ptid_get_pid(), ptrace(), and wordsize.
Referenced by ppc_linux_auxv_parse(), and ppc_linux_read_description().
|
static |
Definition at line 2172 of file ppc-linux-nat.c.
References thread_points::hw_breaks, max_slots_number, thread_info::ptid, ptid_get_lwp(), VEC_iterate, VEC_unordered_remove, and xfree().
Referenced by _initialize_ppc_linux_nat().
|
static |
Definition at line 2251 of file ppc-linux-nat.c.
References PPC_FEATURE_BOOKE, and ppc_linux_get_hwcap().
Referenced by _initialize_ppc_linux_nat().
Definition at line 287 of file ppc-linux-nat.c.
References gdbarch_pc_regnum(), gdbarch_tdep(), gdb.printing::long, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_fpscr_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, ppc_num_fprs, ppc_num_gprs, PPC_ORIG_R3_REGNUM, gdbarch_tdep::ppc_ps_regnum, PPC_TRAP_REGNUM, gdbarch_tdep::ppc_xer_regnum, PT_ORIG_R3, PT_TRAP, register_size(), and wordsize.
Referenced by fetch_register(), and store_register().
|
static |
Definition at line 899 of file ppc-linux-nat.c.
References _, have_ptrace_getsetevrregs, perror_with_name(), ptrace(), and PTRACE_SETEVRREGS.
Referenced by store_spe_register().
Definition at line 1208 of file ppc-linux-nat.c.
References _, fill_fpregset(), have_ptrace_getsetfpregs, perror_with_name(), ptrace(), PTRACE_GETFPREGS, and PTRACE_SETFPREGS.
Referenced by store_fp_regs().
Definition at line 1144 of file ppc-linux-nat.c.
References _, fill_gregset(), gdbarch_tdep(), get_regcache_arch(), gdbarch_tdep::gregset, have_ptrace_getsetregs, perror_with_name(), ptrace(), PTRACE_GETREGS, and PTRACE_SETREGS.
Referenced by store_gp_regs().
Definition at line 856 of file ppc-linux-nat.c.
References _, gdbarch_tdep(), get_regcache_arch(), have_ptrace_getvrregs, offset, perror_with_name(), gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, ptrace(), PTRACE_GETVRREGS, PTRACE_SETVRREGS, regcache_raw_collect(), register_size(), and gdbarch_tdep::regs.
Referenced by store_register().
Definition at line 1113 of file ppc-linux-nat.c.
References _, fill_vrregset(), have_ptrace_getvrregs, perror_with_name(), ptrace(), PTRACE_GETVRREGS, PTRACE_SETVRREGS, and gdbarch_tdep::regs.
Referenced by store_ppc_registers().
Definition at line 1244 of file ppc-linux-nat.c.
References gdbarch_tdep(), get_regcache_arch(), have_ptrace_getsetfpregs, gdbarch_tdep::ppc_fp0_regnum, ppc_num_fprs, store_all_fp_regs(), and store_register().
Referenced by store_ppc_registers().
Definition at line 1182 of file ppc-linux-nat.c.
References gdbarch_tdep(), get_regcache_arch(), have_ptrace_getsetregs, gdbarch_tdep::ppc_gp0_regnum, ppc_num_gprs, store_all_gp_regs(), and store_register().
Referenced by store_ppc_registers().
Definition at line 1262 of file ppc-linux-nat.c.
References gdbarch_pc_regnum(), gdbarch_tdep(), get_regcache_arch(), have_ptrace_getsetvsxregs, have_ptrace_getvrregs, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_fpscr_regnum, ppc_linux_trap_reg_p(), gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, PPC_ORIG_R3_REGNUM, gdbarch_tdep::ppc_ps_regnum, PPC_TRAP_REGNUM, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, gdbarch_tdep::ppc_vsr0_upper_regnum, gdbarch_tdep::ppc_xer_regnum, store_altivec_registers(), store_fp_regs(), store_gp_regs(), store_register(), store_spe_register(), and store_vsx_registers().
Referenced by ppc_linux_store_inferior_registers().
Definition at line 978 of file ppc-linux-nat.c.
References align_up(), altivec_register_p(), gdbarch_byte_order(), gdbarch_register_name(), gdbarch_tdep(), get_regcache_arch(), gdb.printing::long, MAX_REGISTER_SIZE, perror_with_name(), gdbarch_tdep::ppc_fpscr_regnum, PPC_ORIG_R3_REGNUM, ppc_register_u_addr(), PPC_TRAP_REGNUM, ptrace(), PTRACE_TYPE_ARG3, regcache_raw_collect(), register_size(), spe_register_p(), store_altivec_register(), store_spe_register(), store_vsx_register(), vsx_register_p(), and xsnprintf().
Referenced by ppc_linux_store_inferior_registers(), store_fp_regs(), store_gp_regs(), and store_ppc_registers().
Definition at line 923 of file ppc-linux-nat.c.
References gdb_evrregset_t::acc, gdb_evrregset_t::evr, gdb_assert, gdbarch_tdep(), get_regcache_arch(), get_spe_registers(), gdbarch_tdep::ppc_acc_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, ppc_num_gprs, gdbarch_tdep::ppc_spefscr_regnum, regcache_raw_collect(), register_size(), set_spe_registers(), and gdb_evrregset_t::spefscr.
Referenced by store_ppc_registers(), and store_register().
Definition at line 827 of file ppc-linux-nat.c.
References _, gdbarch_tdep(), get_regcache_arch(), have_ptrace_getsetvsxregs, perror_with_name(), gdbarch_tdep::ppc_vsr0_upper_regnum, ptrace(), PTRACE_GETVSXREGS, PTRACE_SETVSXREGS, regcache_raw_collect(), register_size(), and gdbarch_tdep::regs.
Referenced by store_register().
Definition at line 1090 of file ppc-linux-nat.c.
References _, fill_vsxregset(), have_ptrace_getsetvsxregs, perror_with_name(), ptrace(), PTRACE_GETVSXREGS, PTRACE_SETVSXREGS, and gdbarch_tdep::regs.
Referenced by store_ppc_registers().
void supply_fpregset | ( | struct regcache * | regcache, |
const gdb_fpregset_t * | fpregsetp | ||
) |
Definition at line 2334 of file ppc-linux-nat.c.
References ppc_linux_fpregset(), and ppc_supply_fpregset().
Referenced by fetch_all_fp_regs().
void supply_gregset | ( | struct regcache * | regcache, |
const gdb_gregset_t * | gregsetp | ||
) |
Definition at line 2315 of file ppc-linux-nat.c.
References ppc_linux_gregset(), and ppc_supply_gregset().
Referenced by fetch_all_gp_regs().
|
static |
Definition at line 597 of file ppc-linux-nat.c.
References gdbarch_tdep(), get_regcache_arch(), offset, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, regcache_raw_supply(), and register_size().
Referenced by fetch_altivec_registers().
|
static |
Definition at line 582 of file ppc-linux-nat.c.
References gdbarch_tdep(), get_regcache_arch(), ppc_num_vshrs, gdbarch_tdep::ppc_vsr0_upper_regnum, regcache_raw_supply(), and register_size().
Referenced by fetch_vsx_registers().
VEC | ( | thread_points_p | ) |
Definition at line 1350 of file ppc-linux-nat.c.
References ppc_debug_info::features, hwdebug_info, inferior_ptid, max_slots_number, ppc_debug_info::num_condition_regs, ppc_debug_info::num_data_bps, ppc_debug_info::num_instruction_bps, PPC_PTRACE_GETHWDBGINFO, ptid_get_lwp(), ptid_get_pid(), and ptrace().
int have_ptrace_getsetevrregs = 1 |
Definition at line 255 of file ppc-linux-nat.c.
Referenced by get_spe_registers(), ppc_linux_read_description(), and set_spe_registers().
int have_ptrace_getsetfpregs = 1 |
Definition at line 267 of file ppc-linux-nat.c.
Referenced by fetch_all_fp_regs(), fetch_fp_regs(), store_all_fp_regs(), and store_fp_regs().
int have_ptrace_getsetregs = 1 |
Definition at line 261 of file ppc-linux-nat.c.
Referenced by fetch_all_gp_regs(), fetch_gp_regs(), store_all_gp_regs(), and store_gp_regs().
int have_ptrace_getsetvsxregs = 1 |
Definition at line 243 of file ppc-linux-nat.c.
Referenced by fetch_ppc_registers(), fetch_register(), fetch_vsx_register(), fetch_vsx_registers(), ppc_linux_read_description(), store_ppc_registers(), store_vsx_register(), and store_vsx_registers().
int have_ptrace_getvrregs = 1 |
Definition at line 249 of file ppc-linux-nat.c.
Referenced by fetch_altivec_register(), fetch_altivec_registers(), fetch_ppc_registers(), fetch_register(), ppc_linux_read_description(), store_altivec_register(), store_altivec_registers(), and store_ppc_registers().
|
static |
Definition at line 1320 of file ppc-linux-nat.c.
Referenced by calculate_dvc(), can_use_watchpoint_cond_accel(), create_watchpoint_request(), ppc_linux_can_accel_watchpoint_condition(), ppc_linux_can_use_hw_breakpoint(), ppc_linux_masked_watch_num_registers(), ppc_linux_ranged_break_num_registers(), ppc_linux_region_ok_for_hw_watchpoint(), and VEC().
|
static |
Definition at line 1325 of file ppc-linux-nat.c.
Referenced by can_use_watchpoint_cond_accel(), hwdebug_find_thread_points_by_tid(), hwdebug_insert_point(), hwdebug_remove_point(), ppc_linux_new_thread(), ppc_linux_stopped_data_address(), ppc_linux_thread_exit(), and VEC().
|
static |
Definition at line 1316 of file ppc-linux-nat.c.
Referenced by ppc_linux_insert_watchpoint(), ppc_linux_new_thread(), and ppc_linux_remove_watchpoint().