GDBserver
Classes | Defines | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/gdbserver/mem-break.c File Reference
#include "server.h"
#include "regcache.h"
#include "ax.h"
#include <stdint.h>

Go to the source code of this file.

Classes

struct  raw_breakpoint
struct  point_cond_list
struct  point_command_list
struct  breakpoint
struct  fast_tracepoint_jump

Defines

#define MAX_BREAKPOINT_LEN   8
#define fast_tracepoint_jump_insn(fp)   ((fp)->insn_and_shadow + 0)
#define fast_tracepoint_jump_shadow(fp)   ((fp)->insn_and_shadow + (fp)->length)

Enumerations

enum  bkpt_type { gdb_breakpoint, reinsert_breakpoint, other_breakpoint }

Functions

int any_persistent_commands ()
static struct raw_breakpointfind_raw_breakpoint_at (CORE_ADDR where)
static struct raw_breakpointset_raw_breakpoint_at (CORE_ADDR where)
static struct
fast_tracepoint_jump
find_fast_tracepoint_jump_at (CORE_ADDR where)
int fast_tracepoint_jump_here (CORE_ADDR where)
int delete_fast_tracepoint_jump (struct fast_tracepoint_jump *todel)
void inc_ref_fast_tracepoint_jump (struct fast_tracepoint_jump *jp)
struct fast_tracepoint_jumpset_fast_tracepoint_jump (CORE_ADDR where, unsigned char *insn, ULONGEST length)
void uninsert_fast_tracepoint_jumps_at (CORE_ADDR pc)
void reinsert_fast_tracepoint_jumps_at (CORE_ADDR where)
struct breakpointset_breakpoint_at (CORE_ADDR where, int(*handler)(CORE_ADDR))
static int delete_raw_breakpoint (struct process_info *proc, struct raw_breakpoint *todel)
static int release_breakpoint (struct process_info *proc, struct breakpoint *bp)
static int delete_breakpoint_1 (struct process_info *proc, struct breakpoint *todel)
int delete_breakpoint (struct breakpoint *todel)
struct breakpointfind_gdb_breakpoint_at (CORE_ADDR where)
int set_gdb_breakpoint_at (CORE_ADDR where)
int delete_gdb_breakpoint_at (CORE_ADDR addr)
void clear_gdb_breakpoint_conditions (CORE_ADDR addr)
void add_condition_to_breakpoint (struct breakpoint *bp, struct agent_expr *condition)
int add_breakpoint_condition (CORE_ADDR addr, char **condition)
int gdb_condition_true_at_breakpoint (CORE_ADDR where)
void add_commands_to_breakpoint (struct breakpoint *bp, struct agent_expr *commands, int persist)
int add_breakpoint_commands (CORE_ADDR addr, char **command, int persist)
int gdb_no_commands_at_breakpoint (CORE_ADDR where)
void run_breakpoint_commands (CORE_ADDR where)
int gdb_breakpoint_here (CORE_ADDR where)
void set_reinsert_breakpoint (CORE_ADDR stop_at)
void delete_reinsert_breakpoints (void)
static void uninsert_raw_breakpoint (struct raw_breakpoint *bp)
void uninsert_breakpoints_at (CORE_ADDR pc)
void uninsert_all_breakpoints (void)
static void reinsert_raw_breakpoint (struct raw_breakpoint *bp)
void reinsert_breakpoints_at (CORE_ADDR pc)
void reinsert_all_breakpoints (void)
void check_breakpoints (CORE_ADDR stop_pc)
void set_breakpoint_data (const unsigned char *bp_data, int bp_len)
int breakpoint_here (CORE_ADDR addr)
int breakpoint_inserted_here (CORE_ADDR addr)
static int validate_inserted_breakpoint (struct raw_breakpoint *bp)
static void delete_disabled_breakpoints (void)
void validate_breakpoints (void)
void check_mem_read (CORE_ADDR mem_addr, unsigned char *buf, int mem_len)
void check_mem_write (CORE_ADDR mem_addr, unsigned char *buf, const unsigned char *myaddr, int mem_len)
void delete_all_breakpoints (void)
void mark_breakpoints_out (struct process_info *proc)
void free_all_breakpoints (struct process_info *proc)

Variables

const unsigned char * breakpoint_data
int breakpoint_len

Define Documentation

#define fast_tracepoint_jump_insn (   fp)    ((fp)->insn_and_shadow + 0)

Definition at line 266 of file mem-break.c.

Referenced by check_mem_write(), and set_fast_tracepoint_jump().

#define fast_tracepoint_jump_shadow (   fp)    ((fp)->insn_and_shadow + (fp)->length)
#define MAX_BREAKPOINT_LEN   8

Enumeration Type Documentation

enum bkpt_type
Enumerator:
gdb_breakpoint 
reinsert_breakpoint 
other_breakpoint 

Definition at line 77 of file mem-break.c.


Function Documentation

int add_breakpoint_commands ( CORE_ADDR  addr,
char **  command,
int  persist 
)
int add_breakpoint_condition ( CORE_ADDR  addr,
char **  condition 
)
void add_commands_to_breakpoint ( struct breakpoint bp,
struct agent_expr commands,
int  persist 
)
void add_condition_to_breakpoint ( struct breakpoint bp,
struct agent_expr condition 
)
int any_persistent_commands ( void  )
int breakpoint_here ( CORE_ADDR  addr)

Definition at line 1170 of file mem-break.c.

References find_raw_breakpoint_at().

Referenced by linux_wait_1(), and need_step_over_p().

void check_breakpoints ( CORE_ADDR  stop_pc)
void check_mem_read ( CORE_ADDR  mem_addr,
unsigned char *  buf,
int  mem_len 
)
void check_mem_write ( CORE_ADDR  mem_addr,
unsigned char *  buf,
const unsigned char *  myaddr,
int  mem_len 
)
void delete_all_breakpoints ( void  )

Definition at line 1412 of file mem-break.c.

References process_info::breakpoints, current_process(), and delete_breakpoint_1().

int delete_breakpoint ( struct breakpoint todel)
static int delete_breakpoint_1 ( struct process_info proc,
struct breakpoint todel 
) [static]
static void delete_disabled_breakpoints ( void  ) [static]
static int delete_raw_breakpoint ( struct process_info proc,
struct raw_breakpoint todel 
) [static]
void delete_reinsert_breakpoints ( void  )

Definition at line 290 of file mem-break.c.

References find_fast_tracepoint_jump_at().

Referenced by need_step_over_p().

static struct fast_tracepoint_jump* find_fast_tracepoint_jump_at ( CORE_ADDR  where) [static, read]
struct breakpoint* find_gdb_breakpoint_at ( CORE_ADDR  where) [read]
static struct raw_breakpoint* find_raw_breakpoint_at ( CORE_ADDR  where) [static, read]
void free_all_breakpoints ( struct process_info proc)

Definition at line 1435 of file mem-break.c.

References process_info::breakpoints, delete_breakpoint_1(), and mark_breakpoints_out().

Referenced by remove_process().

Definition at line 361 of file mem-break.c.

References fast_tracepoint_jump::refcount.

Referenced by clone_fast_tracepoint().

void mark_breakpoints_out ( struct process_info proc)
void reinsert_all_breakpoints ( void  )

Definition at line 1096 of file mem-break.c.

References debug_threads, find_raw_breakpoint_at(), paddress(), and reinsert_raw_breakpoint().

Referenced by finish_step_over().

static void reinsert_raw_breakpoint ( struct raw_breakpoint bp) [static]
static int release_breakpoint ( struct process_info proc,
struct breakpoint bp 
) [static]
struct breakpoint* set_breakpoint_at ( CORE_ADDR  where,
int(*)(CORE_ADDR handler 
) [read]
void set_breakpoint_data ( const unsigned char *  bp_data,
int  bp_len 
)

Definition at line 1163 of file mem-break.c.

References breakpoint_data, and breakpoint_len.

Referenced by initialize_low().

struct fast_tracepoint_jump* set_fast_tracepoint_jump ( CORE_ADDR  where,
unsigned char *  insn,
ULONGEST  length 
) [read]
static struct raw_breakpoint* set_raw_breakpoint_at ( CORE_ADDR  where) [static, read]

Definition at line 980 of file mem-break.c.

References reinsert_breakpoint, set_breakpoint_at(), and breakpoint::type.

Referenced by start_step_over().

void uninsert_all_breakpoints ( void  )
static void uninsert_raw_breakpoint ( struct raw_breakpoint bp) [static]
void validate_breakpoints ( void  )
static int validate_inserted_breakpoint ( struct raw_breakpoint bp) [static]

Variable Documentation

const unsigned char* breakpoint_data
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines