GDB (xrefs)
Macros | Functions | Variables
/tmp/gdb-7.10/gdb/arm-linux-tdep.c File Reference
#include "defs.h"
#include "target.h"
#include "value.h"
#include "gdbtypes.h"
#include "floatformat.h"
#include "gdbcore.h"
#include "frame.h"
#include "regcache.h"
#include "doublest.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 "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_SIGCONTEXT_R0   0xc
 
#define ARM_UCONTEXT_SIGCONTEXT   0x14
 
#define ARM_OLD_RT_SIGFRAME_SIGINFO   0x8
 
#define ARM_OLD_RT_SIGFRAME_UCONTEXT   0x88
 
#define ARM_NEW_RT_SIGFRAME_UCONTEXT   0x80
 
#define ARM_NEW_SIGFRAME_MAGIC   0x5ac3c35a
 
#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 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_descarm_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 LONGEST arm_linux_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid)
 
static CORE_ADDR arm_linux_syscall_next_pc (struct frame_info *frame)
 
static int arm_linux_software_single_step (struct frame_info *frame)
 
static void arm_linux_cleanup_svc (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
 
static int arm_linux_copy_svc (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
 
static void cleanup_kernel_helper_return (struct gdbarch *gdbarch, struct regcache *regs, struct displaced_step_closure *dsc)
 
static void arm_catch_kernel_helper_return (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs, struct displaced_step_closure *dsc)
 
static struct displaced_step_closurearm_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 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
 
initialize_file_ftype _initialize_arm_linux_tdep
 

Macro Definition Documentation

#define ARM_EABI_SYSCALL   0xef000000

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

#define ARM_LDR_PC_SP_12   0xe49df00c

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

#define ARM_LDR_PC_SP_4   0xe49df004

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

Referenced by arm_linux_restart_syscall_init().

#define ARM_LINUX_JB_ELEMENT_SIZE   INT_REGISTER_SIZE

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

Referenced by arm_linux_init_abi().

#define ARM_LINUX_JB_PC_EABI   9

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

Referenced by arm_linux_init_abi().

#define ARM_LINUX_JB_PC_FPA   21

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

Referenced by arm_linux_init_abi().

#define ARM_LINUX_RT_SIGRETURN_INSTR   0xef9000ad

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

#define ARM_LINUX_SIGRETURN_INSTR   0xef900077

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

#define ARM_LINUX_SIZEOF_GREGSET   (18 * INT_REGISTER_SIZE)

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

Referenced by arm_linux_iterate_over_regset_sections().

#define ARM_LINUX_SIZEOF_VFP   (32 * 8 + 4)

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

Referenced by arm_linux_iterate_over_regset_sections().

#define ARM_NEW_RT_SIGFRAME_UCONTEXT   0x80

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

Referenced by arm_linux_rt_sigreturn_init().

#define ARM_NEW_SIGFRAME_MAGIC   0x5ac3c35a

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

Referenced by arm_linux_sigreturn_init().

#define ARM_OABI_SYSCALL_RESTART_SYSCALL   0xef900000

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

#define ARM_OLD_RT_SIGFRAME_SIGINFO   0x8

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

Referenced by arm_linux_rt_sigreturn_init().

#define ARM_OLD_RT_SIGFRAME_UCONTEXT   0x88

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

Referenced by arm_linux_rt_sigreturn_init().

#define ARM_SET_R7_RT_SIGRETURN   0xe3a070ad

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

#define ARM_SET_R7_SIGRETURN   0xe3a07077

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

#define ARM_SIGCONTEXT_R0   0xc

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

Referenced by arm_linux_rt_sigreturn_init(), and arm_linux_sigreturn_init().

#define ARM_UCONTEXT_SIGCONTEXT   0x14

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

Referenced by arm_linux_rt_sigreturn_init(), and arm_linux_sigreturn_init().

#define THUMB2_EABI_SYSCALL   0xdf00

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

#define THUMB2_SET_R7_RT_SIGRETURN1   0xf04f

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

#define THUMB2_SET_R7_RT_SIGRETURN2   0x07ad

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

#define THUMB2_SET_R7_SIGRETURN1   0xf04f

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

#define THUMB2_SET_R7_SIGRETURN2   0x0777

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

#define typeDouble   0x02

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

Referenced by collect_nwfpe_register(), and supply_nwfpe_register().

#define typeExtended   0x03

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

Referenced by collect_nwfpe_register(), and supply_nwfpe_register().

#define typeNone   0x00

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

#define typeSingle   0x01

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

Referenced by collect_nwfpe_register(), and supply_nwfpe_register().

Function Documentation

void _initialize_arm_linux_tdep ( void  )
static int arm_all_but_pc_registers_record ( struct regcache regcache)
static
static enum gdb_syscall arm_canonicalize_syscall ( int  syscall)
static

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

References gdb_sys_sched_getaffinity.

Referenced by arm_linux_syscall_record().

static void arm_catch_kernel_helper_return ( struct gdbarch gdbarch,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs,
struct displaced_step_closure dsc 
)
static
static void arm_linux_cleanup_svc ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
)
static
void arm_linux_collect_gregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  gregs_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_collect_vfp ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  regs_buf,
size_t  len 
)
static
static int arm_linux_copy_svc ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
)
static
static const struct target_desc* arm_linux_core_read_description ( struct gdbarch gdbarch,
struct target_ops target,
bfd *  abfd 
)
static
static struct displaced_step_closure* arm_linux_displaced_step_copy_insn ( struct gdbarch gdbarch,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
)
static
static LONGEST arm_linux_get_syscall_number ( struct gdbarch gdbarch,
ptid_t  ptid 
)
static
static void arm_linux_init_abi ( struct gdbarch_info  info,
struct gdbarch gdbarch 
)
static

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

References _, linux_record_tdep::arg1, linux_record_tdep::arg2, linux_record_tdep::arg3, linux_record_tdep::arg4, ARM_A1_REGNUM, gdbarch_tdep::arm_abi, ARM_ABI_AAPCS, gdbarch_tdep::arm_breakpoint, gdbarch_tdep::arm_breakpoint_size, arm_displaced_step_fixup(), ARM_FLOAT_AUTO, ARM_FLOAT_FPA, ARM_FLOAT_SOFT_FPA, ARM_FLOAT_SOFT_VFP, ARM_FLOAT_VFP, 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_skip_trampoline_code(), arm_linux_software_single_step(), arm_linux_syscall_next_pc(), 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_free_closure(), 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(), simple_displaced_step_free_closure(), linux_record_tdep::size__old_kernel_stat, linux_record_tdep::size_cap_user_data_t, linux_record_tdep::size_dirent, linux_record_tdep::size_dirent64, 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_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, 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_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(), gdbarch_tdep::syscall_next_pc, TARGET_CHAR_BIT, gdbarch_tdep::thumb2_breakpoint, gdbarch_tdep::thumb2_breakpoint_size, gdbarch_tdep::thumb_breakpoint, gdbarch_tdep::thumb_breakpoint_size, and tramp_frame_prepend_unwinder().

Referenced by _initialize_arm_linux_tdep().

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
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
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
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
static int arm_linux_sigreturn_return_addr ( struct frame_info frame,
unsigned long  svc_number,
CORE_ADDR pc,
int is_thumb 
)
static
static void arm_linux_sigtramp_cache ( struct frame_info this_frame,
struct trad_frame_cache this_cache,
CORE_ADDR  func,
int  regs_offset 
)
static
static CORE_ADDR arm_linux_skip_trampoline_code ( struct frame_info frame,
CORE_ADDR  pc 
)
static

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

References arm_skip_stub(), and find_solib_trampoline_target().

Referenced by arm_linux_init_abi().

static int arm_linux_software_single_step ( struct frame_info frame)
static
void arm_linux_supply_gregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  gregs_buf,
size_t  len 
)
void arm_linux_supply_nwfpe ( const struct regset regset,
struct regcache regcache,
int  regnum,
const 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
static CORE_ADDR arm_linux_syscall_next_pc ( struct frame_info frame)
static
static int arm_linux_syscall_record ( struct regcache regcache,
unsigned long  svc_number 
)
static
static int arm_stap_is_single_operand ( struct gdbarch gdbarch,
const char *  s 
)
static

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

Referenced by arm_linux_init_abi().

static int arm_stap_parse_special_token ( struct gdbarch gdbarch,
struct stap_parse_info p 
)
static
static void cleanup_kernel_helper_return ( struct gdbarch gdbarch,
struct regcache regs,
struct displaced_step_closure dsc 
)
static
void collect_nwfpe_register ( const struct regcache regcache,
int  regno,
gdb_byte regs 
)
void supply_nwfpe_register ( struct regcache regcache,
int  regno,
const gdb_byte regs 
)

Variable Documentation

initialize_file_ftype _initialize_arm_linux_tdep
int arm_apcs_32

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

Referenced by arm_linux_collect_gregset(), and arm_linux_supply_gregset().

struct tramp_frame arm_eabi_linux_rt_sigreturn_tramp_frame
static
Initial value:
= {
4,
{
},
}
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
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)
#define ARM_SET_R7_RT_SIGRETURN
#define ARM_EABI_SYSCALL

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

struct tramp_frame arm_eabi_linux_sigreturn_tramp_frame
static
Initial value:
= {
4,
{
},
}
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
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)
#define ARM_SET_R7_SIGRETURN
#define ARM_EABI_SYSCALL

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

struct tramp_frame arm_kernel_linux_restart_syscall_tramp_frame
static
Initial value:
= {
4,
{
{ ARM_LDR_PC_SP_4, -1 },
},
}
#define ARM_OABI_SYSCALL_RESTART_SYSCALL
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
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)
#define ARM_LDR_PC_SP_4

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

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

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

Referenced by arm_linux_init_abi().

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

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

Referenced by arm_linux_init_abi().

const struct regset arm_linux_fpregset
static
Initial value:
=
{
}
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)

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

const struct regset arm_linux_gregset
static
Initial value:
=
{
}
void arm_linux_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs_buf, size_t len)
void arm_linux_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs_buf, size_t len)

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

struct linux_record_tdep arm_linux_record_tdep

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

Referenced by arm_linux_init_abi(), and arm_linux_syscall_record().

struct tramp_frame arm_linux_restart_syscall_tramp_frame
static
Initial value:
= {
4,
{
},
}
#define ARM_OABI_SYSCALL_RESTART_SYSCALL
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
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)
#define ARM_LDR_PC_SP_12

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

struct tramp_frame arm_linux_rt_sigreturn_tramp_frame
static
Initial value:
= {
4,
{
},
}
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
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)
#define ARM_LINUX_RT_SIGRETURN_INSTR

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

struct tramp_frame arm_linux_sigreturn_tramp_frame
static
Initial value:
= {
4,
{
},
}
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
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)
#define ARM_LINUX_SIGRETURN_INSTR

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

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

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

Referenced by arm_linux_init_abi().

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

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

Referenced by arm_linux_init_abi().

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

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

Referenced by arm_linux_init_abi().

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

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

Referenced by arm_linux_init_abi().

const struct regset arm_linux_vfpregset
static
Initial value:
=
{
}
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)

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

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

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

Referenced by arm_linux_init_abi().

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

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

Referenced by arm_linux_init_abi().

struct tramp_frame thumb2_eabi_linux_rt_sigreturn_tramp_frame
static
Initial value:
= {
2,
{
},
}
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
#define THUMB2_EABI_SYSCALL
#define THUMB2_SET_R7_RT_SIGRETURN2
#define THUMB2_SET_R7_RT_SIGRETURN1
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 at line 464 of file arm-linux-tdep.c.

struct tramp_frame thumb2_eabi_linux_sigreturn_tramp_frame
static
Initial value:
= {
2,
{
},
}
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
#define THUMB2_EABI_SYSCALL
#define THUMB2_SET_R7_SIGRETURN2
#define THUMB2_SET_R7_SIGRETURN1
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 at line 452 of file arm-linux-tdep.c.