aboutsummaryrefslogtreecommitdiff
path: root/gdbstub.c
diff options
context:
space:
mode:
authorAnthony Liguori <anthony@codemonkey.ws>2013-08-20 09:51:53 -0500
committerAnthony Liguori <anthony@codemonkey.ws>2013-08-20 09:51:53 -0500
commit237e4f92a81696e5359766a7f19a77a9ff1d02e5 (patch)
treeae60a299d73e3f0742bf4238c3c379466510d7ad /gdbstub.c
parentbc02fb304c6cc0f1dd0809545d226df2d6f5c093 (diff)
parent321bc0b2b27aa2dd64bf12e0e2a0f323a4903ecf (diff)
Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging
QOM CPUState refactorings / X86CPU * gdbstub coprocessor register count bugfix * QOM instance_post_init infrastructure to override dynamic properties * X86CPU HyperV preparations for CPU subclasses # gpg: Signature made Fri 16 Aug 2013 11:49:02 AM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Eduardo Habkost (3) and others # Via Andreas Färber * afaerber/tags/qom-cpu-for-anthony: cpus: Use cpu_is_stopped() efficiently target-i386: Move hyperv_* static globals to X86CPU qdev: Set globals in instance_post_init function qom: Introduce instance_post_init hook tests: Unit tests for qdev global properties handling gdbstub: Fix gdb_register_coprocessor() register counting
Diffstat (limited to 'gdbstub.c')
-rw-r--r--gdbstub.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gdbstub.c b/gdbstub.c
index 1af25a6fe6..9d067d6b80 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -621,6 +621,8 @@ void gdb_register_coprocessor(CPUState *cpu,
if (g_pos != s->base_reg) {
fprintf(stderr, "Error: Bad gdb register numbering for '%s'\n"
"Expected %d got %d\n", xml, g_pos, s->base_reg);
+ } else {
+ cpu->gdb_num_g_regs = cpu->gdb_num_regs;
}
}
}
@@ -902,7 +904,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
case 'g':
cpu_synchronize_state(s->g_cpu);
len = 0;
- for (addr = 0; addr < s->g_cpu->gdb_num_regs; addr++) {
+ for (addr = 0; addr < s->g_cpu->gdb_num_g_regs; addr++) {
reg_size = gdb_read_register(s->g_cpu, mem_buf + len, addr);
len += reg_size;
}
@@ -914,7 +916,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
registers = mem_buf;
len = strlen(p) / 2;
hextomem((uint8_t *)registers, p, len);
- for (addr = 0; addr < s->g_cpu->gdb_num_regs && len > 0; addr++) {
+ for (addr = 0; addr < s->g_cpu->gdb_num_g_regs && len > 0; addr++) {
reg_size = gdb_write_register(s->g_cpu, registers, addr);
len -= reg_size;
registers += reg_size;