From e96a66291c3b937c47cd0618b120f02bcbe51205 Mon Sep 17 00:00:00 2001 From: Colin Date: Wed, 24 Sep 2025 02:17:49 +0000 Subject: [PATCH] Refine gdbstub to supoort gdb init. --- gdbstub/gdbstub.c | 24 ++++++++++++------------ gdbstub/system.c | 6 +++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c index e249e47..2020c23 100644 --- a/gdbstub/gdbstub.c +++ b/gdbstub/gdbstub.c @@ -200,12 +200,12 @@ int gdb_read_register(CPUState *cpu, GByteArray *buf, int reg) { return cpu->cc->gdb_read_register(cpu, buf, reg); } - for (guint i = 0; i < cpu->gdb_regs->len; i++) { - r = &g_array_index(cpu->gdb_regs, GDBRegisterState, i); - if (r->base_reg <= reg && reg < r->base_reg + r->feature->num_regs) { - return r->get_reg(cpu, buf, reg - r->base_reg); - } - } + // for (guint i = 0; i < cpu->gdb_regs->len; i++) { + // r = &g_array_index(cpu->gdb_regs, GDBRegisterState, i); + // if (r->base_reg <= reg && reg < r->base_reg + r->feature->num_regs) { + // return r->get_reg(cpu, buf, reg - r->base_reg); + // } + // } return 0; } @@ -216,12 +216,12 @@ int gdb_write_register(CPUState *cpu, uint8_t *mem_buf, int reg) { return cpu->cc->gdb_write_register(cpu, mem_buf, reg); } - for (guint i = 0; i < cpu->gdb_regs->len; i++) { - r = &g_array_index(cpu->gdb_regs, GDBRegisterState, i); - if (r->base_reg <= reg && reg < r->base_reg + r->feature->num_regs) { - return r->set_reg(cpu, mem_buf, reg - r->base_reg); - } - } + // for (guint i = 0; i < cpu->gdb_regs->len; i++) { + // r = &g_array_index(cpu->gdb_regs, GDBRegisterState, i); + // if (r->base_reg <= reg && reg < r->base_reg + r->feature->num_regs) { + // return r->set_reg(cpu, mem_buf, reg - r->base_reg); + // } + // } return 0; } diff --git a/gdbstub/system.c b/gdbstub/system.c index acf1300..c2c85d4 100644 --- a/gdbstub/system.c +++ b/gdbstub/system.c @@ -355,9 +355,9 @@ void cpu_register_gdb_commands() { } int cpu_common_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg) { - uint32_t val = 0; - g_byte_array_append(buf, (uint8_t *)&val, 4); - return 4; + uint64_t val = 0; + g_byte_array_append(buf, (uint8_t *)&val, 8); + return 8; } int cpu_common_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg) { return 0; } \ No newline at end of file