mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 22:07:58 +08:00
Partially revert 4be83cc2b28ea09aa8ff789839e6520df60836f8
The above commit did two things: 1) A number of functions were renamed and made nonstatic. 2) A number of other functions were renamed only. This commit reverts #1 but not #2. In addition, prototypes for functions now remade static have been removed from i386-dregs.h. gdb/ 2014-06-19 Gary Benson <gbenson@redhat.com> * i386-nat.c (i386_dr_show): Renamed to i386_show_dr and made static. All uses updated. (i386_dr_length_and_rw_bits): Renamed to i386_length_and_rw_bits and made static. All uses updated. (i386_dr_insert_aligned_watchpoint): Renamed to i386_insert_aligned_watchpoint and made static. All uses updated. (i386_dr_remove_aligned_watchpoint): Renamed to i386_remove_aligned_watchpoint and made static. All uses updated. (i386_dr_update_inferior_debug_regs): Renamed to i386_update_inferior_debug_regs and made static. All uses updated. * nat/i386-dregs.h (i386_dr_show): Removed. (i386_dr_length_and_rw_bits): Likewise. (i386_dr_insert_aligned_watchpoint): Likewise. (i386_dr_remove_aligned_watchpoint): Likewise. (i386_dr_update_inferior_debug_regs): Likewise. gdb/gdbserver/ 2014-06-19 Gary Benson <gbenson@redhat.com> * i386-low.c (i386_dr_show): Renamed to i386_show_dr and made static. All uses updated. (i386_dr_length_and_rw_bits): Renamed to i386_length_and_rw_bits and made static. All uses updated. (i386_dr_insert_aligned_watchpoint): Renamed to i386_insert_aligned_watchpoint and made static. All uses updated. (i386_dr_remove_aligned_watchpoint): Renamed to i386_remove_aligned_watchpoint and made static. All uses updated. (i386_dr_update_inferior_debug_regs): Renamed to i386_update_inferior_debug_regs and made static. All uses updated.
This commit is contained in:
@ -1,3 +1,25 @@
|
||||
2014-06-19 Gary Benson <gbenson@redhat.com>
|
||||
|
||||
* i386-nat.c (i386_dr_show): Renamed to
|
||||
i386_show_dr and made static. All uses updated.
|
||||
(i386_dr_length_and_rw_bits): Renamed to
|
||||
i386_length_and_rw_bits and made static.
|
||||
All uses updated.
|
||||
(i386_dr_insert_aligned_watchpoint): Renamed to
|
||||
i386_insert_aligned_watchpoint and made static.
|
||||
All uses updated.
|
||||
(i386_dr_remove_aligned_watchpoint): Renamed to
|
||||
i386_remove_aligned_watchpoint and made static.
|
||||
All uses updated.
|
||||
(i386_dr_update_inferior_debug_regs): Renamed to
|
||||
i386_update_inferior_debug_regs and made static.
|
||||
All uses updated.
|
||||
* nat/i386-dregs.h (i386_dr_show): Removed.
|
||||
(i386_dr_length_and_rw_bits): Likewise.
|
||||
(i386_dr_insert_aligned_watchpoint): Likewise.
|
||||
(i386_dr_remove_aligned_watchpoint): Likewise.
|
||||
(i386_dr_update_inferior_debug_regs): Likewise.
|
||||
|
||||
2014-06-19 Gary Benson <gbenson@redhat.com>
|
||||
|
||||
* configure.ac [AC_CHECK_FUNCS] <sigaltstack>: New check.
|
||||
|
@ -1,3 +1,20 @@
|
||||
2014-06-19 Gary Benson <gbenson@redhat.com>
|
||||
|
||||
* i386-low.c (i386_dr_show): Renamed to
|
||||
i386_show_dr and made static. All uses updated.
|
||||
(i386_dr_length_and_rw_bits): Renamed to
|
||||
i386_length_and_rw_bits and made static.
|
||||
All uses updated.
|
||||
(i386_dr_insert_aligned_watchpoint): Renamed to
|
||||
i386_insert_aligned_watchpoint and made static.
|
||||
All uses updated.
|
||||
(i386_dr_remove_aligned_watchpoint): Renamed to
|
||||
i386_remove_aligned_watchpoint and made static.
|
||||
All uses updated.
|
||||
(i386_dr_update_inferior_debug_regs): Renamed to
|
||||
i386_update_inferior_debug_regs and made static.
|
||||
All uses updated.
|
||||
|
||||
2014-06-18 Gary Benson <gbenson@redhat.com>
|
||||
|
||||
* i386-low.h (i386_dr_low_can_set_addr): New macro.
|
||||
|
@ -71,7 +71,7 @@
|
||||
|
||||
Currently, all watchpoint are locally enabled. If you need to
|
||||
enable them globally, read the comment which pertains to this in
|
||||
i386_dr_insert_aligned_watchpoint below. */
|
||||
i386_insert_aligned_watchpoint below. */
|
||||
#define DR_LOCAL_ENABLE_SHIFT 0 /* Extra shift to the local enable bit. */
|
||||
#define DR_GLOBAL_ENABLE_SHIFT 1 /* Extra shift to the global enable bit. */
|
||||
#define DR_ENABLE_SIZE 2 /* Two enable bits per debug register. */
|
||||
@ -163,8 +163,8 @@ i386_low_init_dregs (struct i386_debug_reg_state *state)
|
||||
|
||||
/* Print the values of the mirrored debug registers. */
|
||||
|
||||
void
|
||||
i386_dr_show (struct i386_debug_reg_state *state,
|
||||
static void
|
||||
i386_show_dr (struct i386_debug_reg_state *state,
|
||||
const char *func, CORE_ADDR addr,
|
||||
int len, enum target_hw_bp_type type)
|
||||
{
|
||||
@ -204,8 +204,8 @@ i386_dr_show (struct i386_debug_reg_state *state,
|
||||
region of LEN bytes for accesses of type TYPE. LEN is assumed to
|
||||
have the value of 1, 2, or 4. */
|
||||
|
||||
unsigned
|
||||
i386_dr_length_and_rw_bits (int len, enum target_hw_bp_type type)
|
||||
static unsigned
|
||||
i386_length_and_rw_bits (int len, enum target_hw_bp_type type)
|
||||
{
|
||||
unsigned rw;
|
||||
|
||||
@ -232,7 +232,7 @@ i386_dr_length_and_rw_bits (int len, enum target_hw_bp_type type)
|
||||
#endif
|
||||
default:
|
||||
internal_error (__FILE__, __LINE__, _("\
|
||||
Invalid hardware breakpoint type %d in i386_dr_length_and_rw_bits.\n"),
|
||||
Invalid hardware breakpoint type %d in i386_length_and_rw_bits.\n"),
|
||||
(int) type);
|
||||
}
|
||||
|
||||
@ -250,7 +250,7 @@ Invalid hardware breakpoint type %d in i386_dr_length_and_rw_bits.\n"),
|
||||
/* ELSE FALL THROUGH */
|
||||
default:
|
||||
internal_error (__FILE__, __LINE__, _("\
|
||||
Invalid hardware breakpoint length %d in i386_dr_length_and_rw_bits.\n"), len);
|
||||
Invalid hardware breakpoint length %d in i386_length_and_rw_bits.\n"), len);
|
||||
}
|
||||
}
|
||||
|
||||
@ -260,9 +260,9 @@ Invalid hardware breakpoint length %d in i386_dr_length_and_rw_bits.\n"), len);
|
||||
type of the region to be watched by this watchpoint. Return 0 on
|
||||
success, -1 on failure. */
|
||||
|
||||
int
|
||||
i386_dr_insert_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
CORE_ADDR addr, unsigned len_rw_bits)
|
||||
static int
|
||||
i386_insert_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
CORE_ADDR addr, unsigned len_rw_bits)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -320,9 +320,9 @@ i386_dr_insert_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
type of the region watched by this watchpoint. Return 0 on
|
||||
success, -1 on failure. */
|
||||
|
||||
int
|
||||
i386_dr_remove_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
CORE_ADDR addr, unsigned len_rw_bits)
|
||||
static int
|
||||
i386_remove_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
CORE_ADDR addr, unsigned len_rw_bits)
|
||||
{
|
||||
int i, retval = -1;
|
||||
|
||||
@ -392,12 +392,12 @@ i386_handle_nonaligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned len_rw = i386_dr_length_and_rw_bits (size, type);
|
||||
unsigned len_rw = i386_length_and_rw_bits (size, type);
|
||||
|
||||
if (what == WP_INSERT)
|
||||
retval = i386_dr_insert_aligned_watchpoint (state, addr, len_rw);
|
||||
retval = i386_insert_aligned_watchpoint (state, addr, len_rw);
|
||||
else if (what == WP_REMOVE)
|
||||
retval = i386_dr_remove_aligned_watchpoint (state, addr, len_rw);
|
||||
retval = i386_remove_aligned_watchpoint (state, addr, len_rw);
|
||||
else
|
||||
internal_error (__FILE__, __LINE__, _("\
|
||||
Invalid value %d of operation in i386_handle_nonaligned_watchpoint.\n"),
|
||||
@ -416,9 +416,9 @@ Invalid value %d of operation in i386_handle_nonaligned_watchpoint.\n"),
|
||||
/* Update the inferior debug registers state, in STATE, with the
|
||||
new debug registers state, in NEW_STATE. */
|
||||
|
||||
void
|
||||
i386_dr_update_inferior_debug_regs (struct i386_debug_reg_state *state,
|
||||
struct i386_debug_reg_state *new_state)
|
||||
static void
|
||||
i386_update_inferior_debug_regs (struct i386_debug_reg_state *state,
|
||||
struct i386_debug_reg_state *new_state)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -463,17 +463,17 @@ i386_dr_insert_watchpoint (struct i386_debug_reg_state *state,
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned len_rw = i386_dr_length_and_rw_bits (len, type);
|
||||
unsigned len_rw = i386_length_and_rw_bits (len, type);
|
||||
|
||||
retval = i386_dr_insert_aligned_watchpoint (&local_state,
|
||||
retval = i386_insert_aligned_watchpoint (&local_state,
|
||||
addr, len_rw);
|
||||
}
|
||||
|
||||
if (retval == 0)
|
||||
i386_dr_update_inferior_debug_regs (state, &local_state);
|
||||
i386_update_inferior_debug_regs (state, &local_state);
|
||||
|
||||
if (debug_hw_points)
|
||||
i386_dr_show (state, "insert_watchpoint", addr, len, type);
|
||||
i386_show_dr (state, "insert_watchpoint", addr, len, type);
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -502,17 +502,17 @@ i386_dr_remove_watchpoint (struct i386_debug_reg_state *state,
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned len_rw = i386_dr_length_and_rw_bits (len, type);
|
||||
unsigned len_rw = i386_length_and_rw_bits (len, type);
|
||||
|
||||
retval = i386_dr_remove_aligned_watchpoint (&local_state,
|
||||
retval = i386_remove_aligned_watchpoint (&local_state,
|
||||
addr, len_rw);
|
||||
}
|
||||
|
||||
if (retval == 0)
|
||||
i386_dr_update_inferior_debug_regs (state, &local_state);
|
||||
i386_update_inferior_debug_regs (state, &local_state);
|
||||
|
||||
if (debug_hw_points)
|
||||
i386_dr_show (state, "remove_watchpoint", addr, len, type);
|
||||
i386_show_dr (state, "remove_watchpoint", addr, len, type);
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -602,12 +602,12 @@ i386_dr_stopped_data_address (struct i386_debug_reg_state *state,
|
||||
addr = i386_dr_low_get_addr (i);
|
||||
rc = 1;
|
||||
if (debug_hw_points)
|
||||
i386_dr_show (state, "watchpoint_hit", addr, -1, hw_write);
|
||||
i386_show_dr (state, "watchpoint_hit", addr, -1, hw_write);
|
||||
}
|
||||
}
|
||||
|
||||
if (debug_hw_points && addr == 0)
|
||||
i386_dr_show (state, "stopped_data_addr", 0, 0, hw_write);
|
||||
i386_show_dr (state, "stopped_data_addr", 0, 0, hw_write);
|
||||
|
||||
if (rc)
|
||||
*addr_p = addr;
|
||||
|
@ -86,7 +86,7 @@ struct i386_dr_low_type i386_dr_low;
|
||||
|
||||
Currently, all watchpoint are locally enabled. If you need to
|
||||
enable them globally, read the comment which pertains to this in
|
||||
i386_dr_insert_aligned_watchpoint below. */
|
||||
i386_insert_aligned_watchpoint below. */
|
||||
#define DR_LOCAL_ENABLE_SHIFT 0 /* Extra shift to the local enable bit. */
|
||||
#define DR_GLOBAL_ENABLE_SHIFT 1 /* Extra shift to the global enable bit. */
|
||||
#define DR_ENABLE_SIZE 2 /* Two enable bits per debug register. */
|
||||
@ -269,8 +269,8 @@ i386_cleanup_dregs (void)
|
||||
|
||||
/* Print the values of the mirrored debug registers. */
|
||||
|
||||
void
|
||||
i386_dr_show (struct i386_debug_reg_state *state,
|
||||
static void
|
||||
i386_show_dr (struct i386_debug_reg_state *state,
|
||||
const char *func, CORE_ADDR addr,
|
||||
int len, enum target_hw_bp_type type)
|
||||
{
|
||||
@ -310,8 +310,8 @@ i386_dr_show (struct i386_debug_reg_state *state,
|
||||
region of LEN bytes for accesses of type TYPE. LEN is assumed to
|
||||
have the value of 1, 2, or 4. */
|
||||
|
||||
unsigned
|
||||
i386_dr_length_and_rw_bits (int len, enum target_hw_bp_type type)
|
||||
static unsigned
|
||||
i386_length_and_rw_bits (int len, enum target_hw_bp_type type)
|
||||
{
|
||||
unsigned rw;
|
||||
|
||||
@ -338,7 +338,7 @@ i386_dr_length_and_rw_bits (int len, enum target_hw_bp_type type)
|
||||
#endif
|
||||
default:
|
||||
internal_error (__FILE__, __LINE__, _("\
|
||||
Invalid hardware breakpoint type %d in i386_dr_length_and_rw_bits.\n"),
|
||||
Invalid hardware breakpoint type %d in i386_length_and_rw_bits.\n"),
|
||||
(int) type);
|
||||
}
|
||||
|
||||
@ -356,7 +356,7 @@ Invalid hardware breakpoint type %d in i386_dr_length_and_rw_bits.\n"),
|
||||
/* ELSE FALL THROUGH */
|
||||
default:
|
||||
internal_error (__FILE__, __LINE__, _("\
|
||||
Invalid hardware breakpoint length %d in i386_dr_length_and_rw_bits.\n"), len);
|
||||
Invalid hardware breakpoint length %d in i386_length_and_rw_bits.\n"), len);
|
||||
}
|
||||
}
|
||||
|
||||
@ -366,9 +366,9 @@ Invalid hardware breakpoint length %d in i386_dr_length_and_rw_bits.\n"), len);
|
||||
type of the region to be watched by this watchpoint. Return 0 on
|
||||
success, -1 on failure. */
|
||||
|
||||
int
|
||||
i386_dr_insert_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
CORE_ADDR addr, unsigned len_rw_bits)
|
||||
static int
|
||||
i386_insert_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
CORE_ADDR addr, unsigned len_rw_bits)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -426,9 +426,9 @@ i386_dr_insert_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
type of the region watched by this watchpoint. Return 0 on
|
||||
success, -1 on failure. */
|
||||
|
||||
int
|
||||
i386_dr_remove_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
CORE_ADDR addr, unsigned len_rw_bits)
|
||||
static int
|
||||
i386_remove_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
CORE_ADDR addr, unsigned len_rw_bits)
|
||||
{
|
||||
int i, retval = -1;
|
||||
|
||||
@ -498,12 +498,12 @@ i386_handle_nonaligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned len_rw = i386_dr_length_and_rw_bits (size, type);
|
||||
unsigned len_rw = i386_length_and_rw_bits (size, type);
|
||||
|
||||
if (what == WP_INSERT)
|
||||
retval = i386_dr_insert_aligned_watchpoint (state, addr, len_rw);
|
||||
retval = i386_insert_aligned_watchpoint (state, addr, len_rw);
|
||||
else if (what == WP_REMOVE)
|
||||
retval = i386_dr_remove_aligned_watchpoint (state, addr, len_rw);
|
||||
retval = i386_remove_aligned_watchpoint (state, addr, len_rw);
|
||||
else
|
||||
internal_error (__FILE__, __LINE__, _("\
|
||||
Invalid value %d of operation in i386_handle_nonaligned_watchpoint.\n"),
|
||||
@ -522,9 +522,9 @@ Invalid value %d of operation in i386_handle_nonaligned_watchpoint.\n"),
|
||||
/* Update the inferior debug registers state, in STATE, with the
|
||||
new debug registers state, in NEW_STATE. */
|
||||
|
||||
void
|
||||
i386_dr_update_inferior_debug_regs (struct i386_debug_reg_state *state,
|
||||
struct i386_debug_reg_state *new_state)
|
||||
static void
|
||||
i386_update_inferior_debug_regs (struct i386_debug_reg_state *state,
|
||||
struct i386_debug_reg_state *new_state)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -571,17 +571,17 @@ i386_insert_watchpoint (struct target_ops *self,
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned len_rw = i386_dr_length_and_rw_bits (len, type);
|
||||
unsigned len_rw = i386_length_and_rw_bits (len, type);
|
||||
|
||||
retval = i386_dr_insert_aligned_watchpoint (&local_state,
|
||||
retval = i386_insert_aligned_watchpoint (&local_state,
|
||||
addr, len_rw);
|
||||
}
|
||||
|
||||
if (retval == 0)
|
||||
i386_dr_update_inferior_debug_regs (state, &local_state);
|
||||
i386_update_inferior_debug_regs (state, &local_state);
|
||||
|
||||
if (debug_hw_points)
|
||||
i386_dr_show (state, "insert_watchpoint", addr, len, type);
|
||||
i386_show_dr (state, "insert_watchpoint", addr, len, type);
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -611,17 +611,17 @@ i386_remove_watchpoint (struct target_ops *self,
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned len_rw = i386_dr_length_and_rw_bits (len, type);
|
||||
unsigned len_rw = i386_length_and_rw_bits (len, type);
|
||||
|
||||
retval = i386_dr_remove_aligned_watchpoint (&local_state,
|
||||
retval = i386_remove_aligned_watchpoint (&local_state,
|
||||
addr, len_rw);
|
||||
}
|
||||
|
||||
if (retval == 0)
|
||||
i386_dr_update_inferior_debug_regs (state, &local_state);
|
||||
i386_update_inferior_debug_regs (state, &local_state);
|
||||
|
||||
if (debug_hw_points)
|
||||
i386_dr_show (state, "remove_watchpoint", addr, len, type);
|
||||
i386_show_dr (state, "remove_watchpoint", addr, len, type);
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -714,12 +714,12 @@ i386_stopped_data_address (struct target_ops *ops, CORE_ADDR *addr_p)
|
||||
addr = i386_dr_low_get_addr (i);
|
||||
rc = 1;
|
||||
if (debug_hw_points)
|
||||
i386_dr_show (state, "watchpoint_hit", addr, -1, hw_write);
|
||||
i386_show_dr (state, "watchpoint_hit", addr, -1, hw_write);
|
||||
}
|
||||
}
|
||||
|
||||
if (debug_hw_points && addr == 0)
|
||||
i386_dr_show (state, "stopped_data_addr", 0, 0, hw_write);
|
||||
i386_show_dr (state, "stopped_data_addr", 0, 0, hw_write);
|
||||
|
||||
if (rc)
|
||||
*addr_p = addr;
|
||||
@ -744,20 +744,19 @@ i386_insert_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch,
|
||||
{
|
||||
struct i386_debug_reg_state *state
|
||||
= i386_debug_reg_state (ptid_get_pid (inferior_ptid));
|
||||
unsigned len_rw = i386_dr_length_and_rw_bits (1, hw_execute);
|
||||
unsigned len_rw = i386_length_and_rw_bits (1, hw_execute);
|
||||
CORE_ADDR addr = bp_tgt->placed_address;
|
||||
/* Work on a local copy of the debug registers, and on success,
|
||||
commit the change back to the inferior. */
|
||||
struct i386_debug_reg_state local_state = *state;
|
||||
int retval = i386_dr_insert_aligned_watchpoint (&local_state,
|
||||
addr,
|
||||
len_rw) ? EBUSY : 0;
|
||||
int retval = i386_insert_aligned_watchpoint (&local_state,
|
||||
addr, len_rw) ? EBUSY : 0;
|
||||
|
||||
if (retval == 0)
|
||||
i386_dr_update_inferior_debug_regs (state, &local_state);
|
||||
i386_update_inferior_debug_regs (state, &local_state);
|
||||
|
||||
if (debug_hw_points)
|
||||
i386_dr_show (state, "insert_hwbp", addr, 1, hw_execute);
|
||||
i386_show_dr (state, "insert_hwbp", addr, 1, hw_execute);
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -771,19 +770,19 @@ i386_remove_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch,
|
||||
{
|
||||
struct i386_debug_reg_state *state
|
||||
= i386_debug_reg_state (ptid_get_pid (inferior_ptid));
|
||||
unsigned len_rw = i386_dr_length_and_rw_bits (1, hw_execute);
|
||||
unsigned len_rw = i386_length_and_rw_bits (1, hw_execute);
|
||||
CORE_ADDR addr = bp_tgt->placed_address;
|
||||
/* Work on a local copy of the debug registers, and on success,
|
||||
commit the change back to the inferior. */
|
||||
struct i386_debug_reg_state local_state = *state;
|
||||
int retval = i386_dr_remove_aligned_watchpoint (&local_state,
|
||||
addr, len_rw);
|
||||
int retval = i386_remove_aligned_watchpoint (&local_state,
|
||||
addr, len_rw);
|
||||
|
||||
if (retval == 0)
|
||||
i386_dr_update_inferior_debug_regs (state, &local_state);
|
||||
i386_update_inferior_debug_regs (state, &local_state);
|
||||
|
||||
if (debug_hw_points)
|
||||
i386_dr_show (state, "remove_hwbp", addr, 1, hw_execute);
|
||||
i386_show_dr (state, "remove_hwbp", addr, 1, hw_execute);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
@ -60,8 +60,6 @@ struct i386_debug_reg_state
|
||||
|
||||
/* A macro to loop over all debug registers. */
|
||||
#define ALL_DEBUG_REGISTERS(i) for (i = 0; i < DR_NADDR; i++)
|
||||
|
||||
/* High-level functions. */
|
||||
|
||||
/* Insert a watchpoint to watch a memory region which starts at
|
||||
address ADDR and whose length is LEN bytes. Watch memory accesses
|
||||
@ -93,46 +91,5 @@ extern int i386_dr_stopped_data_address (struct i386_debug_reg_state *state,
|
||||
/* Return true if the inferior has some watchpoint that triggered.
|
||||
Otherwise return false. */
|
||||
extern int i386_dr_stopped_by_watchpoint (struct i386_debug_reg_state *state);
|
||||
|
||||
/* Low-level functions. */
|
||||
|
||||
/* Print the values of the mirrored debug registers. */
|
||||
|
||||
extern void i386_dr_show (struct i386_debug_reg_state *state,
|
||||
const char *func, CORE_ADDR addr,
|
||||
int len, enum target_hw_bp_type type);
|
||||
|
||||
/* Return the value of a 4-bit field for DR7 suitable for watching a
|
||||
region of LEN bytes for accesses of type TYPE. LEN is assumed to
|
||||
have the value of 1, 2, or 4. */
|
||||
|
||||
extern unsigned i386_dr_length_and_rw_bits (int len,
|
||||
enum target_hw_bp_type type);
|
||||
|
||||
/* Insert a watchpoint at address ADDR, which is assumed to be aligned
|
||||
according to the length of the region to watch. LEN_RW_BITS is the
|
||||
value of the bits from DR7 which describes the length and access
|
||||
type of the region to be watched by this watchpoint. Return 0 on
|
||||
success, -1 on failure. */
|
||||
|
||||
extern int i386_dr_insert_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
CORE_ADDR addr,
|
||||
unsigned len_rw_bits);
|
||||
|
||||
/* Remove a watchpoint at address ADDR, which is assumed to be aligned
|
||||
according to the length of the region to watch. LEN_RW_BITS is the
|
||||
value of the bits from DR7 which describes the length and access
|
||||
type of the region watched by this watchpoint. Return 0 on
|
||||
success, -1 on failure. */
|
||||
|
||||
extern int i386_dr_remove_aligned_watchpoint (struct i386_debug_reg_state *state,
|
||||
CORE_ADDR addr,
|
||||
unsigned len_rw_bits);
|
||||
|
||||
/* Update the inferior debug registers state, in STATE, with the
|
||||
new debug registers state, in NEW_STATE. */
|
||||
|
||||
extern void i386_dr_update_inferior_debug_regs (struct i386_debug_reg_state *state,
|
||||
struct i386_debug_reg_state *new_state);
|
||||
|
||||
#endif /* I386_DREGS_H */
|
||||
|
Reference in New Issue
Block a user