Implement breakpoints (untested)

This commit is contained in:
2024-10-10 21:58:40 -04:00
parent bb680f9be4
commit 1b0d2d61b3
4 changed files with 126 additions and 19 deletions
+18 -1
View File
@@ -6,13 +6,30 @@
#include <stdbool.h>
#include <vb.h>
typedef enum rdb_server_stop_reason_t {
/* not even stopped */
stop_reason_none,
/* we are stepping */
stop_reason_trace,
/* we hit an actual breakpoint */
stop_reason_breakpoint,
/* the user hit pause */
stop_reason_trap,
/* some opcode is not implemented */
stop_reason_not_implemented
} rdb_server_stop_reason_t;
#define RDB_SERVER_MAX_BREAKPOINTS 16
typedef struct RdbServer {
VB *sim;
bool running;
uint32_t brks[RDB_SERVER_MAX_BREAKPOINTS];
uint32_t brkslen;
rdb_server_stop_reason_t stopreason;
} RdbServer;
void rdbServerInit(RdbServer *srv, VB *sim);
int rdbServerHandleCommand(RdbServer *srv, CommandBuf *cmd, RdbResponse *res);
int rdbServerBreak(RdbServer *srv, RdbResponse *res);
int rdbServerSendStopPacket(RdbServer *srv, RdbResponse *res);
#endif