GDBserver

Classes | Macros | Functions | Variables
x86-dregs.h File Reference
`#include "break-common.h"`

Go to the source code of this file.

## Classes
struct | x86_dr_low_type
struct | x86_debug_reg_state

## Macros
#define | DR_FIRSTADDR 0
#define | DR_LASTADDR 3
#define | DR_NADDR 4 /* The number of debug address registers. */
#define | DR_STATUS 6 /* Index of debug status register (DR6). */
#define | DR_CONTROL 7 /* Index of debug control register (DR7). */
#define | ALL_DEBUG_ADDRESS_REGISTERS(i) for (i = DR_FIRSTADDR; i <= DR_LASTADDR; i++)

## Functions
struct x86_debug_reg_state * | x86_debug_reg_state (pid_t pid)
int | x86_dr_insert_watchpoint (struct x86_debug_reg_state *state, enum target_hw_bp_type type, CORE_ADDR addr, int len)
int | x86_dr_remove_watchpoint (struct x86_debug_reg_state *state, enum target_hw_bp_type type, CORE_ADDR addr, int len)
int | x86_dr_region_ok_for_watchpoint (struct x86_debug_reg_state *state, CORE_ADDR addr, int len)
int | x86_dr_stopped_data_address (struct x86_debug_reg_state *state, CORE_ADDR *addr_p)
int | x86_dr_stopped_by_watchpoint (struct x86_debug_reg_state *state)

## Variables
struct x86_dr_low_type | x86_dr_low

## Macro Definition Documentation

## ◆ ALL_DEBUG_ADDRESS_REGISTERS

#define ALL_DEBUG_ADDRESS_REGISTERS | ( |  | i | ) | for (i = DR_FIRSTADDR; i <= DR_LASTADDR; i++)

Definition at line 92 of file x86-dregs.h.

Referenced by x86_dr_stopped_data_address(), x86_insert_aligned_watchpoint(), x86_linux_update_debug_registers(), x86_low_init_dregs(), x86_remove_aligned_watchpoint(), x86_show_dr(), and x86_update_inferior_debug_regs().

## ◆ DR_CONTROL

#define DR_CONTROL 7 /* Index of debug control register (DR7). */

Definition at line 73 of file x86-dregs.h.

Referenced by x86_linux_dr_get_control(), and x86_linux_update_debug_registers().

## ◆ DR_FIRSTADDR

#define DR_FIRSTADDR 0

Definition at line 69 of file x86-dregs.h.

Referenced by x86_dr_low_get_addr(), x86_dr_low_set_addr(), x86_linux_dr_get_addr(), and x86_linux_dr_set_addr().

## ◆ DR_LASTADDR

#define DR_LASTADDR 3

Definition at line 70 of file x86-dregs.h.

Referenced by x86_dr_low_get_addr(), x86_dr_low_set_addr(), x86_linux_dr_get_addr(), and x86_linux_dr_set_addr().

## ◆ DR_NADDR

#define DR_NADDR 4 /* The number of debug address registers. */

Definition at line 71 of file x86-dregs.h.

Referenced by x86_dr_region_ok_for_watchpoint(), and x86_insert_aligned_watchpoint().

## ◆ DR_STATUS

#define DR_STATUS 6 /* Index of debug status register (DR6). */

Definition at line 72 of file x86-dregs.h.

Referenced by x86_linux_dr_get_status(), and x86_linux_update_debug_registers().

## Function Documentation

## ◆ x86_debug_reg_state()

struct x86_debug_reg_state* x86_debug_reg_state | ( | pid_t | pid | ) |

Definition at line 659 of file linux-x86-low.c.

References process_info_private::arch_private, arch_process_info::debug_reg_state, find_process_pid(), process_info::pid, and process_info::priv.

Referenced by x86_linux_update_debug_registers().

## ◆ x86_dr_insert_watchpoint()

int x86_dr_insert_watchpoint | ( | struct x86_debug_reg_state * | state,
|  | enum target_hw_bp_type | type,
|  | CORE_ADDR | addr,
|  | int | len
| ) |  |

Definition at line 470 of file x86-dregs.c.

References hw_read, show_debug_regs, TARGET_HAS_DR_LEN_8, WP_INSERT, x86_handle_nonaligned_watchpoint(), x86_insert_aligned_watchpoint(), x86_length_and_rw_bits(), x86_show_dr(), and x86_update_inferior_debug_regs().

Referenced by i386_insert_point(), and x86_insert_point().

## ◆ x86_dr_region_ok_for_watchpoint()

int x86_dr_region_ok_for_watchpoint | ( | struct x86_debug_reg_state * | state,
|  | CORE_ADDR | addr,
|  | int | len
| ) |  |

Definition at line 550 of file x86-dregs.c.

References DR_NADDR, hw_write, WP_COUNT, and x86_handle_nonaligned_watchpoint().

## ◆ x86_dr_remove_watchpoint()

int x86_dr_remove_watchpoint | ( | struct x86_debug_reg_state * | state,
|  | enum target_hw_bp_type | type,
|  | CORE_ADDR | addr,
|  | int | len
| ) |  |

Definition at line 512 of file x86-dregs.c.

References show_debug_regs, TARGET_HAS_DR_LEN_8, WP_REMOVE, x86_handle_nonaligned_watchpoint(), x86_length_and_rw_bits(), x86_remove_aligned_watchpoint(), x86_show_dr(), and x86_update_inferior_debug_regs().

Referenced by i386_remove_point(), and x86_remove_point().

## ◆ x86_dr_stopped_by_watchpoint()

int x86_dr_stopped_by_watchpoint | ( | struct x86_debug_reg_state * | state | ) |

Definition at line 647 of file x86-dregs.c.

References x86_dr_stopped_data_address().

Referenced by x86_stopped_by_watchpoint().

## ◆ x86_dr_stopped_data_address()

int x86_dr_stopped_data_address | ( | struct x86_debug_reg_state * | state,
|  | CORE_ADDR * | addr_p
| ) |  |

Definition at line 567 of file x86-dregs.c.

References ALL_DEBUG_ADDRESS_REGISTERS, hw_write, show_debug_regs, X86_DR_GET_RW_LEN, x86_dr_low_get_addr, x86_dr_low_get_control, x86_dr_low_get_status, X86_DR_WATCH_HIT, and x86_show_dr().

Referenced by x86_dr_stopped_by_watchpoint(), and x86_stopped_data_address().

## Variable Documentation

## ◆ x86_dr_low

struct x86_dr_low_type x86_dr_low

Definition at line 512 of file linux-x86-low.c.