GDB (xrefs)
Loading...
Searching...
No Matches
Macros | Functions | Variables
aarch64-hw-point.c File Reference
#include "gdbsupport/common-defs.h"
#include "gdbsupport/break-common.h"
#include "gdbsupport/common-regcache.h"
#include "aarch64-hw-point.h"

Go to the source code of this file.

Macros

#define kernel_supports_any_contiguous_range   true
 

Functions

unsigned int aarch64_watchpoint_offset (unsigned int ctrl)
 
unsigned int aarch64_watchpoint_length (unsigned int ctrl)
 
static unsigned int aarch64_point_encode_ctrl_reg (enum target_hw_bp_type type, int offset, int len)
 
static int aarch64_point_is_aligned (ptid_t ptid, int is_watchpoint, CORE_ADDR addr, int len)
 
static void aarch64_align_watchpoint (CORE_ADDR addr, int len, CORE_ADDR *aligned_addr_p, int *aligned_offset_p, int *aligned_len_p, CORE_ADDR *next_addr_p, int *next_len_p, CORE_ADDR *next_addr_orig_p)
 
static int aarch64_dr_state_insert_one_point (ptid_t ptid, struct aarch64_debug_reg_state *state, enum target_hw_bp_type type, CORE_ADDR addr, int offset, int len, CORE_ADDR addr_orig)
 
static int aarch64_dr_state_remove_one_point (ptid_t ptid, struct aarch64_debug_reg_state *state, enum target_hw_bp_type type, CORE_ADDR addr, int offset, int len, CORE_ADDR addr_orig)
 
int aarch64_handle_breakpoint (enum target_hw_bp_type type, CORE_ADDR addr, int len, int is_insert, ptid_t ptid, struct aarch64_debug_reg_state *state)
 
static int aarch64_handle_aligned_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr, int len, int is_insert, ptid_t ptid, struct aarch64_debug_reg_state *state)
 
static int aarch64_handle_unaligned_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr, int len, int is_insert, ptid_t ptid, struct aarch64_debug_reg_state *state)
 
int aarch64_handle_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr, int len, int is_insert, ptid_t ptid, struct aarch64_debug_reg_state *state)
 
bool aarch64_any_set_debug_regs_state (aarch64_debug_reg_state *state, bool watchpoint)
 
void aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state, const char *func, CORE_ADDR addr, int len, enum target_hw_bp_type type)
 
int aarch64_region_ok_for_watchpoint (CORE_ADDR addr, int len)
 

Variables

int aarch64_num_bp_regs
 
int aarch64_num_wp_regs
 

Macro Definition Documentation

◆ kernel_supports_any_contiguous_range

#define kernel_supports_any_contiguous_range   true

Function Documentation

◆ aarch64_align_watchpoint()

static void aarch64_align_watchpoint ( CORE_ADDR addr,
int len,
CORE_ADDR * aligned_addr_p,
int * aligned_offset_p,
int * aligned_len_p,
CORE_ADDR * next_addr_p,
int * next_len_p,
CORE_ADDR * next_addr_orig_p )
static

◆ aarch64_any_set_debug_regs_state()

bool aarch64_any_set_debug_regs_state ( aarch64_debug_reg_state * state,
bool watchpoint )

◆ aarch64_dr_state_insert_one_point()

static int aarch64_dr_state_insert_one_point ( ptid_t ptid,
struct aarch64_debug_reg_state * state,
enum target_hw_bp_type type,
CORE_ADDR addr,
int offset,
int len,
CORE_ADDR addr_orig )
static

◆ aarch64_dr_state_remove_one_point()

static int aarch64_dr_state_remove_one_point ( ptid_t ptid,
struct aarch64_debug_reg_state * state,
enum target_hw_bp_type type,
CORE_ADDR addr,
int offset,
int len,
CORE_ADDR addr_orig )
static

◆ aarch64_handle_aligned_watchpoint()

static int aarch64_handle_aligned_watchpoint ( enum target_hw_bp_type type,
CORE_ADDR addr,
int len,
int is_insert,
ptid_t ptid,
struct aarch64_debug_reg_state * state )
static

◆ aarch64_handle_breakpoint()

int aarch64_handle_breakpoint ( enum target_hw_bp_type type,
CORE_ADDR addr,
int len,
int is_insert,
ptid_t ptid,
struct aarch64_debug_reg_state * state )

◆ aarch64_handle_unaligned_watchpoint()

static int aarch64_handle_unaligned_watchpoint ( enum target_hw_bp_type type,
CORE_ADDR addr,
int len,
int is_insert,
ptid_t ptid,
struct aarch64_debug_reg_state * state )
static

◆ aarch64_handle_watchpoint()

int aarch64_handle_watchpoint ( enum target_hw_bp_type type,
CORE_ADDR addr,
int len,
int is_insert,
ptid_t ptid,
struct aarch64_debug_reg_state * state )

◆ aarch64_point_encode_ctrl_reg()

static unsigned int aarch64_point_encode_ctrl_reg ( enum target_hw_bp_type type,
int offset,
int len )
static

◆ aarch64_point_is_aligned()

static int aarch64_point_is_aligned ( ptid_t ptid,
int is_watchpoint,
CORE_ADDR addr,
int len )
static

◆ aarch64_region_ok_for_watchpoint()

int aarch64_region_ok_for_watchpoint ( CORE_ADDR addr,
int len )

◆ aarch64_show_debug_reg_state()

void aarch64_show_debug_reg_state ( struct aarch64_debug_reg_state * state,
const char * func,
CORE_ADDR addr,
int len,
enum target_hw_bp_type type )

◆ aarch64_watchpoint_length()

unsigned int aarch64_watchpoint_length ( unsigned int ctrl)

Definition at line 57 of file aarch64-hw-point.c.

References aarch64_watchpoint_offset(), and DR_CONTROL_MASK.

Referenced by aarch64_stopped_data_address().

◆ aarch64_watchpoint_offset()

unsigned int aarch64_watchpoint_offset ( unsigned int ctrl)

Definition at line 39 of file aarch64-hw-point.c.

References DR_CONTROL_MASK.

Referenced by aarch64_stopped_data_address(), and aarch64_watchpoint_length().

Variable Documentation

◆ aarch64_num_bp_regs

int aarch64_num_bp_regs

◆ aarch64_num_wp_regs

int aarch64_num_wp_regs