Refine gdbstub to supoort gdb init.

This commit is contained in:
Colin 2025-09-24 02:17:49 +00:00
parent a40a4b3381
commit e96a66291c
2 changed files with 15 additions and 15 deletions

View File

@ -200,12 +200,12 @@ int gdb_read_register(CPUState *cpu, GByteArray *buf, int reg) {
return cpu->cc->gdb_read_register(cpu, buf, reg); return cpu->cc->gdb_read_register(cpu, buf, reg);
} }
for (guint i = 0; i < cpu->gdb_regs->len; i++) { // for (guint i = 0; i < cpu->gdb_regs->len; i++) {
r = &g_array_index(cpu->gdb_regs, GDBRegisterState, i); // r = &g_array_index(cpu->gdb_regs, GDBRegisterState, i);
if (r->base_reg <= reg && reg < r->base_reg + r->feature->num_regs) { // if (r->base_reg <= reg && reg < r->base_reg + r->feature->num_regs) {
return r->get_reg(cpu, buf, reg - r->base_reg); // return r->get_reg(cpu, buf, reg - r->base_reg);
} // }
} // }
return 0; 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); return cpu->cc->gdb_write_register(cpu, mem_buf, reg);
} }
for (guint i = 0; i < cpu->gdb_regs->len; i++) { // for (guint i = 0; i < cpu->gdb_regs->len; i++) {
r = &g_array_index(cpu->gdb_regs, GDBRegisterState, i); // r = &g_array_index(cpu->gdb_regs, GDBRegisterState, i);
if (r->base_reg <= reg && reg < r->base_reg + r->feature->num_regs) { // 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 r->set_reg(cpu, mem_buf, reg - r->base_reg);
} // }
} // }
return 0; return 0;
} }

View File

@ -355,9 +355,9 @@ void cpu_register_gdb_commands() {
} }
int cpu_common_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg) { int cpu_common_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg) {
uint32_t val = 0; uint64_t val = 0;
g_byte_array_append(buf, (uint8_t *)&val, 4); g_byte_array_append(buf, (uint8_t *)&val, 8);
return 4; return 8;
} }
int cpu_common_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg) { return 0; } int cpu_common_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg) { return 0; }