GDBserver
|
#include "server.h"
#include "terminal.h"
#include "target.h"
#include "gdbthread.h"
#include "tdesc.h"
#include "dll.h"
#include "rsp-low.h"
#include <ctype.h>
#include <sys/time.h>
#include <unistd.h>
#include <sys/stat.h>
Go to the source code of this file.
Classes | |
struct | sym_cache |
Macros | |
#define | INVALID_DESCRIPTOR -1 |
Typedefs | |
typedef int | socklen_t |
Enumerations | |
enum | { NOT_SCHEDULED = -1 } |
Functions | |
static int | readchar (void) |
static void | reset_readchar (void) |
static void | reschedule (void) |
int | gdb_connected (void) |
int | remote_connection_is_stdio (void) |
static void | enable_async_notification (int fd) |
static int | handle_accept_event (int err, gdb_client_data client_data) |
void | remote_prepare (char *name) |
void | remote_open (char *name) |
void | remote_close (void) |
void | decode_address (CORE_ADDR *addrp, const char *start, int len) |
const char * | decode_address_to_semicolon (CORE_ADDR *addrp, const char *start) |
static int | try_rle (char *buf, int remaining, unsigned char *csum, char **p) |
char * | write_ptid (char *buf, ptid_t ptid) |
ULONGEST | hex_or_minus_one (char *buf, char **obuf) |
ptid_t | read_ptid (char *buf, char **obuf) |
static int | write_prim (const void *buf, int count) |
static int | read_prim (void *buf, int count) |
static int | putpkt_binary_1 (char *buf, int cnt, int is_notif) |
int | putpkt_binary (char *buf, int cnt) |
int | putpkt (char *buf) |
int | putpkt_notif (char *buf) |
static void | input_interrupt (int unused) |
void | check_remote_input_interrupt_request (void) |
static void | unblock_async_io (void) |
void | enable_async_io (void) |
void | disable_async_io (void) |
void | initialize_async_io (void) |
static int | process_remaining (void *context) |
int | getpkt (char *buf) |
void | write_ok (char *buf) |
void | write_enn (char *buf) |
static char * | outreg (struct regcache *regcache, int regno, char *buf) |
void | new_thread_notify (int id) |
void | dead_thread_notify (int id) |
void | prepare_resume_reply (char *buf, ptid_t ptid, struct target_waitstatus *status) |
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_p) |
int | decode_X_packet (char *from, int packet_len, CORE_ADDR *mem_addr_ptr, unsigned int *len_ptr, unsigned char **to_p) |
int | decode_xfer_write (char *buf, int packet_len, CORE_ADDR *offset, unsigned int *len, unsigned char *data) |
int | decode_search_memory_packet (const char *buf, int packet_len, CORE_ADDR *start_addrp, CORE_ADDR *search_space_lenp, gdb_byte *pattern, unsigned int *pattern_lenp) |
static void | free_sym_cache (struct sym_cache *sym) |
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) |
Variables | |
static int | readchar_callback = NOT_SCHEDULED |
int | remote_debug = 0 |
struct ui_file * | gdb_stdlog |
static int | remote_is_stdio = 0 |
static gdb_fildes_t | remote_desc = INVALID_DESCRIPTOR |
static gdb_fildes_t | listen_desc = INVALID_DESCRIPTOR |
int | using_threads |
int | debug_threads |
int | noack_mode = 0 |
int | transport_is_reliable = 0 |
static int | async_io_enabled |
static unsigned char | readchar_buf [BUFSIZ] |
static int | readchar_bufcnt = 0 |
static unsigned char * | readchar_bufp |
#define INVALID_DESCRIPTOR -1 |
Definition at line 78 of file remote-utils.c.
Referenced by check_remote_input_interrupt_request(), gdb_connected(), and remote_close().
typedef int socklen_t |
Definition at line 70 of file remote-utils.c.
anonymous enum |
Enumerator | |
---|---|
NOT_SCHEDULED |
Definition at line 82 of file remote-utils.c.
void check_remote_input_interrupt_request | ( | void | ) |
Definition at line 766 of file remote-utils.c.
References input_interrupt(), INVALID_DESCRIPTOR, and remote_desc.
Referenced by get_child_debug_event().
void clear_symbol_cache | ( | struct sym_cache ** | symcache_p | ) |
Definition at line 1398 of file remote-utils.c.
References free_sym_cache(), and sym_cache::next.
Referenced by remove_process().
void dead_thread_notify | ( | int | id | ) |
Definition at line 1092 of file remote-utils.c.
References disable_async_io(), enable_async_io(), own_buf, and putpkt().
void decode_address | ( | CORE_ADDR * | addrp, |
const char * | start, | ||
int | len | ||
) |
Definition at line 421 of file remote-utils.c.
References fromhex().
Referenced by decode_address_to_semicolon(), handle_query(), and look_up_one_symbol().
const char* decode_address_to_semicolon | ( | CORE_ADDR * | addrp, |
const char * | start | ||
) |
Definition at line 438 of file remote-utils.c.
References decode_address().
Referenced by decode_search_memory_packet(), handle_general_set(), and linux_qxfer_libraries_svr4().
void decode_m_packet | ( | char * | from, |
CORE_ADDR * | mem_addr_ptr, | ||
unsigned int * | len_ptr | ||
) |
Definition at line 1268 of file remote-utils.c.
References fromhex().
Referenced by decode_xfer_read(), look_up_one_symbol(), process_serial_event(), and relocate_instruction().
void decode_M_packet | ( | char * | from, |
CORE_ADDR * | mem_addr_ptr, | ||
unsigned int * | len_ptr, | ||
unsigned char ** | to_p | ||
) |
Definition at line 1290 of file remote-utils.c.
References fromhex(), hex2bin(), and xmalloc().
Referenced by process_serial_event(), and relocate_instruction().
int decode_search_memory_packet | ( | const char * | buf, |
int | packet_len, | ||
CORE_ADDR * | start_addrp, | ||
CORE_ADDR * | search_space_lenp, | ||
gdb_byte * | pattern, | ||
unsigned int * | pattern_lenp | ||
) |
Definition at line 1372 of file remote-utils.c.
References decode_address_to_semicolon(), and remote_unescape_input().
Referenced by handle_search_memory().
int decode_X_packet | ( | char * | from, |
int | packet_len, | ||
CORE_ADDR * | mem_addr_ptr, | ||
unsigned int * | len_ptr, | ||
unsigned char ** | to_p | ||
) |
Definition at line 1316 of file remote-utils.c.
References fromhex(), remote_unescape_input(), and xmalloc().
Referenced by process_serial_event(), and relocate_instruction().
int decode_xfer_write | ( | char * | buf, |
int | packet_len, | ||
CORE_ADDR * | offset, | ||
unsigned int * | len, | ||
unsigned char * | data | ||
) |
Definition at line 1348 of file remote-utils.c.
References fromhex(), and remote_unescape_input().
Referenced by handle_qxfer().
void disable_async_io | ( | void | ) |
Definition at line 836 of file remote-utils.c.
Referenced by dead_thread_notify(), initialize_async_io(), new_thread_notify(), process_serial_event(), and resume().
void enable_async_io | ( | void | ) |
Definition at line 820 of file remote-utils.c.
References input_interrupt().
Referenced by dead_thread_notify(), new_thread_notify(), and resume().
|
static |
Definition at line 140 of file remote-utils.c.
Referenced by handle_accept_event(), and remote_open().
|
static |
Definition at line 1388 of file remote-utils.c.
References sym_cache::name.
Referenced by clear_symbol_cache().
int gdb_connected | ( | void | ) |
Definition at line 126 of file remote-utils.c.
References INVALID_DESCRIPTOR, and remote_desc.
Referenced by handle_target_event(), and stop_tracing().
int getpkt | ( | char * | buf | ) |
Definition at line 945 of file remote-utils.c.
References fromhex(), noack_mode, readchar(), remote_debug, and write_prim().
Referenced by look_up_one_symbol(), process_serial_event(), and relocate_instruction().
|
static |
Definition at line 154 of file remote-utils.c.
References add_file_handler(), debug_printf(), debug_threads, delete_file_handler(), enable_async_notification(), handle_serial_event(), listen_desc, perror_with_name(), remote_desc, run_once, and target_async.
Referenced by remote_open().
ULONGEST hex_or_minus_one | ( | char * | buf, |
char ** | obuf | ||
) |
Definition at line 530 of file remote-utils.c.
References startswith(), and unpack_varlen_hex().
Referenced by read_ptid().
void initialize_async_io | ( | void | ) |
Definition at line 852 of file remote-utils.c.
References disable_async_io(), and unblock_async_io().
Referenced by captured_main().
|
static |
Definition at line 728 of file remote-utils.c.
References current_thread, read_prim(), remote_desc, target_ops::request_interrupt, and the_target.
Referenced by check_remote_input_interrupt_request(), and enable_async_io().
int look_up_one_symbol | ( | const char * | name, |
CORE_ADDR * | addrp, | ||
int | may_ask_gdb | ||
) |
Definition at line 1417 of file remote-utils.c.
References sym_cache::addr, bin2hex(), current_process(), decode_address(), decode_m_packet(), getpkt(), mem_buf, sym_cache::name, sym_cache::next, own_buf, putpkt(), read_inferior_memory(), startswith(), process_info::symbol_cache, warning(), write_enn(), xmalloc(), and xstrdup().
Referenced by find_minimal_symbol_address(), thread_db_look_up_one_symbol(), thread_db_look_up_symbols(), and tracepoint_look_up_symbols().
void monitor_output | ( | const char * | msg | ) |
Definition at line 1599 of file remote-utils.c.
References bin2hex(), putpkt(), and xmalloc().
Referenced by handle_monitor_command(), handle_output_debug_string(), monitor_show_help(), parse_debug_format_options(), and thread_db_handle_monitor_command().
void new_thread_notify | ( | int | id | ) |
Definition at line 1074 of file remote-utils.c.
References disable_async_io(), enable_async_io(), own_buf, putpkt(), and server_waiting.
|
static |
Definition at line 1057 of file remote-utils.c.
References collect_register_as_string(), register_size(), regcache::tdesc, and tohex().
Referenced by prepare_resume_reply().
void prepare_resume_reply | ( | char * | buf, |
ptid_t | ptid, | ||
struct target_waitstatus * | status | ||
) |
Definition at line 1107 of file remote-utils.c.
References current_target_desc(), current_thread, debug_printf(), debug_threads, disable_packet_Tthread, dlls_changed, error(), target_desc::expedite_regs, find_regno(), find_thread_ptid(), general_thread, get_thread_regcache(), hwbreak_feature, multi_process, non_stop, outreg(), ptid_equal(), ptid_get_pid(), report_fork_events, report_vfork_events, target_ops::stopped_by_watchpoint, target_ops::stopped_data_address, swbreak_feature, target_core_of_thread, target_pid_to_str(), target_stopped_by_hw_breakpoint, target_stopped_by_sw_breakpoint, regcache::tdesc, the_target, tohex(), using_threads, and write_ptid().
Referenced by handle_pending_status(), handle_status(), handle_v_attach(), handle_v_run(), resume(), and vstop_notif_reply().
|
static |
Definition at line 916 of file remote-utils.c.
References handle_serial_event(), NOT_SCHEDULED, and readchar_callback.
Referenced by reschedule().
int putpkt | ( | char * | buf | ) |
Definition at line 710 of file remote-utils.c.
References putpkt_binary().
Referenced by captured_main(), dead_thread_notify(), look_up_one_symbol(), monitor_output(), new_thread_notify(), process_serial_event(), and relocate_instruction().
int putpkt_binary | ( | char * | buf, |
int | cnt | ||
) |
Definition at line 700 of file remote-utils.c.
References putpkt_binary_1().
Referenced by process_serial_event(), and putpkt().
|
static |
Definition at line 616 of file remote-utils.c.
References current_thread, noack_mode, perror(), readchar(), remote_debug, target_ops::request_interrupt, the_target, tohex(), try_rle(), write_prim(), and xmalloc().
Referenced by putpkt_binary(), and putpkt_notif().
int putpkt_notif | ( | char * | buf | ) |
Definition at line 716 of file remote-utils.c.
References putpkt_binary_1().
Referenced by notif_push().
|
static |
Definition at line 603 of file remote-utils.c.
References remote_connection_is_stdio(), and remote_desc.
Referenced by input_interrupt(), and readchar().
ptid_t read_ptid | ( | char * | buf, |
char ** | obuf | ||
) |
Definition at line 551 of file remote-utils.c.
References current_ptid, error(), hex_or_minus_one(), ptid_build(), ptid_get_pid(), and unpack_varlen_hex().
Referenced by handle_query(), handle_v_cont(), and process_serial_event().
|
static |
Definition at line 873 of file remote-utils.c.
References perror(), read_prim(), readchar_buf, and reschedule().
Referenced by getpkt(), and putpkt_binary_1().
Definition at line 1516 of file remote-utils.c.
References bin2hex(), decode_m_packet(), decode_M_packet(), decode_X_packet(), getpkt(), mem_buf, own_buf, paddress(), putpkt(), read_inferior_memory(), startswith(), unpack_varlen_hex(), warning(), write_enn(), write_inferior_memory(), write_ok(), and xmalloc().
Referenced by i386_install_fast_tracepoint_jump_pad().
void remote_close | ( | void | ) |
Definition at line 401 of file remote-utils.c.
References delete_file_handler(), INVALID_DESCRIPTOR, remote_connection_is_stdio(), remote_desc, and reset_readchar().
Referenced by process_serial_event().
int remote_connection_is_stdio | ( | void | ) |
Definition at line 134 of file remote-utils.c.
References remote_is_stdio.
Referenced by linux_create_inferior(), mywait(), process_serial_event(), read_prim(), remote_close(), and write_prim().
void remote_open | ( | char * | name | ) |
Definition at line 287 of file remote-utils.c.
References add_file_handler(), enable_async_notification(), errno, error(), handle_accept_event(), handle_serial_event(), listen_desc, perror_with_name(), remote_desc, S_ISCHR, S_ISFIFO, and STDIO_CONNECTION_NAME.
Referenced by captured_main().
void remote_prepare | ( | char * | name | ) |
Definition at line 220 of file remote-utils.c.
References error(), listen_desc, perror_with_name(), remote_is_stdio, STDIO_CONNECTION_NAME, and transport_is_reliable.
Referenced by captured_main().
|
static |
Definition at line 935 of file remote-utils.c.
References append_callback_event(), NOT_SCHEDULED, process_remaining(), and readchar_callback.
Referenced by readchar().
|
static |
Definition at line 903 of file remote-utils.c.
References delete_callback_event(), NOT_SCHEDULED, and readchar_callback.
Referenced by remote_close().
|
static |
Definition at line 462 of file remote-utils.c.
Referenced by putpkt_binary_1().
|
static |
Definition at line 782 of file remote-utils.c.
Referenced by initialize_async_io().
void write_enn | ( | char * | buf | ) |
Definition at line 1043 of file remote-utils.c.
Referenced by captured_main(), cmd_bigqtbuffer_size(), cmd_qtbuffer(), cmd_qtdp(), cmd_qtdpsrc(), cmd_qtenable_disable(), cmd_qtinit(), cmd_qtp(), cmd_qtstart(), handle_fstat(), handle_general_set(), handle_monitor_command(), handle_query(), handle_qxfer(), handle_v_attach(), handle_v_cont(), handle_v_kill(), handle_v_requests(), handle_v_run(), install_tracepoint(), look_up_one_symbol(), process_serial_event(), and relocate_instruction().
void write_ok | ( | char * | buf | ) |
Definition at line 1035 of file remote-utils.c.
Referenced by cmd_bigqtbuffer_circular(), cmd_bigqtbuffer_size(), cmd_qtdisconnected(), cmd_qtdp(), cmd_qtdpsrc(), cmd_qtdv(), cmd_qtenable_disable(), cmd_qtframe(), cmd_qtinit(), cmd_qtnotes(), cmd_qtro(), cmd_qtstart(), cmd_qtstop(), handle_btrace_conf_general_set(), handle_btrace_general_set(), handle_general_set(), handle_query(), handle_v_attach(), handle_v_kill(), install_tracepoint(), notif_write_event(), process_serial_event(), relocate_instruction(), and resume().
|
static |
Definition at line 590 of file remote-utils.c.
References remote_connection_is_stdio(), and remote_desc.
Referenced by getpkt(), and putpkt_binary_1().
char* write_ptid | ( | char * | buf, |
ptid_t | ptid | ||
) |
Definition at line 508 of file remote-utils.c.
References multi_process, ptid_get_lwp(), and ptid_get_pid().
Referenced by handle_query(), handle_qxfer_threads_worker(), and prepare_resume_reply().
|
static |
Definition at line 816 of file remote-utils.c.
int debug_threads |
Definition at line 24 of file debug.c.
Referenced by handle_accept_event(), and prepare_resume_reply().
struct ui_file* gdb_stdlog |
Definition at line 104 of file remote-utils.c.
|
static |
Definition at line 109 of file remote-utils.c.
Referenced by handle_accept_event(), remote_open(), and remote_prepare().
int noack_mode = 0 |
Definition at line 116 of file remote-utils.c.
Referenced by captured_main(), getpkt(), handle_general_set(), and putpkt_binary_1().
|
static |
Definition at line 866 of file remote-utils.c.
Referenced by readchar().
|
static |
Definition at line 867 of file remote-utils.c.
|
static |
Definition at line 868 of file remote-utils.c.
|
static |
Definition at line 89 of file remote-utils.c.
Referenced by process_remaining(), reschedule(), and reset_readchar().
int remote_debug = 0 |
Definition at line 103 of file remote-utils.c.
Referenced by getpkt(), handle_notif_ack(), notif_event_enque(), and putpkt_binary_1().
|
static |
Definition at line 108 of file remote-utils.c.
Referenced by check_remote_input_interrupt_request(), gdb_connected(), handle_accept_event(), input_interrupt(), read_prim(), remote_close(), remote_open(), and write_prim().
|
static |
Definition at line 106 of file remote-utils.c.
Referenced by remote_connection_is_stdio(), and remote_prepare().
int transport_is_reliable = 0 |
Definition at line 118 of file remote-utils.c.
Referenced by handle_query(), and remote_prepare().
int using_threads |
Definition at line 250 of file linux-low.c.
Referenced by prepare_resume_reply().