summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-01-10 23:45:59 -0800
committerMichael Pavone <pavone@retrodev.com>2017-01-10 23:45:59 -0800
commit927a09fa524284367a0ce5c663703ca70b4621cf (patch)
tree76d04c75d483fe0a4c371a27a0a6d568ef9ecd76
parent588d69091052c3c27762eb73ab50ad0566a08e62 (diff)
Fix GDB remote protocol support
-rw-r--r--gdb_remote.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gdb_remote.c b/gdb_remote.c
index b2de7db..2742d34 100644
--- a/gdb_remote.c
+++ b/gdb_remote.c
@@ -378,7 +378,7 @@ void gdb_run_command(m68k_context * context, uint32_t pc, char * command)
if (!memcmp("Supported", command+1, strlen("Supported"))) {
sprintf(send_buf, "PacketSize=%X", (int)bufsize);
gdb_send_command(send_buf);
- } else if (!memcmp("Attached", command+1, strlen("Supported"))) {
+ } else if (!memcmp("Attached", command+1, strlen("Attached"))) {
//not really meaningful for us, but saying we spawned a new process
//is probably closest to the truth
gdb_send_command("0");
@@ -395,7 +395,12 @@ void gdb_run_command(m68k_context * context, uint32_t pc, char * command)
gdb_send_command("");
} else if (command[1] == 'C') {
//we only support a single thread currently, so send 1
- gdb_send_command("1");
+ gdb_send_command("QC1");
+ } else if (!strcmp("fThreadInfo", command + 1)) {
+ //we only support a single thread currently, so send 1
+ gdb_send_command("m1");
+ } else if (!strcmp("sThreadInfo", command + 1)) {
+ gdb_send_command("l");
} else {
goto not_impl;
}
@@ -403,6 +408,8 @@ void gdb_run_command(m68k_context * context, uint32_t pc, char * command)
case 'v':
if (!memcmp("Cont?", command+1, strlen("Cont?"))) {
gdb_send_command("vCont;c;C;s;S");
+ } else if (!strcmp("MustReplyEmpty", command + 1)) {
+ gdb_send_command("");
} else if (!memcmp("Cont;", command+1, strlen("Cont;"))) {
switch (*(command + 1 + strlen("Cont;")))
{