summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Fry <yuv422@users.noreply.github.com>2020-04-28 22:03:04 +1000
committerEric Fry <yuv422@users.noreply.github.com>2020-04-28 22:03:04 +1000
commit8adaf00407538f09d5d0cf306c4100611a5aa8af (patch)
treebb7abdbb0af6795ba29621b18b2f306fbc71f715
parent3aa05714b2e0e2ca03a8712315170c7a7c715322 (diff)
Add support for printing a byte from memory in native debugger. Add stubs for GDB commands qThreadExtraInfo and qP
-rw-r--r--debug.c6
-rw-r--r--gdb_remote.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/debug.c b/debug.c
index f58cbc1..12aa074 100644
--- a/debug.c
+++ b/debug.c
@@ -158,6 +158,9 @@ void debugger_print(m68k_context *context, char format_char, char *param, uint32
uint32_t p_addr = strtol(param+(param[0] == '0' ? 2 : 1), &after, 16);
if (after[0] == '.' && after[1] == 'l') {
value = m68k_read_long(p_addr, context);
+ } else if (after[0] == '.' && after[1] == 'b') {
+ value = m68k_read_word(p_addr, context);
+ value &= 0xFF;
} else {
value = m68k_read_word(p_addr, context);
}
@@ -166,6 +169,9 @@ void debugger_print(m68k_context *context, char format_char, char *param, uint32
uint32_t p_addr = param[1] == 'a' ? context->aregs[reg] : context->dregs[reg];
if (param[4] == '.' && param[5] == 'l') {
value = m68k_read_long(p_addr, context);
+ } else if (param[4] == '.' && param[5] == 'b') {
+ value = m68k_read_word(p_addr, context);
+ value &= 0xFF;
} else {
value = m68k_read_word(p_addr, context);
}
diff --git a/gdb_remote.c b/gdb_remote.c
index 6cf1d67..cdc73a5 100644
--- a/gdb_remote.c
+++ b/gdb_remote.c
@@ -401,6 +401,10 @@ void gdb_run_command(m68k_context * context, uint32_t pc, char * command)
gdb_send_command("m1");
} else if (!strcmp("sThreadInfo", command + 1)) {
gdb_send_command("l");
+ } else if (!memcmp("ThreadExtraInfo", command+1, strlen("ThreadExtraInfo"))) {
+ gdb_send_command("");
+ } else if (command[1] == 'P') {
+ gdb_send_command("");
} else {
goto not_impl;
}