Stackdb
Stackdb is a stackable, multi-target and -level source debugger and memory forensics library.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Macros | Functions | Variables
target_gdb_rsp.c File Reference
#include "config.h"
#include <errno.h>
#include <ctype.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/select.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <netinet/tcp.h>
#include <argp.h>
#include "common.h"
#include "arch.h"
#include "arch_x86.h"
#include "arch_x86_64.h"
#include "evloop.h"
#include "target_api.h"
#include "target.h"
#include "target_arch_x86.h"
#include "target_gdb.h"
#include "target_gdb_rsp.h"
#include <glib.h>
Include dependency graph for target_gdb_rsp.c:

Go to the source code of this file.

Macros

#define UNIX_PATH_MAX   (size_t)sizeof(((struct sockaddr_un *) 0)->sun_path)
 
#define GDB_CHECKCONN(errcode)
 

Functions

int gdb_rsp_query_stub (struct target *target)
 
int gdb_rsp_connect (struct target *target)
 
int gdb_rsp_close (struct target *target, int stay_paused)
 
int gdb_rsp_interrupt (struct target *target)
 
int gdb_rsp_ack (struct target *target)
 
int gdb_rsp_nak (struct target *target)
 
int gdb_rsp_send_packet (struct target *target, char *data, unsigned int len, gdb_rsp_handler_t handler, void *handler_data)
 
int gdb_rsp_send_notification (struct target *target, char *data, unsigned int len)
 
int gdb_rsp_recv (struct target *target, int blocking, int only_one, gdb_ptype_t *o_ptype)
 
int gdb_rsp_recv_until_handled (struct target *target, gdb_rsp_handler_t handler, gdb_rsp_handler_ret_t *handler_ret)
 
int gdb_rsp_recv_until_acked (struct target *target)
 
target_status_t gdb_rsp_load_status (struct target *target)
 
int gdb_rsp_pause (struct target *target)
 
int gdb_rsp_resume (struct target *target)
 
int gdb_rsp_step (struct target *target)
 
int gdb_rsp_read_regs (struct target *target, struct regcache *regcache)
 
int gdb_rsp_write_regs (struct target *target, struct regcache *regcache)
 
int gdb_rsp_write_reg_one_by_one (struct target *target, struct regcache *regcache)
 
int gdb_rsp_read_mem (struct target *target, ADDR addr, unsigned long length, unsigned char *buf)
 
int gdb_rsp_write_mem (struct target *target, ADDR addr, unsigned long length, unsigned char *buf)
 
int gdb_rsp_insert_break (struct target *target, ADDR addr, gdb_rsp_break_t bt, int kind)
 
int gdb_rsp_remove_break (struct target *target, ADDR addr, gdb_rsp_break_t bt, int kind)
 

Variables

int h_errno
 

Macro Definition Documentation

#define GDB_CHECKCONN (   errcode)
Value:
do { \
if (gstate->fd < 0) { \
verror("not connected to gdb server!\n"); \
errno = ENOTCONN; \
return (errcode); \
} \
} while(0)
#define verror(format,...)
Definition: log.h:30

Definition at line 391 of file target_gdb_rsp.c.

#define UNIX_PATH_MAX   (size_t)sizeof(((struct sockaddr_un *) 0)->sun_path)

Definition at line 32 of file target_gdb_rsp.c.

Function Documentation

int gdb_rsp_ack ( struct target target)

Definition at line 570 of file target_gdb_rsp.c.

int gdb_rsp_close ( struct target target,
int  stay_paused 
)

Definition at line 400 of file target_gdb_rsp.c.

int gdb_rsp_connect ( struct target target)

A partial implement of the GDB RSP. Doesn't bother with some things that only GDB servers need, like the ability to send notifications.

Definition at line 84 of file target_gdb_rsp.c.

int gdb_rsp_insert_break ( struct target target,
ADDR  addr,
gdb_rsp_break_t  bt,
int  kind 
)

Definition at line 2232 of file target_gdb_rsp.c.

int gdb_rsp_interrupt ( struct target target)

Definition at line 511 of file target_gdb_rsp.c.

target_status_t gdb_rsp_load_status ( struct target target)

Commands or command wrappers.

Definition at line 1794 of file target_gdb_rsp.c.

int gdb_rsp_nak ( struct target target)

Definition at line 586 of file target_gdb_rsp.c.

int gdb_rsp_pause ( struct target target)

Definition at line 1821 of file target_gdb_rsp.c.

int gdb_rsp_query_stub ( struct target target)

Definition at line 1919 of file target_gdb_rsp.c.

int gdb_rsp_read_mem ( struct target target,
ADDR  addr,
unsigned long  length,
unsigned char *  buf 
)

Definition at line 2164 of file target_gdb_rsp.c.

int gdb_rsp_read_regs ( struct target target,
struct regcache regcache 
)

Definition at line 1955 of file target_gdb_rsp.c.

int gdb_rsp_recv ( struct target target,
int  blocking,
int  only_one,
gdb_ptype_t o_ptype 
)

Definition at line 919 of file target_gdb_rsp.c.

int gdb_rsp_recv_until_acked ( struct target target)

Definition at line 1199 of file target_gdb_rsp.c.

int gdb_rsp_recv_until_handled ( struct target target,
gdb_rsp_handler_t  handler,
gdb_rsp_handler_ret_t handler_ret 
)

Definition at line 1179 of file target_gdb_rsp.c.

int gdb_rsp_remove_break ( struct target target,
ADDR  addr,
gdb_rsp_break_t  bt,
int  kind 
)

Definition at line 2261 of file target_gdb_rsp.c.

int gdb_rsp_resume ( struct target target)

Definition at line 1834 of file target_gdb_rsp.c.

int gdb_rsp_send_notification ( struct target target,
char *  data,
unsigned int  len 
)

Definition at line 703 of file target_gdb_rsp.c.

int gdb_rsp_send_packet ( struct target target,
char *  data,
unsigned int  len,
gdb_rsp_handler_t  handler,
void *  handler_data 
)

Definition at line 653 of file target_gdb_rsp.c.

int gdb_rsp_step ( struct target target)

Definition at line 1887 of file target_gdb_rsp.c.

int gdb_rsp_write_mem ( struct target target,
ADDR  addr,
unsigned long  length,
unsigned char *  buf 
)

Definition at line 2197 of file target_gdb_rsp.c.

int gdb_rsp_write_reg_one_by_one ( struct target target,
struct regcache regcache 
)

Definition at line 2081 of file target_gdb_rsp.c.

int gdb_rsp_write_regs ( struct target target,
struct regcache regcache 
)

Definition at line 1975 of file target_gdb_rsp.c.

Variable Documentation

int h_errno