GDB (xrefs)
|
#include "defs.h"
#include "inferior.h"
#include "gdbcore.h"
#include "regcache.h"
#include "elf/common.h"
#include "nat/gdb_ptrace.h"
#include <sys/uio.h>
#include "gregset.h"
#include "gdb_proc_service.h"
#include "i386-linux-nat.h"
#include "i387-tdep.h"
#include "i386-tdep.h"
#include "i386-linux-tdep.h"
#include "gdbsupport/x86-xstate.h"
#include "x86-linux-nat.h"
#include "nat/linux-ptrace.h"
#include "inf-ptrace.h"
Go to the source code of this file.
Classes | |
struct | i386_linux_nat_target |
Macros | |
#define | GETREGS_SUPPLIES(regno) ((0 <= (regno) && (regno) <= 15) || (regno) == I386_LINUX_ORIG_EAX_REGNUM) |
#define | GETFPXREGS_SUPPLIES(regno) (I386_ST0_REGNUM <= (regno) && (regno) < I386_SSE_NUM_REGS) |
#define | GETXSTATEREGS_SUPPLIES(regno) (I386_ST0_REGNUM <= (regno) && (regno) < I386_PKEYS_NUM_REGS) |
#define | LINUX_SYSCALL_LEN (sizeof linux_syscall) |
#define | LINUX_SYSCALL_REGNUM I386_EAX_REGNUM |
#define | SYS_sigreturn 0x77 |
#define | SYS_rt_sigreturn 0xad |
#define | LINUX_SIGCONTEXT_EFLAGS_OFFSET (64) |
Functions | |
static void | fetch_register (struct regcache *regcache, int regno) |
static void | store_register (const struct regcache *regcache, int regno) |
void | supply_gregset (struct regcache *regcache, const elf_gregset_t *gregsetp) |
void | fill_gregset (const struct regcache *regcache, elf_gregset_t *gregsetp, int regno) |
static void | fetch_regs (struct regcache *regcache, int tid) |
static void | store_regs (const struct regcache *regcache, int tid, int regno) |
void | supply_fpregset (struct regcache *regcache, const elf_fpregset_t *fpregsetp) |
void | fill_fpregset (const struct regcache *regcache, elf_fpregset_t *fpregsetp, int regno) |
static void | fetch_fpregs (struct regcache *regcache, int tid) |
static void | store_fpregs (const struct regcache *regcache, int tid, int regno) |
static int | fetch_xstateregs (struct regcache *regcache, int tid) |
static int | store_xstateregs (const struct regcache *regcache, int tid, int regno) |
static int | fetch_fpxregs (struct regcache *regcache, int tid) |
static int | store_fpxregs (const struct regcache *regcache, int tid, int regno) |
ps_err_e | ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base) |
void | _initialize_i386_linux_nat () |
Variables | |
static i386_linux_nat_target | the_i386_linux_nat_target |
int | have_ptrace_getregs |
int | have_ptrace_getfpxregs |
static const unsigned char | linux_syscall [] = { 0xcd, 0x80 } |
#define GETFPXREGS_SUPPLIES | ( | regno | ) | (I386_ST0_REGNUM <= (regno) && (regno) < I386_SSE_NUM_REGS) |
Definition at line 70 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::fetch_registers(), and i386_linux_nat_target::store_registers().
#define GETREGS_SUPPLIES | ( | regno | ) | ((0 <= (regno) && (regno) <= 15) || (regno) == I386_LINUX_ORIG_EAX_REGNUM) |
Definition at line 67 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::fetch_registers(), and i386_linux_nat_target::store_registers().
#define GETXSTATEREGS_SUPPLIES | ( | regno | ) | (I386_ST0_REGNUM <= (regno) && (regno) < I386_PKEYS_NUM_REGS) |
Definition at line 73 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::fetch_registers(), and i386_linux_nat_target::store_registers().
#define LINUX_SIGCONTEXT_EFLAGS_OFFSET (64) |
Definition at line 643 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::low_resume().
#define LINUX_SYSCALL_LEN (sizeof linux_syscall) |
Definition at line 627 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::low_resume().
#define LINUX_SYSCALL_REGNUM I386_EAX_REGNUM |
Definition at line 630 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::low_resume().
#define SYS_rt_sigreturn 0xad |
Definition at line 639 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::low_resume().
#define SYS_sigreturn 0x77 |
Definition at line 636 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::low_resume().
void _initialize_i386_linux_nat | ( | ) |
Definition at line 718 of file i386-linux-nat.c.
References add_inf_child_target(), linux_target, and the_i386_linux_nat_target.
|
static |
Definition at line 312 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::fetch_registers().
|
static |
Definition at line 444 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::fetch_registers().
|
static |
Definition at line 107 of file i386-linux-nat.c.
References reg_buffer::arch(), gdbarch_register_name(), get_ptrace_pid(), have_ptrace_getregs, i386_linux_gregset_reg_offset, regcache::ptid(), ptrace, and reg_buffer::raw_supply().
Referenced by i386_linux_nat_target::fetch_registers().
|
static |
Definition at line 248 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::fetch_registers().
|
static |
Definition at line 331 of file i386-linux-nat.c.
References reg_buffer::arch(), have_ptrace_getregset, i387_supply_xsave(), ptrace, PTRACE_GETREGSET, and i386_gdbarch_tdep::xsave_layout.
Referenced by i386_linux_nat_target::fetch_registers().
void fill_fpregset | ( | const struct regcache * | regcache, |
elf_fpregset_t * | fpregsetp, | ||
int | regno ) |
Definition at line 270 of file i386-linux-nat.c.
References i387_collect_fsave().
void fill_gregset | ( | const struct regcache * | regcache, |
elf_gregset_t * | gregsetp, | ||
int | regno ) |
Definition at line 184 of file i386-linux-nat.c.
References reg_buffer::arch(), gdbarch_num_regs(), i386_linux_gregset_reg_offset, I386_LINUX_ORIG_EAX_REGNUM, I386_NUM_GREGS, and reg_buffer::raw_collect().
ps_err_e ps_get_thread_area | ( | struct ps_prochandle * | ph, |
lwpid_t | lwpid, | ||
int | idx, | ||
void ** | base ) |
Definition at line 606 of file i386-linux-nat.c.
References x86_linux_get_thread_area().
|
static |
Definition at line 317 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::store_registers().
|
static |
Definition at line 450 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::store_registers().
|
static |
Definition at line 135 of file i386-linux-nat.c.
References reg_buffer::arch(), gdbarch_register_name(), get_ptrace_pid(), have_ptrace_getregs, i386_linux_gregset_reg_offset, regcache::ptid(), ptrace, and reg_buffer::raw_collect().
Referenced by i386_linux_nat_target::store_registers().
|
static |
Definition at line 249 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::store_registers().
|
static |
Definition at line 356 of file i386-linux-nat.c.
References reg_buffer::arch(), have_ptrace_getregset, i387_collect_xsave(), ptrace, PTRACE_GETREGSET, PTRACE_SETREGSET, and i386_gdbarch_tdep::xsave_layout.
Referenced by i386_linux_nat_target::store_registers().
void supply_fpregset | ( | struct regcache * | regcache, |
const elf_fpregset_t * | fpregsetp ) |
Definition at line 260 of file i386-linux-nat.c.
References i387_supply_fsave().
void supply_gregset | ( | struct regcache * | regcache, |
const elf_gregset_t * | gregsetp ) |
Definition at line 164 of file i386-linux-nat.c.
References reg_buffer::arch(), gdbarch_num_regs(), i386_linux_gregset_reg_offset, I386_LINUX_ORIG_EAX_REGNUM, I386_NUM_GREGS, and reg_buffer::raw_supply().
int have_ptrace_getfpxregs |
Definition at line 93 of file i386-linux-nat.c.
Referenced by x86_linux_nat_target::read_description().
int have_ptrace_getregs |
Definition at line 77 of file i386-linux-nat.c.
Referenced by fetch_register(), i386_linux_nat_target::fetch_registers(), store_register(), and i386_linux_nat_target::store_registers().
|
static |
Definition at line 625 of file i386-linux-nat.c.
Referenced by i386_linux_nat_target::low_resume().
|
static |
Definition at line 50 of file i386-linux-nat.c.
Referenced by _initialize_i386_linux_nat().