diff options
Diffstat (limited to 'gdb/gdbserver/server.h')
-rw-r--r-- | gdb/gdbserver/server.h | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/gdb/gdbserver/server.h b/gdb/gdbserver/server.h index b580bce..6832ece 100644 --- a/gdb/gdbserver/server.h +++ b/gdb/gdbserver/server.h @@ -221,6 +221,7 @@ struct dll_info struct sym_cache; struct breakpoint; struct raw_breakpoint; +struct fast_tracepoint_jump; struct process_info_private; struct process_info @@ -244,6 +245,9 @@ struct process_info /* The list of raw memory breakpoints. */ struct raw_breakpoint *raw_breakpoints; + /* The list of installed fast tracepoints. */ + struct fast_tracepoint_jump *fast_tracepoint_jumps; + /* Private target data. */ struct process_info_private *private; }; @@ -379,8 +383,8 @@ void initialize_async_io (void); void enable_async_io (void); void disable_async_io (void); void check_remote_input_interrupt_request (void); -void convert_ascii_to_int (char *from, unsigned char *to, int n); -void convert_int_to_ascii (unsigned char *from, char *to, int n); +void convert_ascii_to_int (const char *from, unsigned char *to, int n); +void convert_int_to_ascii (const unsigned char *from, char *to, int n); void new_thread_notify (int id); void dead_thread_notify (int id); void prepare_resume_reply (char *buf, ptid_t ptid, @@ -391,9 +395,9 @@ void decode_address (CORE_ADDR *addrp, const char *start, int len); void decode_m_packet (char *from, CORE_ADDR * mem_addr_ptr, unsigned int *len_ptr); void decode_M_packet (char *from, CORE_ADDR * mem_addr_ptr, - unsigned int *len_ptr, unsigned char *to); + unsigned int *len_ptr, unsigned char **to_p); int decode_X_packet (char *from, int packet_len, CORE_ADDR * mem_addr_ptr, - unsigned int *len_ptr, unsigned char *to); + unsigned int *len_ptr, unsigned char **to_p); int decode_xfer_write (char *buf, int packet_len, char **annex, CORE_ADDR *offset, unsigned int *len, unsigned char *data); @@ -412,6 +416,8 @@ char *unpack_varlen_hex (char *buff, ULONGEST *result); void clear_symbol_cache (struct sym_cache **symcache_p); int look_up_one_symbol (const char *name, CORE_ADDR *addrp, int may_ask_gdb); +int relocate_instruction (CORE_ADDR *to, CORE_ADDR oldloc); + void monitor_output (const char *msg); char *xml_escape_text (const char *text); @@ -507,11 +513,15 @@ char *phex_nz (ULONGEST l, int sizeof_l); /* Functions from tracepoint.c */ +int in_process_agent_loaded (void); + void initialize_tracepoint (void); extern int tracing; extern int disconnected_tracing; +void tracepoint_look_up_symbols (void); + void stop_tracing (void); int handle_tracepoint_general_set (char *own_buf); @@ -532,6 +542,37 @@ int fetch_traceframe_registers (int tfnum, struct regcache *regcache, int regnum); +/* If a thread is determined to be collecting a fast tracepoint, this + structure holds the collect status. */ + +struct fast_tpoint_collect_status +{ + /* The tracepoint that is presently being collected. */ + int tpoint_num; + CORE_ADDR tpoint_addr; + + /* The address range in the jump pad of where the original + instruction the tracepoint jump was inserted was relocated + to. */ + CORE_ADDR adjusted_insn_addr; + CORE_ADDR adjusted_insn_addr_end; +}; + +int fast_tracepoint_collecting (CORE_ADDR thread_area, + CORE_ADDR stop_pc, + struct fast_tpoint_collect_status *status); +void force_unlock_trace_buffer (void); + +int handle_tracepoint_bkpts (struct thread_info *tinfo, CORE_ADDR stop_pc); + +#ifdef IN_PROCESS_AGENT +void initialize_low_tracepoint (void); +void supply_fast_tracepoint_registers (struct regcache *regcache, + const unsigned char *regs); +#else +void stop_tracing (void); +#endif + /* Version information, from version.c. */ extern const char version[]; extern const char host_name[]; |