[3298] Updated GDB server

This commit is contained in:
claudiol 2018-08-28 12:45:40 -04:00
parent 02ed9ab8a9
commit c3ed313cf7
3 changed files with 852 additions and 159 deletions

985
gdbstub.c

File diff suppressed because it is too large Load diff

View file

@ -3,17 +3,34 @@
#define DEFAULT_GDBSTUB_PORT 1234 #define DEFAULT_GDBSTUB_PORT 1234
/* GDB breakpoint/watchpoint types */
#define GDB_BREAKPOINT_SW 0
#define GDB_BREAKPOINT_HW 1
#define GDB_WATCHPOINT_WRITE 2
#define GDB_WATCHPOINT_READ 3
#define GDB_WATCHPOINT_ACCESS 4
typedef void (*gdb_syscall_complete_cb)(CPUState *env, typedef void (*gdb_syscall_complete_cb)(CPUState *env,
target_ulong ret, target_ulong err); target_ulong ret, target_ulong err);
void gdb_do_syscall(gdb_syscall_complete_cb cb, char *fmt, ...); void gdb_do_syscall(gdb_syscall_complete_cb cb, const char *fmt, ...);
int use_gdb_syscalls(void); int use_gdb_syscalls(void);
void gdb_set_stop_cpu(CPUState *env);
int gdb_poll(CPUState *); int gdb_poll(CPUState *);
int gdb_queuesig (void);
int gdb_handlesig (CPUState *, int); int gdb_handlesig (CPUState *, int);
void gdb_exit(CPUState *, int); void gdb_exit(CPUState *, int);
void gdb_signalled(CPUState *, int);
int gdbserver_start(int); int gdbserver_start(int);
void gdbserver_fork(CPUState *);
/* Get or set a register. Returns the size of the register. */
typedef int (*gdb_reg_cb)(CPUState *env, uint8_t *buf, int reg);
void gdb_register_coprocessor(CPUState *env,
gdb_reg_cb get_reg, gdb_reg_cb set_reg,
int num_regs, const char *xml, int g_pos);
int gdbserver_isactive(); int gdbserver_isactive();

7
main.c
View file

@ -96,13 +96,6 @@ void armv7m_nvic_complete_irq(void *opaque, int irq)
abort(); abort();
} }
void gdb_register_coprocessor(CPUState * env,
void * get_reg, void * set_reg,
int num_regs, const char *xml, int g_pos)
{
fprintf(stderr, "TODO: %s\n", __FUNCTION__);
}
void * void *
qemu_malloc(size_t size) qemu_malloc(size_t size)
{ {