GDB (xrefs)
Classes | Macros | Functions | Variables
/tmp/gdb-8.1/gdb/aarch64-linux-nat.c File Reference
#include "defs.h"
#include "inferior.h"
#include "gdbcore.h"
#include "regcache.h"
#include "linux-nat.h"
#include "target-descriptions.h"
#include "auxv.h"
#include "gdbcmd.h"
#include "aarch64-tdep.h"
#include "aarch64-linux-tdep.h"
#include "aarch32-linux-nat.h"
#include "nat/aarch64-linux.h"
#include "nat/aarch64-linux-hw-point.h"
#include "elf/external.h"
#include "elf/common.h"
#include "nat/gdb_ptrace.h"
#include <sys/utsname.h>
#include <asm/ptrace.h>
#include "gregset.h"
#include "gdb_proc_service.h"

Go to the source code of this file.

Classes

struct  aarch64_process_info
 

Macros

#define TRAP_HWBKPT   0x0004
 

Functions

static struct aarch64_process_infoaarch64_find_process_pid (pid_t pid)
 
static struct aarch64_process_infoaarch64_add_process (pid_t pid)
 
static struct aarch64_process_infoaarch64_process_info_get (pid_t pid)
 
static void aarch64_forget_process (pid_t pid)
 
struct aarch64_debug_reg_stateaarch64_get_debug_reg_state (pid_t pid)
 
static void fetch_gregs_from_thread (struct regcache *regcache)
 
static void store_gregs_to_thread (const struct regcache *regcache)
 
static void fetch_fpregs_from_thread (struct regcache *regcache)
 
static void store_fpregs_to_thread (const struct regcache *regcache)
 
static void aarch64_linux_fetch_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno)
 
static void aarch64_linux_store_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno)
 
void fill_gregset (const struct regcache *regcache, gdb_gregset_t *gregsetp, int regno)
 
void supply_gregset (struct regcache *regcache, const gdb_gregset_t *gregsetp)
 
void fill_fpregset (const struct regcache *regcache, gdb_fpregset_t *fpregsetp, int regno)
 
void supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *fpregsetp)
 
static void aarch64_linux_new_fork (struct lwp_info *parent, pid_t child_pid)
 
ps_err_e ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
 
static void aarch64_linux_child_post_startup_inferior (struct target_ops *self, ptid_t ptid)
 
static const struct target_descaarch64_linux_read_description (struct target_ops *ops)
 
static int aarch64_linux_siginfo_fixup (siginfo_t *native, gdb_byte *inf, int direction)
 
static int aarch64_linux_can_use_hw_breakpoint (struct target_ops *self, enum bptype type, int cnt, int othertype)
 
static int aarch64_linux_insert_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
 
static int aarch64_linux_remove_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
 
static int aarch64_linux_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond)
 
static int aarch64_linux_remove_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond)
 
static int aarch64_linux_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR addr, int len)
 
static int aarch64_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
 
static int aarch64_linux_stopped_by_watchpoint (struct target_ops *ops)
 
static int aarch64_linux_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr, CORE_ADDR start, int length)
 
static int aarch64_linux_can_do_single_step (struct target_ops *target)
 
static void add_show_debug_regs_command (void)
 
void _initialize_aarch64_linux_nat (void)
 

Variables

static struct aarch64_process_infoaarch64_process_list = NULL
 
static void(* super_post_startup_inferior )(struct target_ops *self, ptid_t ptid)
 
struct target_desctdesc_arm_with_neon
 

Macro Definition Documentation

◆ TRAP_HWBKPT

#define TRAP_HWBKPT   0x0004

Definition at line 49 of file aarch64-linux-nat.c.

Referenced by aarch64_linux_stopped_data_address().

Function Documentation

◆ _initialize_aarch64_linux_nat()

void _initialize_aarch64_linux_nat ( void  )

Definition at line 805 of file aarch64-linux-nat.c.

References aarch64_forget_process(), aarch64_linux_can_do_single_step(), aarch64_linux_can_use_hw_breakpoint(), aarch64_linux_child_post_startup_inferior(), aarch64_linux_delete_thread(), aarch64_linux_fetch_inferior_registers(), aarch64_linux_insert_hw_breakpoint(), aarch64_linux_insert_watchpoint(), aarch64_linux_new_fork(), aarch64_linux_new_thread(), aarch64_linux_prepare_to_resume(), aarch64_linux_read_description(), aarch64_linux_region_ok_for_hw_watchpoint(), aarch64_linux_remove_hw_breakpoint(), aarch64_linux_remove_watchpoint(), aarch64_linux_siginfo_fixup(), aarch64_linux_stopped_by_watchpoint(), aarch64_linux_stopped_data_address(), aarch64_linux_store_inferior_registers(), aarch64_linux_watchpoint_addr_within_range(), add_show_debug_regs_command(), linux_nat_add_target(), linux_nat_set_delete_thread(), linux_nat_set_forget_process(), linux_nat_set_new_fork(), linux_nat_set_new_thread(), linux_nat_set_prepare_to_resume(), linux_nat_set_siginfo_fixup(), linux_target(), super_post_startup_inferior, target_ops::to_can_do_single_step, target_ops::to_can_use_hw_breakpoint, target_ops::to_fetch_registers, target_ops::to_insert_hw_breakpoint, target_ops::to_insert_watchpoint, target_ops::to_post_startup_inferior, target_ops::to_read_description, target_ops::to_region_ok_for_hw_watchpoint, target_ops::to_remove_hw_breakpoint, target_ops::to_remove_watchpoint, target_ops::to_stopped_by_watchpoint, target_ops::to_stopped_data_address, target_ops::to_store_registers, and target_ops::to_watchpoint_addr_within_range.

◆ aarch64_add_process()

static struct aarch64_process_info* aarch64_add_process ( pid_t  pid)
static

Definition at line 89 of file aarch64-linux-nat.c.

References aarch64_process_list, proc::next, pid, and XCNEW.

Referenced by aarch64_process_info_get().

◆ aarch64_find_process_pid()

static struct aarch64_process_info* aarch64_find_process_pid ( pid_t  pid)
static

Definition at line 74 of file aarch64-linux-nat.c.

References aarch64_process_list, proc::next, and pid.

Referenced by aarch64_process_info_get().

◆ aarch64_forget_process()

static void aarch64_forget_process ( pid_t  pid)
static

◆ aarch64_get_debug_reg_state()

struct aarch64_debug_reg_state* aarch64_get_debug_reg_state ( pid_t  pid)

◆ aarch64_linux_can_do_single_step()

static int aarch64_linux_can_do_single_step ( struct target_ops target)
static

Definition at line 778 of file aarch64-linux-nat.c.

Referenced by _initialize_aarch64_linux_nat().

◆ aarch64_linux_can_use_hw_breakpoint()

static int aarch64_linux_can_use_hw_breakpoint ( struct target_ops self,
enum bptype  type,
int  cnt,
int  othertype 
)
static

◆ aarch64_linux_child_post_startup_inferior()

static void aarch64_linux_child_post_startup_inferior ( struct target_ops self,
ptid_t  ptid 
)
static

◆ aarch64_linux_fetch_inferior_registers()

static void aarch64_linux_fetch_inferior_registers ( struct target_ops ops,
struct regcache regcache,
int  regno 
)
static

◆ aarch64_linux_insert_hw_breakpoint()

static int aarch64_linux_insert_hw_breakpoint ( struct target_ops self,
struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
)
static

◆ aarch64_linux_insert_watchpoint()

static int aarch64_linux_insert_watchpoint ( struct target_ops self,
CORE_ADDR  addr,
int  len,
enum target_hw_bp_type  type,
struct expression cond 
)
static

◆ aarch64_linux_new_fork()

static void aarch64_linux_new_fork ( struct lwp_info parent,
pid_t  child_pid 
)
static

◆ aarch64_linux_read_description()

static const struct target_desc* aarch64_linux_read_description ( struct target_ops ops)
static

◆ aarch64_linux_region_ok_for_hw_watchpoint()

static int aarch64_linux_region_ok_for_hw_watchpoint ( struct target_ops self,
CORE_ADDR  addr,
int  len 
)
static

◆ aarch64_linux_remove_hw_breakpoint()

static int aarch64_linux_remove_hw_breakpoint ( struct target_ops self,
struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
)
static

◆ aarch64_linux_remove_watchpoint()

static int aarch64_linux_remove_watchpoint ( struct target_ops self,
CORE_ADDR  addr,
int  len,
enum target_hw_bp_type  type,
struct expression cond 
)
static

◆ aarch64_linux_siginfo_fixup()

static int aarch64_linux_siginfo_fixup ( siginfo_t *  native,
gdb_byte inf,
int  direction 
)
static

◆ aarch64_linux_stopped_by_watchpoint()

static int aarch64_linux_stopped_by_watchpoint ( struct target_ops ops)
static

Definition at line 758 of file aarch64-linux-nat.c.

References aarch64_linux_stopped_data_address().

Referenced by _initialize_aarch64_linux_nat().

◆ aarch64_linux_stopped_data_address()

static int aarch64_linux_stopped_data_address ( struct target_ops target,
CORE_ADDR addr_p 
)
static

◆ aarch64_linux_store_inferior_registers()

static void aarch64_linux_store_inferior_registers ( struct target_ops ops,
struct regcache regcache,
int  regno 
)
static

◆ aarch64_linux_watchpoint_addr_within_range()

static int aarch64_linux_watchpoint_addr_within_range ( struct target_ops target,
CORE_ADDR  addr,
CORE_ADDR  start,
int  length 
)
static

Definition at line 768 of file aarch64-linux-nat.c.

Referenced by _initialize_aarch64_linux_nat().

◆ aarch64_process_info_get()

static struct aarch64_process_info* aarch64_process_info_get ( pid_t  pid)
static

Definition at line 106 of file aarch64-linux-nat.c.

References aarch64_add_process(), aarch64_find_process_pid(), and pid.

Referenced by aarch64_get_debug_reg_state().

◆ add_show_debug_regs_command()

static void add_show_debug_regs_command ( void  )
static

◆ fetch_fpregs_from_thread()

static void fetch_fpregs_from_thread ( struct regcache regcache)
static

◆ fetch_gregs_from_thread()

static void fetch_gregs_from_thread ( struct regcache regcache)
static

◆ fill_fpregset()

void fill_fpregset ( const struct regcache regcache,
gdb_fpregset_t fpregsetp,
int  regno 
)

◆ fill_gregset()

void fill_gregset ( const struct regcache regcache,
gdb_gregset_t gregsetp,
int  regno 
)

◆ ps_get_thread_area()

ps_err_e ps_get_thread_area ( struct ps_prochandle ph,
lwpid_t  lwpid,
int  idx,
void **  base 
)

Definition at line 460 of file aarch64-linux-nat.c.

◆ store_fpregs_to_thread()

static void store_fpregs_to_thread ( const struct regcache regcache)
static

◆ store_gregs_to_thread()

static void store_gregs_to_thread ( const struct regcache regcache)
static

◆ supply_fpregset()

void supply_fpregset ( struct regcache regcache,
const gdb_fpregset_t fpregsetp 
)

◆ supply_gregset()

void supply_gregset ( struct regcache regcache,
const gdb_gregset_t gregsetp 
)

Variable Documentation

◆ aarch64_process_list

struct aarch64_process_info* aarch64_process_list = NULL
static

◆ super_post_startup_inferior

void(* super_post_startup_inferior) (struct target_ops *self, ptid_t ptid)
static

◆ tdesc_arm_with_neon

struct target_desc* tdesc_arm_with_neon