|
GDB (xrefs)
|
#include "defs.h"#include "regcache.h"#include "inferior.h"#include "target.h"#include "linux-nat.h"#include "auxv.h"#include "gregset.h"#include "regset.h"#include "nat/linux-ptrace.h"#include "gdbcmd.h"#include "s390-linux-tdep.h"#include "elf/common.h"#include <asm/ptrace.h>#include "nat/gdb_ptrace.h"#include <asm/types.h>#include <sys/procfs.h>#include <sys/ucontext.h>#include <elf.h>#include <algorithm>#include "inf-ptrace.h"Go to the source code of this file.
Classes | |
| struct | arch_lwp_info |
| struct | watch_area |
| struct | s390_debug_reg_state |
| struct | s390_process_info |
Macros | |
| #define | PER_BIT(n) (1UL << (63 - (n))) |
| #define | PER_EVENT_BRANCH PER_BIT (32) |
| #define | PER_EVENT_IFETCH PER_BIT (33) |
| #define | PER_EVENT_STORE PER_BIT (34) |
| #define | PER_EVENT_NULLIFICATION PER_BIT (39) |
| #define | PER_CONTROL_BRANCH_ADDRESS PER_BIT (40) |
| #define | PER_CONTROL_SUSPENSION PER_BIT (41) |
| #define | PER_CONTROL_ALTERATION PER_BIT (42) |
Typedefs | |
| typedef struct watch_area | s390_watch_area |
Functions | |
| void | supply_gregset (struct regcache *regcache, const gregset_t *regp) |
| void | fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno) |
| void | supply_fpregset (struct regcache *regcache, const fpregset_t *regp) |
| void | fill_fpregset (const struct regcache *regcache, fpregset_t *regp, int regno) |
| static int | s390_inferior_tid (void) |
| static void | fetch_regs (struct regcache *regcache, int tid) |
| static void | store_regs (const struct regcache *regcache, int tid, int regnum) |
| static void | fetch_fpregs (struct regcache *regcache, int tid) |
| static void | store_fpregs (const struct regcache *regcache, int tid, int regnum) |
| static void | fetch_regset (struct regcache *regcache, int tid, int regset_id, int regsize, const struct regset *regset) |
| static void | store_regset (struct regcache *regcache, int tid, int regset_id, int regsize, const struct regset *regset) |
| static int | check_regset (int tid, int regset, int regsize) |
| static void | s390_linux_fetch_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regnum) |
| static void | s390_linux_store_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regnum) |
| DEF_VEC_O (s390_watch_area) | |
| static struct s390_process_info * | s390_find_process_pid (pid_t pid) |
| static struct s390_process_info * | s390_add_process (pid_t pid) |
| static struct s390_process_info * | s390_process_info_get (pid_t pid) |
| static struct s390_debug_reg_state * | s390_get_debug_reg_state (pid_t pid) |
| static void | s390_forget_process (pid_t pid) |
| static void | s390_linux_new_fork (struct lwp_info *parent, pid_t child_pid) |
| static void | s390_show_debug_regs (int tid, const char *where) |
| static int | s390_stopped_by_watchpoint (struct target_ops *ops) |
| static void | s390_prepare_to_resume (struct lwp_info *lp) |
| static void | s390_mark_per_info_changed (struct lwp_info *lp) |
| static void | s390_new_thread (struct lwp_info *lp) |
| static void | s390_delete_thread (struct arch_lwp_info *arch_lwp) |
| static int | s390_refresh_per_info_cb (struct lwp_info *lp, void *arg) |
| static int | s390_refresh_per_info (void) |
| static int | s390_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond) |
| static int | s390_remove_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond) |
| static int | s390_can_use_hw_breakpoint (struct target_ops *self, enum bptype type, int cnt, int othertype) |
| static int | s390_insert_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt) |
| static int | s390_remove_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt) |
| static int | s390_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR addr, int cnt) |
| static int | s390_target_wordsize (void) |
| static int | s390_auxv_parse (struct target_ops *ops, gdb_byte **readptr, gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp) |
| static const struct target_desc * | s390_read_description (struct target_ops *ops) |
| void | _initialize_s390_nat (void) |
Variables | |
| static int | have_regset_last_break = 0 |
| static int | have_regset_system_call = 0 |
| static int | have_regset_tdb = 0 |
| static int | have_regset_vxrs = 0 |
| static int | have_regset_gs = 0 |
| static struct s390_process_info * | s390_process_list = NULL |
| #define PER_BIT | ( | n | ) | (1UL << (63 - (n))) |
Definition at line 101 of file s390-linux-nat.c.
| #define PER_CONTROL_ALTERATION PER_BIT (42) |
Definition at line 108 of file s390-linux-nat.c.
Referenced by s390_prepare_to_resume().
| #define PER_CONTROL_BRANCH_ADDRESS PER_BIT (40) |
Definition at line 106 of file s390-linux-nat.c.
Referenced by s390_prepare_to_resume().
| #define PER_CONTROL_SUSPENSION PER_BIT (41) |
Definition at line 107 of file s390-linux-nat.c.
| #define PER_EVENT_BRANCH PER_BIT (32) |
Definition at line 102 of file s390-linux-nat.c.
Referenced by s390_prepare_to_resume().
| #define PER_EVENT_IFETCH PER_BIT (33) |
Definition at line 103 of file s390-linux-nat.c.
Referenced by s390_prepare_to_resume().
| #define PER_EVENT_NULLIFICATION PER_BIT (39) |
Definition at line 105 of file s390-linux-nat.c.
Referenced by s390_prepare_to_resume().
| #define PER_EVENT_STORE PER_BIT (34) |
Definition at line 104 of file s390-linux-nat.c.
Referenced by s390_prepare_to_resume().
| typedef struct watch_area s390_watch_area |
| void _initialize_s390_nat | ( | void | ) |
Definition at line 1033 of file s390-linux-nat.c.
References _, add_setshow_boolean_cmd(), class_maintenance, 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(), maintenance_set_cmdlist, maintenance_show_cmdlist, s390_auxv_parse(), s390_can_use_hw_breakpoint(), s390_delete_thread(), s390_forget_process(), s390_insert_hw_breakpoint(), s390_insert_watchpoint(), s390_linux_fetch_inferior_registers(), s390_linux_new_fork(), s390_linux_store_inferior_registers(), s390_new_thread(), s390_prepare_to_resume(), s390_read_description(), s390_region_ok_for_hw_watchpoint(), s390_remove_hw_breakpoint(), s390_remove_watchpoint(), s390_stopped_by_watchpoint(), show_debug_regs, target_ops::to_auxv_parse, target_ops::to_can_use_hw_breakpoint, target_ops::to_fetch_registers, target_ops::to_have_continuable_watchpoint, 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, and target_ops::to_store_registers.
|
static |
Definition at line 355 of file s390-linux-nat.c.
References ptrace(), PTRACE_GETREGSET, and selftests::ptid::tid.
Referenced by s390_read_description().
| DEF_VEC_O | ( | s390_watch_area | ) |
|
static |
Definition at line 271 of file s390-linux-nat.c.
References _, perror_with_name(), ptrace(), supply_fpregset(), and selftests::ptid::tid.
Referenced by s390_linux_fetch_inferior_registers().
|
static |
Definition at line 234 of file s390-linux-nat.c.
References _, perror_with_name(), ptrace(), supply_gregset(), and selftests::ptid::tid.
Referenced by s390_linux_fetch_inferior_registers().
|
static |
Definition at line 310 of file s390-linux-nat.c.
References _, perror_with_name(), ptrace(), PTRACE_GETREGSET, regcache_supply_regset(), and selftests::ptid::tid.
Referenced by s390_linux_fetch_inferior_registers().
| void fill_fpregset | ( | const struct regcache * | regcache, |
| fpregset_t * | regp, | ||
| int | regno | ||
| ) |
Definition at line 213 of file s390-linux-nat.c.
References regcache_collect_regset(), and s390_fpregset.
Referenced by store_fpregs().
Definition at line 153 of file s390-linux-nat.c.
References regcache::arch(), gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_ptr_bit(), regcache_collect_regset(), regcache_raw_collect(), s390_gregset, S390_PSWA_REGNUM, S390_PSWM_REGNUM, and store_unsigned_integer().
Referenced by store_regs().
|
static |
Definition at line 512 of file s390-linux-nat.c.
References proc::next, pid, s390_process_list, and XCNEW.
Referenced by s390_process_info_get().
|
static |
Definition at line 949 of file s390-linux-nat.c.
References extract_unsigned_integer(), gdbarch_byte_order(), s390_target_wordsize(), and target_gdbarch().
Referenced by _initialize_s390_nat().
|
static |
Definition at line 868 of file s390-linux-nat.c.
References bp_hardware_breakpoint, and bp_hardware_watchpoint.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 795 of file s390-linux-nat.c.
References xfree().
Referenced by _initialize_s390_nat().
|
static |
Definition at line 497 of file s390-linux-nat.c.
References proc::next, pid, and s390_process_list.
Referenced by s390_process_info_get().
|
static |
Definition at line 550 of file s390-linux-nat.c.
References proc::next, pid, s390_process_list, proc::state, VEC_free, and xfree().
Referenced by _initialize_s390_nat().
|
static |
Definition at line 541 of file s390-linux-nat.c.
References pid, s390_process_info_get(), and s390_process_info::state.
Referenced by s390_insert_hw_breakpoint(), s390_insert_watchpoint(), s390_linux_new_fork(), s390_prepare_to_resume(), s390_remove_hw_breakpoint(), s390_remove_watchpoint(), and s390_stopped_by_watchpoint().
|
static |
Definition at line 221 of file s390-linux-nat.c.
References inferior_ptid, ptid_get_lwp(), ptid_get_pid(), and selftests::ptid::tid.
Referenced by s390_read_description(), s390_stopped_by_watchpoint(), and s390_target_wordsize().
|
static |
Definition at line 879 of file s390-linux-nat.c.
References s390_debug_reg_state::break_areas, watch_area::hi_addr, inferior_ptid, watch_area::lo_addr, bp_target_info::placed_address, ptid_get_pid(), bp_target_info::reqstd_address, s390_get_debug_reg_state(), s390_refresh_per_info(), and VEC_safe_push.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 824 of file s390-linux-nat.c.
References watch_area::hi_addr, inferior_ptid, watch_area::lo_addr, ptid_get_pid(), s390_get_debug_reg_state(), s390_refresh_per_info(), VEC_safe_push, and s390_debug_reg_state::watch_areas.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 372 of file s390-linux-nat.c.
References regcache::arch(), fetch_fpregs(), fetch_regs(), fetch_regset(), gdbarch_ptr_bit(), get_ptrace_pid(), have_regset_gs, have_regset_last_break, have_regset_system_call, have_regset_tdb, have_regset_vxrs, regcache_get_ptid(), regnum, S390_BC_GSD_REGNUM, S390_BC_GSEPLA_REGNUM, s390_gs_regset, s390_gsbc_regset, S390_GSD_REGNUM, S390_GSEPLA_REGNUM, S390_IS_FPREGSET_REGNUM, S390_IS_GREGSET_REGNUM, S390_IS_TDBREGSET_REGNUM, S390_LAST_BREAK_REGNUM, s390_last_break_regset, s390_sizeof_tdbregset, S390_SYSTEM_CALL_REGNUM, s390_system_call_regset, s390_tdb_regset, S390_V0_LOWER_REGNUM, S390_V15_LOWER_REGNUM, S390_V16_REGNUM, S390_V31_REGNUM, s390_vxrs_high_regset, s390_vxrs_low_regset, s390x_last_break_regset, and selftests::ptid::tid.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 576 of file s390-linux-nat.c.
References s390_debug_reg_state::break_areas, lwp_arch_private_info(), lwp_info::ptid, ptid_get_pid(), s390_get_debug_reg_state(), VEC_copy, and s390_debug_reg_state::watch_areas.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 427 of file s390-linux-nat.c.
References get_ptrace_pid(), have_regset_system_call, have_regset_vxrs, regcache_get_ptid(), regnum, S390_IS_FPREGSET_REGNUM, S390_IS_GREGSET_REGNUM, S390_SYSTEM_CALL_REGNUM, s390_system_call_regset, S390_V0_LOWER_REGNUM, S390_V15_LOWER_REGNUM, S390_V16_REGNUM, S390_V31_REGNUM, s390_vxrs_high_regset, s390_vxrs_low_regset, store_fpregs(), store_regs(), store_regset(), and selftests::ptid::tid.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 776 of file s390-linux-nat.c.
References lwp_arch_private_info(), lwp_set_arch_private_info(), arch_lwp_info::per_info_changed, and XCNEW.
Referenced by s390_new_thread(), and s390_refresh_per_info_cb().
|
static |
Definition at line 787 of file s390-linux-nat.c.
References s390_mark_per_info_changed().
Referenced by _initialize_s390_nat().
|
static |
Definition at line 670 of file s390-linux-nat.c.
References _, s390_debug_reg_state::break_areas, watch_area::hi_addr, watch_area::lo_addr, lwp_arch_private_info(), lwp_is_stepping(), memset(), PER_CONTROL_ALTERATION, PER_CONTROL_BRANCH_ADDRESS, PER_EVENT_BRANCH, PER_EVENT_IFETCH, PER_EVENT_NULLIFICATION, PER_EVENT_STORE, arch_lwp_info::per_info_changed, perror_with_name(), pid, ptid_get_lwp(), ptid_get_pid(), ptid_of_lwp(), ptrace(), s390_get_debug_reg_state(), s390_show_debug_regs(), show_debug_regs, selftests::ptid::tid, VEC_empty, VEC_iterate, and s390_debug_reg_state::watch_areas.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 527 of file s390-linux-nat.c.
References pid, s390_add_process(), and s390_find_process_pid().
Referenced by s390_get_debug_reg_state().
|
static |
Definition at line 972 of file s390-linux-nat.c.
References check_regset(), current_target, have_regset_gs, have_regset_last_break, have_regset_system_call, have_regset_tdb, have_regset_vxrs, HWCAP_S390_GS, HWCAP_S390_HIGH_GPRS, HWCAP_S390_TE, HWCAP_S390_VX, s390_inferior_tid(), s390_sizeof_tdbregset, s390_target_wordsize(), target_auxv_search(), tdesc_s390_gs_linux64, tdesc_s390_linux32, tdesc_s390_linux32v1, tdesc_s390_linux32v2, tdesc_s390_linux64, tdesc_s390_linux64v1, tdesc_s390_linux64v2, tdesc_s390_te_linux64, tdesc_s390_tevx_linux64, tdesc_s390_vx_linux64, tdesc_s390x_gs_linux64, tdesc_s390x_linux64, tdesc_s390x_linux64v1, tdesc_s390x_linux64v2, tdesc_s390x_te_linux64, tdesc_s390x_tevx_linux64, tdesc_s390x_vx_linux64, and selftests::ptid::tid.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 815 of file s390-linux-nat.c.
References current_lwp_ptid(), iterate_over_lwps(), pid_to_ptid(), ptid_get_pid(), and s390_refresh_per_info_cb().
Referenced by s390_insert_hw_breakpoint(), s390_insert_watchpoint(), s390_remove_hw_breakpoint(), and s390_remove_watchpoint().
|
static |
Definition at line 803 of file s390-linux-nat.c.
References linux_stop_lwp(), lwp_is_stopped(), and s390_mark_per_info_changed().
Referenced by s390_refresh_per_info().
|
static |
Definition at line 923 of file s390-linux-nat.c.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 897 of file s390-linux-nat.c.
References s390_debug_reg_state::break_areas, fprintf_unfiltered(), gdb_stderr, inferior_ptid, watch_area::lo_addr, bp_target_info::placed_address, ptid_get_pid(), s390_get_debug_reg_state(), s390_refresh_per_info(), VEC_iterate, and VEC_unordered_remove.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 840 of file s390-linux-nat.c.
References fprintf_unfiltered(), gdb_stderr, watch_area::hi_addr, inferior_ptid, watch_area::lo_addr, ptid_get_pid(), s390_get_debug_reg_state(), s390_refresh_per_info(), VEC_iterate, VEC_unordered_remove, and s390_debug_reg_state::watch_areas.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 603 of file s390-linux-nat.c.
References _, debug_printf(), perror_with_name(), ptrace(), and selftests::ptid::tid.
Referenced by s390_prepare_to_resume(), and s390_stopped_by_watchpoint().
|
static |
Definition at line 632 of file s390-linux-nat.c.
References _, inferior_ptid, memset(), perror_with_name(), ptid_get_pid(), ptrace(), s390_get_debug_reg_state(), s390_inferior_tid(), s390_show_debug_regs(), show_debug_regs, VEC_empty, and s390_debug_reg_state::watch_areas.
Referenced by _initialize_s390_nat().
|
static |
Definition at line 930 of file s390-linux-nat.c.
References gdb.printer.bound_registers::long, ptrace(), s390_inferior_tid(), and wordsize.
Referenced by s390_auxv_parse(), and s390_read_description().
|
static |
Definition at line 288 of file s390-linux-nat.c.
References _, fill_fpregset(), perror_with_name(), ptrace(), regnum, and selftests::ptid::tid.
Referenced by s390_linux_store_inferior_registers().
|
static |
Definition at line 251 of file s390-linux-nat.c.
References _, fill_gregset(), perror_with_name(), ptrace(), regnum, and selftests::ptid::tid.
Referenced by s390_linux_store_inferior_registers().
|
static |
Definition at line 334 of file s390-linux-nat.c.
References _, perror_with_name(), ptrace(), PTRACE_GETREGSET, PTRACE_SETREGSET, regcache_collect_regset(), and selftests::ptid::tid.
Referenced by s390_linux_store_inferior_registers().
| void supply_fpregset | ( | struct regcache * | regcache, |
| const fpregset_t * | regp | ||
| ) |
Definition at line 203 of file s390-linux-nat.c.
References regcache_supply_regset(), and s390_fpregset.
Referenced by fetch_fpregs().
Definition at line 119 of file s390-linux-nat.c.
References regcache::arch(), gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_ptr_bit(), regcache_raw_supply(), regcache_supply_regset(), s390_gregset, S390_PSWA_REGNUM, S390_PSWM_REGNUM, and store_unsigned_integer().
Referenced by fetch_regs().
|
static |
Definition at line 57 of file s390-linux-nat.c.
Referenced by s390_linux_fetch_inferior_registers(), and s390_read_description().
|
static |
Definition at line 53 of file s390-linux-nat.c.
Referenced by s390_linux_fetch_inferior_registers(), and s390_read_description().
|
static |
Definition at line 54 of file s390-linux-nat.c.
Referenced by s390_linux_fetch_inferior_registers(), s390_linux_store_inferior_registers(), and s390_read_description().
|
static |
Definition at line 55 of file s390-linux-nat.c.
Referenced by s390_linux_fetch_inferior_registers(), and s390_read_description().
|
static |
Definition at line 56 of file s390-linux-nat.c.
Referenced by s390_linux_fetch_inferior_registers(), s390_linux_store_inferior_registers(), and s390_read_description().
|
static |
Definition at line 492 of file s390-linux-nat.c.
Referenced by s390_add_process(), s390_find_process_pid(), and s390_forget_process().
1.8.14