GDB (xrefs)

Macros | Functions | Variables
/tmp/gdb-8.1/gdb/arm-linux-tdep.c File Reference
`#include "defs.h"`
`#include "target.h"`
`#include "value.h"`
`#include "gdbtypes.h"`
`#include "gdbcore.h"`
`#include "frame.h"`
`#include "regcache.h"`
`#include "solib-svr4.h"`
`#include "osabi.h"`
`#include "regset.h"`
`#include "trad-frame.h"`
`#include "tramp-frame.h"`
`#include "breakpoint.h"`
`#include "auxv.h"`
`#include "xml-syscall.h"`
`#include "arch/arm.h"`
`#include "arch/arm-get-next-pcs.h"`
`#include "arch/arm-linux.h"`
`#include "arm-tdep.h"`
`#include "arm-linux-tdep.h"`
`#include "linux-tdep.h"`
`#include "glibc-tdep.h"`
`#include "arch-utils.h"`
`#include "inferior.h"`
`#include "infrun.h"`
`#include "gdbthread.h"`
`#include "symfile.h"`
`#include "record-full.h"`
`#include "linux-record.h"`
`#include "cli/cli-utils.h"`
`#include "stap-probe.h"`
`#include "parser-defs.h"`
`#include "user-regs.h"`
`#include <ctype.h>`
`#include "elf/common.h"`

Go to the source code of this file.

## Macros
#define | ARM_LINUX_JB_ELEMENT_SIZE INT_REGISTER_SIZE
#define | ARM_LINUX_JB_PC_FPA 21
#define | ARM_LINUX_JB_PC_EABI 9
#define | ARM_LINUX_SIGRETURN_INSTR 0xef900077
#define | ARM_LINUX_RT_SIGRETURN_INSTR 0xef9000ad
#define | ARM_SET_R7_SIGRETURN 0xe3a07077
#define | ARM_SET_R7_RT_SIGRETURN 0xe3a070ad
#define | ARM_EABI_SYSCALL 0xef000000
#define | THUMB2_SET_R7_SIGRETURN1 0xf04f
#define | THUMB2_SET_R7_SIGRETURN2 0x0777
#define | THUMB2_SET_R7_RT_SIGRETURN1 0xf04f
#define | THUMB2_SET_R7_RT_SIGRETURN2 0x07ad
#define | THUMB2_EABI_SYSCALL 0xdf00
#define | ARM_OABI_SYSCALL_RESTART_SYSCALL 0xef900000
#define | ARM_LDR_PC_SP_12 0xe49df00c
#define | ARM_LDR_PC_SP_4 0xe49df004
#define | ARM_SIGRETURN 119
#define | ARM_RT_SIGRETURN 173
#define | ARM_LINUX_SIZEOF_GREGSET (18 * INT_REGISTER_SIZE)
#define | typeNone 0x00
#define | typeSingle 0x01
#define | typeDouble 0x02
#define | typeExtended 0x03
#define | ARM_LINUX_SIZEOF_VFP (32 * 8 + 4)

## Functions
static CORE_ADDR | arm_linux_get_next_pcs_syscall_next_pc (struct arm_get_next_pcs *self)
static void | arm_linux_sigtramp_cache (struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func, int regs_offset)
static void | arm_linux_sigreturn_init (const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
static void | arm_linux_rt_sigreturn_init (const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
static void | arm_linux_restart_syscall_init (const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
void | arm_linux_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs_buf, size_t len)
void | arm_linux_collect_gregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs_buf, size_t len)
void | supply_nwfpe_register (struct regcache *regcache, int regno, const gdb_byte *regs)
void | collect_nwfpe_register (const struct regcache *regcache, int regno, gdb_byte *regs)
void | arm_linux_supply_nwfpe (const struct regset *regset, struct regcache *regcache, int regnum, const void *regs_buf, size_t len)
void | arm_linux_collect_nwfpe (const struct regset *regset, const struct regcache *regcache, int regnum, void *regs_buf, size_t len)
static void | arm_linux_supply_vfp (const struct regset *regset, struct regcache *regcache, int regnum, const void *regs_buf, size_t len)
static void | arm_linux_collect_vfp (const struct regset *regset, const struct regcache *regcache, int regnum, void *regs_buf, size_t len)
static void | arm_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
static const struct target_desc * | arm_linux_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
static int | arm_linux_sigreturn_return_addr (struct frame_info *frame, unsigned long svc_number, CORE_ADDR *pc, int *is_thumb)
static CORE_ADDR | arm_linux_sigreturn_next_pc (struct regcache *regcache, unsigned long svc_number, int *is_thumb)
static LONGEST | arm_linux_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid)
static std::vector< CORE_ADDR > | arm_linux_software_single_step (struct regcache *regcache)
static void | arm_linux_cleanup_svc (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_closure *dsc)
static int | arm_linux_copy_svc (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_closure *dsc)
static void | cleanup_kernel_helper_return (struct gdbarch *gdbarch, struct regcache *regs, arm_displaced_step_closure *dsc)
static void | arm_catch_kernel_helper_return (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs, arm_displaced_step_closure *dsc)
static struct displaced_step_closure * | arm_linux_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
static int | arm_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
static int | arm_stap_parse_special_token (struct gdbarch *gdbarch, struct stap_parse_info *p)
static enum gdb_syscall | arm_canonicalize_syscall (int syscall)
static int | arm_all_but_pc_registers_record (struct regcache *regcache)
static int | arm_linux_syscall_record (struct regcache *regcache, unsigned long svc_number)
static CORE_ADDR | arm_linux_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
static void | arm_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
void | _initialize_arm_linux_tdep (void)

## Variables
int | arm_apcs_32
static const gdb_byte | arm_linux_arm_le_breakpoint [] = { 0x01, 0x00, 0x9f, 0xef }
static const gdb_byte | arm_linux_arm_be_breakpoint [] = { 0xef, 0x9f, 0x00, 0x01 }
static const gdb_byte | eabi_linux_arm_le_breakpoint [] = { 0xf0, 0x01, 0xf0, 0xe7 }
static const gdb_byte | eabi_linux_arm_be_breakpoint [] = { 0xe7, 0xf0, 0x01, 0xf0 }
static const gdb_byte | arm_linux_thumb_be_breakpoint [] = {0xde, 0x01}
static const gdb_byte | arm_linux_thumb_le_breakpoint [] = {0x01, 0xde}
static const gdb_byte | arm_linux_thumb2_be_breakpoint [] = { 0xf7, 0xf0, 0xa0, 0x00 }
static const gdb_byte | arm_linux_thumb2_le_breakpoint [] = { 0xf0, 0xf7, 0x00, 0xa0 }
static struct arm_get_next_pcs_ops | arm_linux_get_next_pcs_ops
static struct tramp_frame | arm_linux_sigreturn_tramp_frame
static struct tramp_frame | arm_linux_rt_sigreturn_tramp_frame
static struct tramp_frame | arm_eabi_linux_sigreturn_tramp_frame
static struct tramp_frame | arm_eabi_linux_rt_sigreturn_tramp_frame
static struct tramp_frame | thumb2_eabi_linux_sigreturn_tramp_frame
static struct tramp_frame | thumb2_eabi_linux_rt_sigreturn_tramp_frame
static struct tramp_frame | arm_linux_restart_syscall_tramp_frame
static struct tramp_frame | arm_kernel_linux_restart_syscall_tramp_frame
static const struct regset | arm_linux_gregset
static const struct regset | arm_linux_fpregset
static const struct regset | arm_linux_vfpregset
struct linux_record_tdep | arm_linux_record_tdep

## Macro Definition Documentation

## ◆ ARM_EABI_SYSCALL

#define ARM_EABI_SYSCALL 0xef000000

Definition at line 246 of file arm-linux-tdep.c.

## ◆ ARM_LDR_PC_SP_12

#define ARM_LDR_PC_SP_12 0xe49df00c

Definition at line 258 of file arm-linux-tdep.c.

## ◆ ARM_LDR_PC_SP_4

#define ARM_LDR_PC_SP_4 0xe49df004

Definition at line 259 of file arm-linux-tdep.c.

Referenced by arm_linux_restart_syscall_init().

## ◆ ARM_LINUX_JB_ELEMENT_SIZE

#define ARM_LINUX_JB_ELEMENT_SIZE INT_REGISTER_SIZE

Definition at line 106 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ ARM_LINUX_JB_PC_EABI

#define ARM_LINUX_JB_PC_EABI 9

Definition at line 108 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ ARM_LINUX_JB_PC_FPA

#define ARM_LINUX_JB_PC_FPA 21

Definition at line 107 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ ARM_LINUX_RT_SIGRETURN_INSTR

#define ARM_LINUX_RT_SIGRETURN_INSTR 0xef9000ad

Definition at line 238 of file arm-linux-tdep.c.

## ◆ ARM_LINUX_SIGRETURN_INSTR

#define ARM_LINUX_SIGRETURN_INSTR 0xef900077

Definition at line 237 of file arm-linux-tdep.c.

## ◆ ARM_LINUX_SIZEOF_GREGSET

#define ARM_LINUX_SIZEOF_GREGSET (18 * INT_REGISTER_SIZE)

Definition at line 474 of file arm-linux-tdep.c.

Referenced by arm_linux_iterate_over_regset_sections().

## ◆ ARM_LINUX_SIZEOF_VFP

#define ARM_LINUX_SIZEOF_VFP (32 * 8 + 4)

Definition at line 657 of file arm-linux-tdep.c.

Referenced by arm_linux_iterate_over_regset_sections().

## ◆ ARM_OABI_SYSCALL_RESTART_SYSCALL

#define ARM_OABI_SYSCALL_RESTART_SYSCALL 0xef900000

Definition at line 257 of file arm-linux-tdep.c.

## ◆ ARM_RT_SIGRETURN

#define ARM_RT_SIGRETURN 173

Definition at line 264 of file arm-linux-tdep.c.

Referenced by arm_linux_get_next_pcs_syscall_next_pc(), and arm_linux_sigreturn_next_pc().

## ◆ ARM_SET_R7_RT_SIGRETURN

#define ARM_SET_R7_RT_SIGRETURN 0xe3a070ad

Definition at line 245 of file arm-linux-tdep.c.

## ◆ ARM_SET_R7_SIGRETURN

#define ARM_SET_R7_SIGRETURN 0xe3a07077

Definition at line 244 of file arm-linux-tdep.c.

## ◆ ARM_SIGRETURN

#define ARM_SIGRETURN 119

Definition at line 262 of file arm-linux-tdep.c.

Referenced by arm_linux_get_next_pcs_syscall_next_pc(), and arm_linux_sigreturn_next_pc().

## ◆ THUMB2_EABI_SYSCALL

#define THUMB2_EABI_SYSCALL 0xdf00

Definition at line 253 of file arm-linux-tdep.c.

## ◆ THUMB2_SET_R7_RT_SIGRETURN1

#define THUMB2_SET_R7_RT_SIGRETURN1 0xf04f

Definition at line 251 of file arm-linux-tdep.c.

## ◆ THUMB2_SET_R7_RT_SIGRETURN2

#define THUMB2_SET_R7_RT_SIGRETURN2 0x07ad

Definition at line 252 of file arm-linux-tdep.c.

## ◆ THUMB2_SET_R7_SIGRETURN1

#define THUMB2_SET_R7_SIGRETURN1 0xf04f

Definition at line 249 of file arm-linux-tdep.c.

## ◆ THUMB2_SET_R7_SIGRETURN2

#define THUMB2_SET_R7_SIGRETURN2 0x0777

Definition at line 250 of file arm-linux-tdep.c.

## ◆ typeDouble

#define typeDouble 0x02

Definition at line 546 of file arm-linux-tdep.c.

Referenced by collect_nwfpe_register(), and supply_nwfpe_register().

## ◆ typeExtended

#define typeExtended 0x03

Definition at line 547 of file arm-linux-tdep.c.

Referenced by collect_nwfpe_register(), and supply_nwfpe_register().

## ◆ typeNone

#define typeNone 0x00

Definition at line 544 of file arm-linux-tdep.c.

## ◆ typeSingle

#define typeSingle 0x01

Definition at line 545 of file arm-linux-tdep.c.

Referenced by collect_nwfpe_register(), and supply_nwfpe_register().

## Function Documentation

## ◆ _initialize_arm_linux_tdep()

void _initialize_arm_linux_tdep | ( | void |  | ) |

Definition at line 1998 of file arm-linux-tdep.c.

References arm_linux_init_abi(), GDB_OSABI_LINUX, and gdbarch_register_osabi().

## ◆ arm_all_but_pc_registers_record()

static int arm_all_but_pc_registers_record | ( | struct regcache * | regcache | ) |
| static

Definition at line 1642 of file arm-linux-tdep.c.

References ARM_A1_REGNUM, ARM_PC_REGNUM, ARM_PS_REGNUM, and record_full_arch_list_add_reg().

Referenced by arm_linux_syscall_record().

## ◆ arm_canonicalize_syscall()

static enum gdb_syscall arm_canonicalize_syscall | ( | int | syscall | ) |
| static

Definition at line 1270 of file arm-linux-tdep.c.

References gdb_old_mmap, gdb_old_readdir, gdb_sys_accept, gdb_sys_access, gdb_sys_acct, gdb_sys_add_key, gdb_sys_adjtimex, gdb_sys_alarm, gdb_sys_bdflush, gdb_sys_bind, gdb_sys_brk, gdb_sys_capget, gdb_sys_capset, gdb_sys_chdir, gdb_sys_chmod, gdb_sys_chown, gdb_sys_chroot, gdb_sys_clock_getres, gdb_sys_clock_gettime, gdb_sys_clock_nanosleep, gdb_sys_clock_settime, gdb_sys_clone, gdb_sys_close, gdb_sys_connect, gdb_sys_creat, gdb_sys_delete_module, gdb_sys_dup, gdb_sys_dup2, gdb_sys_dup3, gdb_sys_epoll_create, gdb_sys_epoll_create1, gdb_sys_epoll_ctl, gdb_sys_epoll_pwait, gdb_sys_epoll_wait, gdb_sys_eventfd2, gdb_sys_execve, gdb_sys_exit, gdb_sys_exit_group, gdb_sys_faccessat, gdb_sys_fallocate, gdb_sys_fchdir, gdb_sys_fchmod, gdb_sys_fchmodat, gdb_sys_fchown, gdb_sys_fchown16, gdb_sys_fchownat, gdb_sys_fcntl, gdb_sys_fcntl64, gdb_sys_fdatasync, gdb_sys_fgetxattr, gdb_sys_flistxattr, gdb_sys_flock, gdb_sys_fork, gdb_sys_fremovexattr, gdb_sys_fsetxattr, gdb_sys_fstat, gdb_sys_fstat64, gdb_sys_fstatat64, gdb_sys_fstatfs, gdb_sys_fstatfs64, gdb_sys_fsync, gdb_sys_ftruncate, gdb_sys_ftruncate64, gdb_sys_futex, gdb_sys_futimesat, gdb_sys_get_mempolicy, gdb_sys_get_robust_list, gdb_sys_getcpu, gdb_sys_getcwd, gdb_sys_getdents, gdb_sys_getdents64, gdb_sys_getegid, gdb_sys_getegid16, gdb_sys_geteuid, gdb_sys_geteuid16, gdb_sys_getgid, gdb_sys_getgid16, gdb_sys_getgroups, gdb_sys_getgroups16, gdb_sys_getitimer, gdb_sys_getpeername, gdb_sys_getpgid, gdb_sys_getpgrp, gdb_sys_getpid, gdb_sys_getppid, gdb_sys_getpriority, gdb_sys_getresgid, gdb_sys_getresuid, gdb_sys_getresuid16, gdb_sys_getrlimit, gdb_sys_getrusage, gdb_sys_getsid, gdb_sys_getsockname, gdb_sys_getsockopt, gdb_sys_gettid, gdb_sys_gettimeofday, gdb_sys_getuid, gdb_sys_getuid16, gdb_sys_getxattr, gdb_sys_init_module, gdb_sys_inotify_add_watch, gdb_sys_inotify_init, gdb_sys_inotify_init1, gdb_sys_inotify_rm_watch, gdb_sys_io_cancel, gdb_sys_io_destroy, gdb_sys_io_getevents, gdb_sys_io_setup, gdb_sys_io_submit, gdb_sys_ioctl, gdb_sys_ioprio_get, gdb_sys_ioprio_set, gdb_sys_ipc, gdb_sys_kexec_load, gdb_sys_keyctl, gdb_sys_kill, gdb_sys_lchown, gdb_sys_lchown16, gdb_sys_lgetxattr, gdb_sys_link, gdb_sys_linkat, gdb_sys_listen, gdb_sys_listxattr, gdb_sys_llistxattr, gdb_sys_llseek, gdb_sys_lookup_dcookie, gdb_sys_lremovexattr, gdb_sys_lseek, gdb_sys_lsetxattr, gdb_sys_lstat, gdb_sys_lstat64, gdb_sys_madvise, gdb_sys_mbind, gdb_sys_mincore, gdb_sys_mkdir, gdb_sys_mkdirat, gdb_sys_mknod, gdb_sys_mknodat, gdb_sys_mlock, gdb_sys_mlockall, gdb_sys_mmap2, gdb_sys_mount, gdb_sys_move_pages, gdb_sys_mprotect, gdb_sys_mq_getsetattr, gdb_sys_mq_notify, gdb_sys_mq_open, gdb_sys_mq_timedreceive, gdb_sys_mq_timedsend, gdb_sys_mq_unlink, gdb_sys_mremap, gdb_sys_msgctl, gdb_sys_msgget, gdb_sys_msgrcv, gdb_sys_msgsnd, gdb_sys_msync, gdb_sys_munlock, gdb_sys_munlockall, gdb_sys_munmap, gdb_sys_nanosleep, gdb_sys_nfsservctl, gdb_sys_nice, gdb_sys_no_syscall, gdb_sys_oldumount, gdb_sys_open, gdb_sys_openat, gdb_sys_pause, gdb_sys_personality, gdb_sys_pipe, gdb_sys_pipe2, gdb_sys_pivot_root, gdb_sys_poll, gdb_sys_ppoll, gdb_sys_prctl, gdb_sys_pread64, gdb_sys_pselect6, gdb_sys_ptrace, gdb_sys_pwrite64, gdb_sys_quotactl, gdb_sys_read, gdb_sys_readahead, gdb_sys_readlink, gdb_sys_readlinkat, gdb_sys_readv, gdb_sys_reboot, gdb_sys_recv, gdb_sys_recvfrom, gdb_sys_recvmsg, gdb_sys_remap_file_pages, gdb_sys_removexattr, gdb_sys_rename, gdb_sys_renameat, gdb_sys_request_key, gdb_sys_restart_syscall, gdb_sys_rmdir, gdb_sys_rt_sigaction, gdb_sys_rt_sigpending, gdb_sys_rt_sigprocmask, gdb_sys_rt_sigqueueinfo, gdb_sys_rt_sigreturn, gdb_sys_rt_sigsuspend, gdb_sys_rt_sigtimedwait, gdb_sys_sched_get_priority_max, gdb_sys_sched_get_priority_min, gdb_sys_sched_getaffinity, gdb_sys_sched_getparam, gdb_sys_sched_getscheduler, gdb_sys_sched_rr_get_interval, gdb_sys_sched_setaffinity, gdb_sys_sched_setparam, gdb_sys_sched_setscheduler, gdb_sys_sched_yield, gdb_sys_select, gdb_sys_semctl, gdb_sys_semget, gdb_sys_semop, gdb_sys_semtimedop, gdb_sys_sendfile, gdb_sys_sendfile64, gdb_sys_sendmsg, gdb_sys_sendto, gdb_sys_set_mempolicy, gdb_sys_set_robust_list, gdb_sys_set_tid_address, gdb_sys_setdomainname, gdb_sys_setfsgid, gdb_sys_setfsgid16, gdb_sys_setfsuid, gdb_sys_setfsuid16, gdb_sys_setgid, gdb_sys_setgid16, gdb_sys_setgroups, gdb_sys_setgroups16, gdb_sys_sethostname, gdb_sys_setitimer, gdb_sys_setpgid, gdb_sys_setpriority, gdb_sys_setregid, gdb_sys_setregid16, gdb_sys_setresgid, gdb_sys_setresuid, gdb_sys_setresuid16, gdb_sys_setreuid, gdb_sys_setreuid16, gdb_sys_setrlimit, gdb_sys_setsid, gdb_sys_setsockopt, gdb_sys_settimeofday, gdb_sys_setuid, gdb_sys_setuid16, gdb_sys_setxattr, gdb_sys_shmat, gdb_sys_shmctl, gdb_sys_shmdt, gdb_sys_shmget, gdb_sys_shutdown, gdb_sys_sigaction, gdb_sys_sigaltstack, gdb_sys_sigpending, gdb_sys_sigprocmask, gdb_sys_sigreturn, gdb_sys_sigsuspend, gdb_sys_socket, gdb_sys_socketcall, gdb_sys_socketpair, gdb_sys_splice, gdb_sys_stat, gdb_sys_stat64, gdb_sys_statfs, gdb_sys_statfs64, gdb_sys_stime, gdb_sys_swapoff, gdb_sys_swapon, gdb_sys_symlink, gdb_sys_symlinkat, gdb_sys_sync, gdb_sys_sysctl, gdb_sys_sysfs, gdb_sys_sysinfo, gdb_sys_syslog, gdb_sys_tee, gdb_sys_tgkill, gdb_sys_time, gdb_sys_timer_create, gdb_sys_timer_delete, gdb_sys_timer_getoverrun, gdb_sys_timer_gettime, gdb_sys_timer_settime, gdb_sys_times, gdb_sys_tkill, gdb_sys_truncate, gdb_sys_truncate64, gdb_sys_umask, gdb_sys_umount, gdb_sys_uname, gdb_sys_unlink, gdb_sys_unlinkat, gdb_sys_unshare, gdb_sys_uselib, gdb_sys_ustat, gdb_sys_utime, gdb_sys_utimes, gdb_sys_vfork, gdb_sys_vhangup, gdb_sys_vmsplice, gdb_sys_wait4, gdb_sys_waitid, gdb_sys_write, and gdb_sys_writev.

Referenced by arm_linux_syscall_record().

## ◆ arm_catch_kernel_helper_return()

static void arm_catch_kernel_helper_return | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | from,
|  | CORE_ADDR | to,
|  | struct regcache * | regs,
|  | arm_displaced_step_closure * | dsc
| ) |  |
| static

Definition at line 1079 of file arm-linux-tdep.c.

References ARM_LR_REGNUM, CANNOT_WRITE_PC, arm_displaced_step_closure::cleanup, cleanup_kernel_helper_return(), displaced_read_reg(), displaced_write_reg(), gdbarch_byte_order(), arm_displaced_step_closure::insn_addr, arm_displaced_step_closure::modinsn, arm_displaced_step_closure::numinsns, arm_displaced_step_closure::tmp, write_memory_unsigned_integer(), and arm_displaced_step_closure::wrote_to_pc.

Referenced by arm_linux_displaced_step_copy_insn().

## ◆ arm_linux_cleanup_svc()

static void arm_linux_cleanup_svc | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regs,
|  | arm_displaced_step_closure * | dsc
| ) |  |
| static

Definition at line 951 of file arm-linux-tdep.c.

References ARM_PC_REGNUM, BRANCH_WRITE_PC, debug_displaced, DISPLACED_MODIFIED_INSNS, displaced_write_reg(), fprintf_unfiltered(), gdb_stdlog, arm_displaced_step_closure::insn_addr, arm_displaced_step_closure::insn_size, regcache_cooked_read_unsigned(), and arm_displaced_step_closure::scratch_base.

Referenced by arm_linux_copy_svc().

## ◆ arm_linux_collect_gregset()

void arm_linux_collect_gregset | ( | const struct regset * | regset,
|  | const struct regcache * | regcache,
|  | int | regnum,
|  | void * | gregs_buf,
|  | size_t | len
| ) |  |

Definition at line 515 of file arm-linux-tdep.c.

References ARM_A1_REGNUM, arm_apcs_32, ARM_CPSR_GREGNUM, ARM_PC_REGNUM, ARM_PS_REGNUM, INT_REGISTER_SIZE, regcache_raw_collect(), and regnum.

Referenced by fill_gregset().

## ◆ arm_linux_collect_nwfpe()

void arm_linux_collect_nwfpe | ( | const struct regset * | regset,
|  | const struct regcache * | regcache,
|  | int | regnum,
|  | void * | regs_buf,
|  | size_t | len
| ) |  |

Definition at line 639 of file arm-linux-tdep.c.

References ARM_F0_REGNUM, ARM_F7_REGNUM, ARM_FPS_REGNUM, collect_nwfpe_register(), INT_REGISTER_SIZE, regcache_raw_collect(), and regnum.

Referenced by fill_fpregset().

## ◆ arm_linux_collect_vfp()

static void arm_linux_collect_vfp | ( | const struct regset * | regset,
|  | const struct regcache * | regcache,
|  | int | regnum,
|  | void * | regs_buf,
|  | size_t | len
| ) |  |
| static

Definition at line 677 of file arm-linux-tdep.c.

References ARM_D0_REGNUM, ARM_D31_REGNUM, ARM_FPSCR_REGNUM, regcache_raw_collect(), and regnum.

## ◆ arm_linux_copy_svc()

static int arm_linux_copy_svc | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regs,
|  | arm_displaced_step_closure * | dsc
| ) |  |
| static

Definition at line 980 of file arm-linux-tdep.c.

References arm_linux_cleanup_svc(), arm_linux_sigreturn_return_addr(), bp_step_resume, arm_displaced_step_closure::cleanup, thread_info::control, debug_displaced, displaced_read_reg(), symtab_and_line::explicit_pc, find_pc_line(), find_pc_overlay(), fprintf_unfiltered(), gdb_assert, gdb_stderr, gdb_stdlog, get_current_frame(), get_frame_id(), get_frame_pc(), get_prev_frame(), inferior_thread(), insert_breakpoints(), symtab_and_line::pc, symtab_and_line::section, set_momentary_breakpoint(), thread_control_state::step_resume_breakpoint, and arm_displaced_step_closure::wrote_to_pc.

Referenced by arm_linux_displaced_step_copy_insn().

## ◆ arm_linux_core_read_description()

static const struct target_desc* arm_linux_core_read_description | ( | struct gdbarch * | gdbarch,
|  | struct target_ops * | target,
|  | bfd * | abfd
| ) |  |
| static

Definition at line 731 of file arm-linux-tdep.c.

References HWCAP_NEON, HWCAP_VFP, HWCAP_VFPv3, HWCAP_VFPv3D16, target_auxv_search(), tdesc_arm_with_neon, tdesc_arm_with_vfpv2, and tdesc_arm_with_vfpv3.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_displaced_step_copy_insn()

static struct displaced_step_closure* arm_linux_displaced_step_copy_insn | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | from,
|  | CORE_ADDR | to,
|  | struct regcache * | regs
| ) |  |
| static

Definition at line 1111 of file arm-linux-tdep.c.

References arm_catch_kernel_helper_return(), arm_displaced_init_closure(), arm_linux_copy_svc(), arm_process_displaced_insn(), debug_displaced, fprintf_unfiltered(), gdb_stdlog, arm_displaced_step_closure::svc, and arm_displaced_step_closure::u.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_get_next_pcs_syscall_next_pc()

static CORE_ADDR arm_linux_get_next_pcs_syscall_next_pc | ( | struct arm_get_next_pcs * | self | ) |
| static

Definition at line 871 of file arm-linux-tdep.c.

References arm_is_thumb(), arm_linux_sigreturn_next_pc(), ARM_RT_SIGRETURN, ARM_SIGRETURN, gdbarch::byte_order_for_code, gdbarch_byte_order_for_code(), MAKE_THUMB_ADDR, read_memory_unsigned_integer(), regcache_raw_get_unsigned(), and regcache_read_pc().

## ◆ arm_linux_get_syscall_number()

static LONGEST arm_linux_get_syscall_number | ( | struct gdbarch * | gdbarch,
|  | ptid_t | ptid
| ) |  |
| static

Definition at line 824 of file arm-linux-tdep.c.

References ARM_PC_REGNUM, ARM_PS_REGNUM, arm_psr_thumb_bit(), gdbarch_byte_order_for_code(), get_thread_regcache(), regcache::ptid(), read_memory_unsigned_integer(), and regcache_cooked_read_unsigned().

Referenced by arm_linux_init_abi().

## ◆ arm_linux_init_abi()

static void arm_linux_init_abi | ( | struct gdbarch_info | info,
|  | struct gdbarch * | gdbarch
| ) |  |
| static

Definition at line 1716 of file arm-linux-tdep.c.

References _, linux_record_tdep::arg1, linux_record_tdep::arg2, linux_record_tdep::arg3, linux_record_tdep::arg4, linux_record_tdep::arg5, linux_record_tdep::arg6, linux_record_tdep::arg7, ARM_A1_REGNUM, gdbarch_tdep::arm_abi, ARM_ABI_AAPCS, gdbarch_tdep::arm_breakpoint, gdbarch_tdep::arm_breakpoint_size, arm_displaced_step_fixup(), arm_eabi_linux_rt_sigreturn_tramp_frame, arm_eabi_linux_sigreturn_tramp_frame, ARM_FLOAT_AUTO, ARM_FLOAT_FPA, ARM_FLOAT_SOFT_FPA, ARM_FLOAT_SOFT_VFP, ARM_FLOAT_VFP, arm_kernel_linux_restart_syscall_tramp_frame, arm_linux_arm_be_breakpoint, arm_linux_arm_le_breakpoint, arm_linux_core_read_description(), arm_linux_displaced_step_copy_insn(), arm_linux_get_syscall_number(), arm_linux_iterate_over_regset_sections(), ARM_LINUX_JB_ELEMENT_SIZE, ARM_LINUX_JB_PC_EABI, ARM_LINUX_JB_PC_FPA, arm_linux_record_tdep, arm_linux_restart_syscall_tramp_frame, arm_linux_rt_sigreturn_tramp_frame, arm_linux_sigreturn_tramp_frame, arm_linux_skip_trampoline_code(), arm_linux_software_single_step(), arm_linux_syscall_record(), arm_linux_thumb2_be_breakpoint, arm_linux_thumb2_le_breakpoint, arm_linux_thumb_be_breakpoint, arm_linux_thumb_le_breakpoint, arm_process_record(), arm_stap_is_single_operand(), arm_stap_parse_special_token(), gdbarch_tdep::arm_syscall_record, gdbarch_info::byte_order_for_code, eabi_linux_arm_be_breakpoint, eabi_linux_arm_le_breakpoint, linux_record_tdep::fcntl_F_GETLK, linux_record_tdep::fcntl_F_GETLK64, linux_record_tdep::fcntl_F_SETLK64, linux_record_tdep::fcntl_F_SETLKW64, gdbarch_tdep::fp_model, gdbarch_int_bit(), gdbarch_long_bit(), gdbarch_ptr_bit(), gdbarch_tdep(), glibc_skip_solib_resolver(), internal_error(), linux_record_tdep::ioctl_FIOASYNC, linux_record_tdep::ioctl_FIOCLEX, linux_record_tdep::ioctl_FIONBIO, linux_record_tdep::ioctl_FIONCLEX, linux_record_tdep::ioctl_FIONREAD, linux_record_tdep::ioctl_FIOQSIZE, linux_record_tdep::ioctl_TCFLSH, linux_record_tdep::ioctl_TCGETA, linux_record_tdep::ioctl_TCGETS, linux_record_tdep::ioctl_TCGETS2, linux_record_tdep::ioctl_TCSBRK, linux_record_tdep::ioctl_TCSBRKP, linux_record_tdep::ioctl_TCSETA, linux_record_tdep::ioctl_TCSETAF, linux_record_tdep::ioctl_TCSETAW, linux_record_tdep::ioctl_TCSETS, linux_record_tdep::ioctl_TCSETS2, linux_record_tdep::ioctl_TCSETSF, linux_record_tdep::ioctl_TCSETSF2, linux_record_tdep::ioctl_TCSETSW, linux_record_tdep::ioctl_TCSETSW2, linux_record_tdep::ioctl_TCXONC, linux_record_tdep::ioctl_TIOCCBRK, linux_record_tdep::ioctl_TIOCCONS, linux_record_tdep::ioctl_TIOCEXCL, linux_record_tdep::ioctl_TIOCGETD, linux_record_tdep::ioctl_TIOCGHAYESESP, linux_record_tdep::ioctl_TIOCGICOUNT, linux_record_tdep::ioctl_TIOCGLCKTRMIOS, linux_record_tdep::ioctl_TIOCGPGRP, linux_record_tdep::ioctl_TIOCGPTN, linux_record_tdep::ioctl_TIOCGSERIAL, linux_record_tdep::ioctl_TIOCGSID, linux_record_tdep::ioctl_TIOCGSOFTCAR, linux_record_tdep::ioctl_TIOCGWINSZ, linux_record_tdep::ioctl_TIOCINQ, linux_record_tdep::ioctl_TIOCLINUX, linux_record_tdep::ioctl_TIOCMBIC, linux_record_tdep::ioctl_TIOCMBIS, linux_record_tdep::ioctl_TIOCMGET, linux_record_tdep::ioctl_TIOCMIWAIT, linux_record_tdep::ioctl_TIOCMSET, linux_record_tdep::ioctl_TIOCNOTTY, linux_record_tdep::ioctl_TIOCNXCL, linux_record_tdep::ioctl_TIOCOUTQ, linux_record_tdep::ioctl_TIOCPKT, linux_record_tdep::ioctl_TIOCSBRK, linux_record_tdep::ioctl_TIOCSCTTY, linux_record_tdep::ioctl_TIOCSERCONFIG, linux_record_tdep::ioctl_TIOCSERGETLSR, linux_record_tdep::ioctl_TIOCSERGETMULTI, linux_record_tdep::ioctl_TIOCSERGSTRUCT, linux_record_tdep::ioctl_TIOCSERGWILD, linux_record_tdep::ioctl_TIOCSERSETMULTI, linux_record_tdep::ioctl_TIOCSERSWILD, linux_record_tdep::ioctl_TIOCSETD, linux_record_tdep::ioctl_TIOCSHAYESESP, linux_record_tdep::ioctl_TIOCSLCKTRMIOS, linux_record_tdep::ioctl_TIOCSPGRP, linux_record_tdep::ioctl_TIOCSPTLCK, linux_record_tdep::ioctl_TIOCSSERIAL, linux_record_tdep::ioctl_TIOCSSOFTCAR, linux_record_tdep::ioctl_TIOCSTI, linux_record_tdep::ioctl_TIOCSWINSZ, linux_record_tdep::ioctl_TIOCTTYGSTRUCT, gdbarch_tdep::jb_elt_size, gdbarch_tdep::jb_pc, linux_displaced_step_location(), linux_init_abi(), gdbarch_tdep::lowest_pc, set_gdbarch_core_read_description(), set_gdbarch_displaced_step_copy_insn(), set_gdbarch_displaced_step_fixup(), set_gdbarch_displaced_step_location(), set_gdbarch_fetch_tls_load_module_address(), set_gdbarch_get_syscall_number(), set_gdbarch_iterate_over_regset_sections(), set_gdbarch_process_record(), set_gdbarch_skip_solib_resolver(), set_gdbarch_skip_trampoline_code(), set_gdbarch_software_single_step(), set_gdbarch_stap_gdb_register_prefix(), set_gdbarch_stap_integer_prefixes(), set_gdbarch_stap_is_single_operand(), set_gdbarch_stap_parse_special_token(), set_gdbarch_stap_register_indirection_prefixes(), set_gdbarch_stap_register_indirection_suffixes(), set_gdbarch_stap_register_prefixes(), set_solib_svr4_fetch_link_map_offsets(), set_xml_syscall_file_name(), linux_record_tdep::size__old_kernel_stat, linux_record_tdep::size_cap_user_data_t, linux_record_tdep::size_epoll_event, linux_record_tdep::size_fd_set, linux_record_tdep::size_flock, linux_record_tdep::size_flock64, linux_record_tdep::size_fs_quota_stat, linux_record_tdep::size_gid_t, linux_record_tdep::size_hayes_esp_config, linux_record_tdep::size_if_dqblk, linux_record_tdep::size_int, linux_record_tdep::size_io_event, linux_record_tdep::size_iocb, linux_record_tdep::size_iovec, linux_record_tdep::size_itimerspec, linux_record_tdep::size_itimerval, linux_record_tdep::size_knfsd_fh, linux_record_tdep::size_loff_t, linux_record_tdep::size_long, linux_record_tdep::size_mem_dqinfo, linux_record_tdep::size_mq_attr, linux_record_tdep::size_msghdr, linux_record_tdep::size_msqid_ds, linux_record_tdep::size_new_utsname, linux_record_tdep::size_NFS_FHSIZE, linux_record_tdep::size_off_t, linux_record_tdep::size_old_dirent, linux_record_tdep::size_old_gid_t, linux_record_tdep::size_old_sigaction, linux_record_tdep::size_old_sigset_t, linux_record_tdep::size_old_uid_t, linux_record_tdep::size_old_utsname, linux_record_tdep::size_oldold_utsname, linux_record_tdep::size_PAGE_SIZE, linux_record_tdep::size_pid_t, linux_record_tdep::size_pointer, linux_record_tdep::size_pollfd, linux_record_tdep::size_rlimit, linux_record_tdep::size_rusage, linux_record_tdep::size_serial_icounter_struct, linux_record_tdep::size_serial_struct, linux_record_tdep::size_shmid_ds, linux_record_tdep::size_sigaction, linux_record_tdep::size_siginfo_t, linux_record_tdep::size_sigset_t, linux_record_tdep::size_size_t, linux_record_tdep::size_sockaddr, linux_record_tdep::size_stack_t, linux_record_tdep::size_stat, linux_record_tdep::size_stat64, linux_record_tdep::size_statfs, linux_record_tdep::size_statfs64, linux_record_tdep::size_sysinfo, linux_record_tdep::size_TASK_COMM_LEN, linux_record_tdep::size_termios, linux_record_tdep::size_termios2, linux_record_tdep::size_time_t, linux_record_tdep::size_timespec, linux_record_tdep::size_timeval, linux_record_tdep::size_timex, linux_record_tdep::size_timezone, linux_record_tdep::size_tms, linux_record_tdep::size_uid_t, linux_record_tdep::size_ulong, linux_record_tdep::size_user_desc, linux_record_tdep::size_ustat, linux_record_tdep::size_winsize, svr4_fetch_objfile_link_map(), svr4_ilp32_fetch_link_map_offsets(), TARGET_CHAR_BIT, gdbarch_tdep::thumb2_breakpoint, gdbarch_tdep::thumb2_breakpoint_size, thumb2_eabi_linux_rt_sigreturn_tramp_frame, thumb2_eabi_linux_sigreturn_tramp_frame, gdbarch_tdep::thumb_breakpoint, gdbarch_tdep::thumb_breakpoint_size, and tramp_frame_prepend_unwinder().

Referenced by _initialize_arm_linux_tdep().

## ◆ arm_linux_iterate_over_regset_sections()

static void arm_linux_iterate_over_regset_sections | ( | struct gdbarch * | gdbarch,
|  | iterate_over_regset_sections_cb * | cb,
|  | void * | cb_data,
|  | const struct regcache * | regcache
| ) |  |
| static

Definition at line 711 of file arm-linux-tdep.c.

References arm_linux_fpregset, arm_linux_gregset, ARM_LINUX_SIZEOF_GREGSET, ARM_LINUX_SIZEOF_NWFPE, ARM_LINUX_SIZEOF_VFP, arm_linux_vfpregset, gdbarch_tdep(), gdbarch_tdep::have_fpa_registers, and gdbarch_tdep::vfp_register_count.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_restart_syscall_init()

static void arm_linux_restart_syscall_init | ( | const struct tramp_frame * | self,
|  | struct frame_info * | this_frame,
|  | struct trad_frame_cache * | this_cache,
|  | CORE_ADDR | func
| ) |  |
| static

Definition at line 344 of file arm-linux-tdep.c.

References ARM_LDR_PC_SP_4, ARM_PC_REGNUM, ARM_PS_REGNUM, arm_psr_thumb_bit(), ARM_SP_REGNUM, frame_id_build(), func, gdbarch_addr_bits_remove(), get_frame_arch(), get_frame_memory_unsigned(), get_frame_register_unsigned(), trad_frame_set_id(), and trad_frame_set_reg_value().

## ◆ arm_linux_rt_sigreturn_init()

static void arm_linux_rt_sigreturn_init | ( | const struct tramp_frame * | self,
|  | struct frame_info * | this_frame,
|  | struct trad_frame_cache * | this_cache,
|  | CORE_ADDR | func
| ) |  |
| static

Definition at line 321 of file arm-linux-tdep.c.

References arm_linux_sigtramp_cache(), ARM_NEW_RT_SIGFRAME_UCONTEXT, ARM_OLD_RT_SIGFRAME_SIGINFO, ARM_OLD_RT_SIGFRAME_UCONTEXT, ARM_SIGCONTEXT_R0, ARM_SP_REGNUM, ARM_UCONTEXT_SIGCONTEXT, gdbarch::byte_order, func, gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), and read_memory_unsigned_integer().

## ◆ arm_linux_sigreturn_init()

static void arm_linux_sigreturn_init | ( | const struct tramp_frame * | self,
|  | struct frame_info * | this_frame,
|  | struct trad_frame_cache * | this_cache,
|  | CORE_ADDR | func
| ) |  |
| static

Definition at line 301 of file arm-linux-tdep.c.

References arm_linux_sigtramp_cache(), ARM_NEW_SIGFRAME_MAGIC, ARM_SIGCONTEXT_R0, ARM_SP_REGNUM, ARM_UCONTEXT_SIGCONTEXT, gdbarch::byte_order, func, gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), and read_memory_unsigned_integer().

## ◆ arm_linux_sigreturn_next_pc()

static CORE_ADDR arm_linux_sigreturn_next_pc | ( | struct regcache * | regcache,
|  | unsigned long | svc_number,
|  | int * | is_thumb
| ) |  |
| static

Definition at line 787 of file arm-linux-tdep.c.

References regcache::arch(), arm_linux_sigreturn_next_pc_offset(), arm_psr_thumb_bit(), ARM_RT_SIGRETURN, ARM_SIGRETURN, ARM_SP_REGNUM, gdbarch::byte_order, gdb_assert, gdbarch_byte_order(), read_memory_unsigned_integer(), and regcache_cooked_read_unsigned().

Referenced by arm_linux_get_next_pcs_syscall_next_pc().

## ◆ arm_linux_sigreturn_return_addr()

static int arm_linux_sigreturn_return_addr | ( | struct frame_info * | frame,
|  | unsigned long | svc_number,
|  | CORE_ADDR * | pc,
|  | int * | is_thumb
| ) |  |
| static

Definition at line 761 of file arm-linux-tdep.c.

References ARM_PS_REGNUM, arm_psr_thumb_bit(), frame_unwind_arch(), frame_unwind_caller_pc(), frame_unwind_register_unsigned(), get_frame_type(), and SIGTRAMP_FRAME.

Referenced by arm_linux_copy_svc().

## ◆ arm_linux_sigtramp_cache()

static void arm_linux_sigtramp_cache | ( | struct frame_info * | this_frame,
|  | struct trad_frame_cache * | this_cache,
|  | CORE_ADDR | func,
|  | int | regs_offset
| ) |  |
| static

Definition at line 279 of file arm-linux-tdep.c.

References ARM_PS_REGNUM, ARM_SP_REGNUM, frame_id_build(), func, get_frame_register_unsigned(), trad_frame_set_id(), and trad_frame_set_reg_addr().

Referenced by arm_linux_rt_sigreturn_init(), and arm_linux_sigreturn_init().

## ◆ arm_linux_skip_trampoline_code()

static CORE_ADDR arm_linux_skip_trampoline_code | ( | struct frame_info * | frame,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 1705 of file arm-linux-tdep.c.

References arm_skip_stub(), and find_solib_trampoline_target().

Referenced by arm_linux_init_abi().

## ◆ arm_linux_software_single_step()

static std::vector<CORE_ADDR> arm_linux_software_single_step | ( | struct regcache * | regcache | ) |
| static

Definition at line 923 of file arm-linux-tdep.c.

References regcache::arch(), arm_get_next_pcs(), arm_get_next_pcs_ctor(), arm_linux_get_next_pcs_ops, gdbarch_addr_bits_remove(), gdbarch_byte_order(), gdbarch_byte_order_for_code(), and target_can_do_single_step.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_supply_gregset()

void arm_linux_supply_gregset | ( | const struct regset * | regset,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | const void * | gregs_buf,
|  | size_t | len
| ) |  |

Definition at line 477 of file arm-linux-tdep.c.

References regcache::arch(), ARM_A1_REGNUM, arm_apcs_32, ARM_CPSR_GREGNUM, ARM_PC_REGNUM, ARM_PS_REGNUM, gdbarch::byte_order, extract_unsigned_integer(), gdbarch_addr_bits_remove(), gdbarch_byte_order(), INT_REGISTER_SIZE, regcache_raw_supply(), regnum, and store_unsigned_integer().

Referenced by supply_gregset().

## ◆ arm_linux_supply_nwfpe()

void arm_linux_supply_nwfpe | ( | const struct regset * | regset,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | const void * | regs_buf,
|  | size_t | len
| ) |  |

Definition at line 622 of file arm-linux-tdep.c.

References ARM_F0_REGNUM, ARM_F7_REGNUM, ARM_FPS_REGNUM, NWFPE_FPSR_OFFSET, regcache_raw_supply(), regnum, and supply_nwfpe_register().

Referenced by supply_fpregset().

## ◆ arm_linux_supply_vfp()

static void arm_linux_supply_vfp | ( | const struct regset * | regset,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | const void * | regs_buf,
|  | size_t | len
| ) |  |
| static

Definition at line 660 of file arm-linux-tdep.c.

References ARM_D0_REGNUM, ARM_D31_REGNUM, ARM_FPSCR_REGNUM, regcache_raw_supply(), and regnum.

## ◆ arm_linux_syscall_record()

static int arm_linux_syscall_record | ( | struct regcache * | regcache,
|  | unsigned long | svc_number
| ) |  |
| static

Definition at line 1661 of file arm-linux-tdep.c.

References _, ARM_A1_REGNUM, arm_all_but_pc_registers_record(), arm_canonicalize_syscall(), arm_linux_record_tdep, ARM_LR_REGNUM, ARM_PS_REGNUM, gdb_sys_no_syscall, gdb_sys_rt_sigreturn, gdb_sys_sigreturn, plongest(), printf_unfiltered(), record_full_arch_list_add_reg(), and record_linux_system_call().

Referenced by arm_linux_init_abi().

## ◆ arm_stap_is_single_operand()

static int arm_stap_is_single_operand | ( | struct gdbarch * | gdbarch,
|  | const char * | s
| ) |  |
| static

Definition at line 1144 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_stap_parse_special_token()

static int arm_stap_parse_special_token | ( | struct gdbarch * | gdbarch,
|  | struct stap_parse_info * | p
| ) |  |
| static

Definition at line 1162 of file arm-linux-tdep.c.

References _, stap_parse_info::arg, stap_parse_info::arg_type, error(), stoken::length, lookup_pointer_type(), offset, stap_parse_info::pstate, stoken::ptr, stap_parse_info::saved_arg, skip_spaces(), user_reg_map_name_to_regnum(), write_exp_elt_longcst(), write_exp_elt_opcode(), write_exp_elt_type(), and write_exp_string().

Referenced by arm_linux_init_abi().

## ◆ cleanup_kernel_helper_return()

static void cleanup_kernel_helper_return | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regs,
|  | arm_displaced_step_closure * | dsc
| ) |  |
| static

Definition at line 1070 of file arm-linux-tdep.c.

References ARM_LR_REGNUM, ARM_PC_REGNUM, BRANCH_WRITE_PC, CANNOT_WRITE_PC, displaced_write_reg(), and arm_displaced_step_closure::tmp.

Referenced by arm_catch_kernel_helper_return().

## ◆ collect_nwfpe_register()

void collect_nwfpe_register | ( | const struct regcache * | regcache,
|  | int | regno,
|  | gdb_byte * | regs
| ) |  |

Definition at line 585 of file arm-linux-tdep.c.

References ARM_F0_REGNUM, FP_REGISTER_SIZE, NWFPE_TAGS_OFFSET, regcache_raw_collect(), typeDouble, typeExtended, and typeSingle.

Referenced by arm_linux_collect_nwfpe(), and store_fpregs().

## ◆ supply_nwfpe_register()

void supply_nwfpe_register | ( | struct regcache * | regcache,
|  | int | regno,
|  | const gdb_byte * | regs
| ) |  |

Definition at line 550 of file arm-linux-tdep.c.

References ARM_F0_REGNUM, FP_REGISTER_SIZE, memset(), NWFPE_TAGS_OFFSET, regcache_raw_supply(), typeDouble, typeExtended, and typeSingle.

Referenced by arm_linux_supply_nwfpe(), and fetch_fpregs().

## Variable Documentation

## ◆ arm_apcs_32

int arm_apcs_32

Definition at line 281 of file arm-tdep.c.

Referenced by arm_linux_collect_gregset(), and arm_linux_supply_gregset().

## ◆ arm_eabi_linux_rt_sigreturn_tramp_frame

struct tramp_frame arm_eabi_linux_rt_sigreturn_tramp_frame
| static

Initial value:
= {
SIGTRAMP_FRAME,
4,
{
{ ARM_SET_R7_RT_SIGRETURN, -1 },
{ ARM_EABI_SYSCALL, -1 },
{ TRAMP_SENTINEL_INSN }
},
arm_linux_rt_sigreturn_init
}
TRAMP_SENTINEL_INSN
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
SIGTRAMP_FRAME
Definition: frame.h:255
arm_linux_rt_sigreturn_init
static void arm_linux_rt_sigreturn_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
Definition: arm-linux-tdep.c:321
ARM_SET_R7_RT_SIGRETURN
#define ARM_SET_R7_RT_SIGRETURN
Definition: arm-linux-tdep.c:245
ARM_EABI_SYSCALL
#define ARM_EABI_SYSCALL
Definition: arm-linux-tdep.c:246

Definition at line 415 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_eabi_linux_sigreturn_tramp_frame

struct tramp_frame arm_eabi_linux_sigreturn_tramp_frame
| static

Initial value:
= {
SIGTRAMP_FRAME,
4,
{
{ ARM_SET_R7_SIGRETURN, -1 },
{ ARM_EABI_SYSCALL, -1 },
{ TRAMP_SENTINEL_INSN }
},
arm_linux_sigreturn_init
}
TRAMP_SENTINEL_INSN
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
SIGTRAMP_FRAME
Definition: frame.h:255
arm_linux_sigreturn_init
static void arm_linux_sigreturn_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
Definition: arm-linux-tdep.c:301
ARM_SET_R7_SIGRETURN
#define ARM_SET_R7_SIGRETURN
Definition: arm-linux-tdep.c:244
ARM_EABI_SYSCALL
#define ARM_EABI_SYSCALL
Definition: arm-linux-tdep.c:246

Definition at line 404 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_kernel_linux_restart_syscall_tramp_frame

struct tramp_frame arm_kernel_linux_restart_syscall_tramp_frame
| static

Initial value:
= {
NORMAL_FRAME,
4,
{
{ ARM_OABI_SYSCALL_RESTART_SYSCALL, -1 },
{ ARM_LDR_PC_SP_4, -1 },
{ TRAMP_SENTINEL_INSN }
},
arm_linux_restart_syscall_init
}
ARM_OABI_SYSCALL_RESTART_SYSCALL
#define ARM_OABI_SYSCALL_RESTART_SYSCALL
Definition: arm-linux-tdep.c:257
TRAMP_SENTINEL_INSN
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
NORMAL_FRAME
Definition: frame.h:244
arm_linux_restart_syscall_init
static void arm_linux_restart_syscall_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
Definition: arm-linux-tdep.c:344
ARM_LDR_PC_SP_4
#define ARM_LDR_PC_SP_4
Definition: arm-linux-tdep.c:259

Definition at line 461 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_arm_be_breakpoint

const gdb_byte arm_linux_arm_be_breakpoint[] = { 0xef, 0x9f, 0x00, 0x01 }
| static

Definition at line 68 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_arm_le_breakpoint

const gdb_byte arm_linux_arm_le_breakpoint[] = { 0x01, 0x00, 0x9f, 0xef }
| static

Definition at line 66 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_fpregset

const struct regset arm_linux_fpregset
| static

Initial value:
=
{
NULL, arm_linux_supply_nwfpe, arm_linux_collect_nwfpe
}
arm_linux_supply_nwfpe
void arm_linux_supply_nwfpe(const struct regset *regset, struct regcache *regcache, int regnum, const void *regs_buf, size_t len)
Definition: arm-linux-tdep.c:622
arm_linux_collect_nwfpe
void arm_linux_collect_nwfpe(const struct regset *regset, const struct regcache *regcache, int regnum, void *regs_buf, size_t len)
Definition: arm-linux-tdep.c:639

Definition at line 698 of file arm-linux-tdep.c.

Referenced by arm_linux_iterate_over_regset_sections().

## ◆ arm_linux_get_next_pcs_ops

struct arm_get_next_pcs_ops arm_linux_get_next_pcs_ops
| static

Initial value:
= {
arm_get_next_pcs_read_memory_unsigned_integer,
arm_linux_get_next_pcs_syscall_next_pc,
arm_get_next_pcs_addr_bits_remove,
arm_get_next_pcs_is_thumb,
arm_linux_get_next_pcs_fixup,
}
arm_linux_get_next_pcs_syscall_next_pc
static CORE_ADDR arm_linux_get_next_pcs_syscall_next_pc(struct arm_get_next_pcs *self)
Definition: arm-linux-tdep.c:871
arm_linux_get_next_pcs_fixup
CORE_ADDR arm_linux_get_next_pcs_fixup(struct arm_get_next_pcs *self, CORE_ADDR nextpc)
Definition: arm-linux.c:65
arm_get_next_pcs_addr_bits_remove
CORE_ADDR arm_get_next_pcs_addr_bits_remove(struct arm_get_next_pcs *self, CORE_ADDR val)
Definition: arm-tdep.c:6223
arm_get_next_pcs_read_memory_unsigned_integer
ULONGEST arm_get_next_pcs_read_memory_unsigned_integer(CORE_ADDR memaddr, int len, int byte_order)
Definition: arm-tdep.c:6213
arm_get_next_pcs_is_thumb
int arm_get_next_pcs_is_thumb(struct arm_get_next_pcs *self)
Definition: arm-tdep.c:6240

Definition at line 270 of file arm-linux-tdep.c.

Referenced by arm_linux_software_single_step().

## ◆ arm_linux_gregset

const struct regset arm_linux_gregset
| static

Initial value:
=
{
NULL, arm_linux_supply_gregset, arm_linux_collect_gregset
}
arm_linux_collect_gregset
void arm_linux_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs_buf, size_t len)
Definition: arm-linux-tdep.c:515
arm_linux_supply_gregset
void arm_linux_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs_buf, size_t len)
Definition: arm-linux-tdep.c:477

Definition at line 693 of file arm-linux-tdep.c.

Referenced by arm_linux_iterate_over_regset_sections().

## ◆ arm_linux_record_tdep

struct linux_record_tdep arm_linux_record_tdep

Definition at line 1263 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi(), and arm_linux_syscall_record().

## ◆ arm_linux_restart_syscall_tramp_frame

struct tramp_frame arm_linux_restart_syscall_tramp_frame
| static

Initial value:
= {
NORMAL_FRAME,
4,
{
{ ARM_OABI_SYSCALL_RESTART_SYSCALL, -1 },
{ ARM_LDR_PC_SP_12, -1 },
{ TRAMP_SENTINEL_INSN }
},
arm_linux_restart_syscall_init
}
ARM_OABI_SYSCALL_RESTART_SYSCALL
#define ARM_OABI_SYSCALL_RESTART_SYSCALL
Definition: arm-linux-tdep.c:257
TRAMP_SENTINEL_INSN
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
NORMAL_FRAME
Definition: frame.h:244
arm_linux_restart_syscall_init
static void arm_linux_restart_syscall_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
Definition: arm-linux-tdep.c:344
ARM_LDR_PC_SP_12
#define ARM_LDR_PC_SP_12
Definition: arm-linux-tdep.c:258

Definition at line 450 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_rt_sigreturn_tramp_frame

struct tramp_frame arm_linux_rt_sigreturn_tramp_frame
| static

Initial value:
= {
SIGTRAMP_FRAME,
4,
{
{ ARM_LINUX_RT_SIGRETURN_INSTR, -1 },
{ TRAMP_SENTINEL_INSN }
},
arm_linux_rt_sigreturn_init
}
TRAMP_SENTINEL_INSN
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
SIGTRAMP_FRAME
Definition: frame.h:255
arm_linux_rt_sigreturn_init
static void arm_linux_rt_sigreturn_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
Definition: arm-linux-tdep.c:321
ARM_LINUX_RT_SIGRETURN_INSTR
#define ARM_LINUX_RT_SIGRETURN_INSTR
Definition: arm-linux-tdep.c:238

Definition at line 394 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_sigreturn_tramp_frame

struct tramp_frame arm_linux_sigreturn_tramp_frame
| static

Initial value:
= {
SIGTRAMP_FRAME,
4,
{
{ ARM_LINUX_SIGRETURN_INSTR, -1 },
{ TRAMP_SENTINEL_INSN }
},
arm_linux_sigreturn_init
}
TRAMP_SENTINEL_INSN
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
SIGTRAMP_FRAME
Definition: frame.h:255
arm_linux_sigreturn_init
static void arm_linux_sigreturn_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
Definition: arm-linux-tdep.c:301
ARM_LINUX_SIGRETURN_INSTR
#define ARM_LINUX_SIGRETURN_INSTR
Definition: arm-linux-tdep.c:237

Definition at line 384 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_thumb2_be_breakpoint

const gdb_byte arm_linux_thumb2_be_breakpoint[] = { 0xf7, 0xf0, 0xa0, 0x00 }
| static

Definition at line 91 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_thumb2_le_breakpoint

const gdb_byte arm_linux_thumb2_le_breakpoint[] = { 0xf0, 0xf7, 0x00, 0xa0 }
| static

Definition at line 93 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_thumb_be_breakpoint

const gdb_byte arm_linux_thumb_be_breakpoint[] = {0xde, 0x01}
| static

Definition at line 83 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_thumb_le_breakpoint

const gdb_byte arm_linux_thumb_le_breakpoint[] = {0x01, 0xde}
| static

Definition at line 85 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ arm_linux_vfpregset

const struct regset arm_linux_vfpregset
| static

Initial value:
=
{
NULL, arm_linux_supply_vfp, arm_linux_collect_vfp
}
arm_linux_supply_vfp
static void arm_linux_supply_vfp(const struct regset *regset, struct regcache *regcache, int regnum, const void *regs_buf, size_t len)
Definition: arm-linux-tdep.c:660
arm_linux_collect_vfp
static void arm_linux_collect_vfp(const struct regset *regset, const struct regcache *regcache, int regnum, void *regs_buf, size_t len)
Definition: arm-linux-tdep.c:677

Definition at line 703 of file arm-linux-tdep.c.

Referenced by arm_linux_iterate_over_regset_sections().

## ◆ eabi_linux_arm_be_breakpoint

const gdb_byte eabi_linux_arm_be_breakpoint[] = { 0xe7, 0xf0, 0x01, 0xf0 }
| static

Definition at line 78 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ eabi_linux_arm_le_breakpoint

const gdb_byte eabi_linux_arm_le_breakpoint[] = { 0xf0, 0x01, 0xf0, 0xe7 }
| static

Definition at line 76 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ thumb2_eabi_linux_rt_sigreturn_tramp_frame

struct tramp_frame thumb2_eabi_linux_rt_sigreturn_tramp_frame
| static

Initial value:
= {
SIGTRAMP_FRAME,
2,
{
{ THUMB2_SET_R7_RT_SIGRETURN1, -1 },
{ THUMB2_SET_R7_RT_SIGRETURN2, -1 },
{ THUMB2_EABI_SYSCALL, -1 },
{ TRAMP_SENTINEL_INSN }
},
arm_linux_rt_sigreturn_init
}
TRAMP_SENTINEL_INSN
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
THUMB2_EABI_SYSCALL
#define THUMB2_EABI_SYSCALL
Definition: arm-linux-tdep.c:253
SIGTRAMP_FRAME
Definition: frame.h:255
THUMB2_SET_R7_RT_SIGRETURN2
#define THUMB2_SET_R7_RT_SIGRETURN2
Definition: arm-linux-tdep.c:252
THUMB2_SET_R7_RT_SIGRETURN1
#define THUMB2_SET_R7_RT_SIGRETURN1
Definition: arm-linux-tdep.c:251
arm_linux_rt_sigreturn_init
static void arm_linux_rt_sigreturn_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
Definition: arm-linux-tdep.c:321

Definition at line 438 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().

## ◆ thumb2_eabi_linux_sigreturn_tramp_frame

struct tramp_frame thumb2_eabi_linux_sigreturn_tramp_frame
| static

Initial value:
= {
SIGTRAMP_FRAME,
2,
{
{ THUMB2_SET_R7_SIGRETURN1, -1 },
{ THUMB2_SET_R7_SIGRETURN2, -1 },
{ THUMB2_EABI_SYSCALL, -1 },
{ TRAMP_SENTINEL_INSN }
},
arm_linux_sigreturn_init
}
TRAMP_SENTINEL_INSN
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
THUMB2_EABI_SYSCALL
#define THUMB2_EABI_SYSCALL
Definition: arm-linux-tdep.c:253
THUMB2_SET_R7_SIGRETURN2
#define THUMB2_SET_R7_SIGRETURN2
Definition: arm-linux-tdep.c:250
THUMB2_SET_R7_SIGRETURN1
#define THUMB2_SET_R7_SIGRETURN1
Definition: arm-linux-tdep.c:249
SIGTRAMP_FRAME
Definition: frame.h:255
arm_linux_sigreturn_init
static void arm_linux_sigreturn_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
Definition: arm-linux-tdep.c:301

Definition at line 426 of file arm-linux-tdep.c.

Referenced by arm_linux_init_abi().