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);
}
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;
}

View File

@ -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; }