GDB (xrefs)
Classes | Macros | Typedefs | Functions | Variables
/tmp/gdb-7.10/gdb/amd64-linux-nat.c File Reference
#include "defs.h"
#include "inferior.h"
#include "regcache.h"
#include "elf/common.h"
#include <sys/uio.h>
#include <sys/ptrace.h>
#include <asm/prctl.h>
#include <sys/reg.h>
#include "gregset.h"
#include "gdb_proc_service.h"
#include "amd64-nat.h"
#include "linux-nat.h"
#include "amd64-tdep.h"
#include "amd64-linux-tdep.h"
#include "i386-linux-tdep.h"
#include "x86-xstate.h"
#include "x86-linux-nat.h"
#include "nat/linux-ptrace.h"

Go to the source code of this file.

Classes

struct  compat_timeval
 
union  compat_sigval
 
struct  compat_siginfo
 
struct  compat_x32_clock
 
struct  compat_x32_siginfo
 

Macros

#define PTRACE_ARCH_PRCTL   30
 
#define cpt_si_pid   _sifields._kill._pid
 
#define cpt_si_uid   _sifields._kill._uid
 
#define cpt_si_timerid   _sifields._timer._tid
 
#define cpt_si_overrun   _sifields._timer._overrun
 
#define cpt_si_status   _sifields._sigchld._status
 
#define cpt_si_utime   _sifields._sigchld._utime
 
#define cpt_si_stime   _sifields._sigchld._stime
 
#define cpt_si_ptr   _sifields._rt._sigval.sival_ptr
 
#define cpt_si_addr   _sifields._sigfault._addr
 
#define cpt_si_band   _sifields._sigpoll._band
 
#define cpt_si_fd   _sifields._sigpoll._fd
 
#define si_timerid   si_timer1
 
#define si_overrun   si_timer2
 

Typedefs

typedef int compat_int_t
 
typedef unsigned int compat_uptr_t
 
typedef int compat_time_t
 
typedef int compat_timer_t
 
typedef int compat_clock_t
 
typedef union compat_sigval compat_sigval_t
 
typedef struct compat_siginfo compat_siginfo_t
 
typedef struct compat_x32_clock compat_x32_clock_t
 
typedef struct compat_x32_siginfo compat_x32_siginfo_t
 

Functions

void supply_gregset (struct regcache *regcache, const elf_gregset_t *gregsetp)
 
void fill_gregset (const struct regcache *regcache, elf_gregset_t *gregsetp, int regnum)
 
void supply_fpregset (struct regcache *regcache, const elf_fpregset_t *fpregsetp)
 
void fill_fpregset (const struct regcache *regcache, elf_fpregset_t *fpregsetp, int regnum)
 
static void amd64_linux_fetch_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regnum)
 
static void amd64_linux_store_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regnum)
 
ps_err_e ps_get_thread_area (const struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
 
static void compat_siginfo_from_siginfo (compat_siginfo_t *to, siginfo_t *from)
 
static void siginfo_from_compat_siginfo (siginfo_t *to, compat_siginfo_t *from)
 
static void compat_x32_siginfo_from_siginfo (compat_x32_siginfo_t *to, siginfo_t *from)
 
static void siginfo_from_compat_x32_siginfo (siginfo_t *to, compat_x32_siginfo_t *from)
 
static int amd64_linux_siginfo_fixup (siginfo_t *native, gdb_byte *inf, int direction)
 
void _initialize_amd64_linux_nat (void)
 

Variables

static int amd64_linux_gregset32_reg_offset []
 

Macro Definition Documentation

#define cpt_si_addr   _sifields._sigfault._addr

Definition at line 483 of file amd64-linux-nat.c.

#define cpt_si_band   _sifields._sigpoll._band

Definition at line 484 of file amd64-linux-nat.c.

#define cpt_si_fd   _sifields._sigpoll._fd

Definition at line 485 of file amd64-linux-nat.c.

#define cpt_si_overrun   _sifields._timer._overrun

Definition at line 478 of file amd64-linux-nat.c.

#define cpt_si_pid   _sifields._kill._pid

Definition at line 475 of file amd64-linux-nat.c.

#define cpt_si_ptr   _sifields._rt._sigval.sival_ptr

Definition at line 482 of file amd64-linux-nat.c.

#define cpt_si_status   _sifields._sigchld._status

Definition at line 479 of file amd64-linux-nat.c.

#define cpt_si_stime   _sifields._sigchld._stime

Definition at line 481 of file amd64-linux-nat.c.

#define cpt_si_timerid   _sifields._timer._tid

Definition at line 477 of file amd64-linux-nat.c.

#define cpt_si_uid   _sifields._kill._uid

Definition at line 476 of file amd64-linux-nat.c.

#define cpt_si_utime   _sifields._sigchld._utime

Definition at line 480 of file amd64-linux-nat.c.

#define PTRACE_ARCH_PRCTL   30

Referenced by ps_get_thread_area().

#define si_overrun   si_timer2

Definition at line 493 of file amd64-linux-nat.c.

#define si_timerid   si_timer1

Definition at line 490 of file amd64-linux-nat.c.

Typedef Documentation

Definition at line 338 of file amd64-linux-nat.c.

typedef int compat_int_t

Definition at line 333 of file amd64-linux-nat.c.

typedef int compat_time_t

Definition at line 336 of file amd64-linux-nat.c.

Definition at line 337 of file amd64-linux-nat.c.

typedef unsigned int compat_uptr_t

Definition at line 334 of file amd64-linux-nat.c.

Function Documentation

void _initialize_amd64_linux_nat ( void  )
static void amd64_linux_fetch_inferior_registers ( struct target_ops ops,
struct regcache regcache,
int  regnum 
)
static
static int amd64_linux_siginfo_fixup ( siginfo_t *  native,
gdb_byte inf,
int  direction 
)
static
static void amd64_linux_store_inferior_registers ( struct target_ops ops,
struct regcache regcache,
int  regnum 
)
static
static void compat_siginfo_from_siginfo ( compat_siginfo_t to,
siginfo_t *  from 
)
static
static void compat_x32_siginfo_from_siginfo ( compat_x32_siginfo_t to,
siginfo_t *  from 
)
static
void fill_fpregset ( const struct regcache regcache,
elf_fpregset_t *  fpregsetp,
int  regnum 
)

Definition at line 112 of file amd64-linux-nat.c.

References amd64_collect_fxsave().

void fill_gregset ( const struct regcache regcache,
elf_gregset_t *  gregsetp,
int  regnum 
)

Definition at line 90 of file amd64-linux-nat.c.

References amd64_collect_native_gregset().

ps_err_e ps_get_thread_area ( const struct ps_prochandle ph,
lwpid_t  lwpid,
int  idx,
void **  base 
)
static void siginfo_from_compat_siginfo ( siginfo_t *  to,
compat_siginfo_t from 
)
static
static void siginfo_from_compat_x32_siginfo ( siginfo_t *  to,
compat_x32_siginfo_t from 
)
static
void supply_fpregset ( struct regcache regcache,
const elf_fpregset_t *  fpregsetp 
)

Definition at line 102 of file amd64-linux-nat.c.

References amd64_supply_fxsave().

void supply_gregset ( struct regcache regcache,
const elf_gregset_t *  gregsetp 
)

Definition at line 80 of file amd64-linux-nat.c.

References amd64_supply_native_gregset().

Variable Documentation

int amd64_linux_gregset32_reg_offset[]
static
Initial value:
=
{
RAX * 8, RCX * 8,
RDX * 8, RBX * 8,
RSP * 8, RBP * 8,
RSI * 8, RDI * 8,
RIP * 8, EFLAGS * 8,
CS * 8, SS * 8,
DS * 8, ES * 8,
FS * 8, GS * 8,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1,
-1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
ORIG_RAX * 8
}

Definition at line 51 of file amd64-linux-nat.c.

Referenced by _initialize_amd64_linux_nat().