aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2008-11-18 21:08:15 +0000
committeraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2008-11-18 21:08:15 +0000
commit01df040b52474b463d00fe908d5a14e1ecdc75bc (patch)
tree2d12dee18e87fae0438a76c4ae588a5f5a149eab /target-i386/machine.c
parentIntroduce BP_CPU as a breakpoint type (Jan Kiszka) (diff)
downloadqemu-kvm-01df040b52474b463d00fe908d5a14e1ecdc75bc.tar.gz
qemu-kvm-01df040b52474b463d00fe908d5a14e1ecdc75bc.tar.bz2
qemu-kvm-01df040b52474b463d00fe908d5a14e1ecdc75bc.zip
x86: Debug register emulation (Jan Kiszka)
Built on top of previously enhanced breakpoint/watchpoint support, this patch adds full debug register emulation for the x86 architecture. Many corner cases were considered, and the result was successfully tested inside a Linux guest with gdb, but I won't be surprised if one or two scenarios still behave differently in reality. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5747 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-i386/machine.c')
-rw-r--r--target-i386/machine.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/target-i386/machine.c b/target-i386/machine.c
index 7f78b0da9..faab2eb4c 100644
--- a/target-i386/machine.c
+++ b/target-i386/machine.c
@@ -259,6 +259,10 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
for(i = 0; i < 8; i++)
qemu_get_betls(f, &env->dr[i]);
+ cpu_breakpoint_remove_all(env, BP_CPU);
+ cpu_watchpoint_remove_all(env, BP_CPU);
+ for (i = 0; i < 4; i++)
+ hw_breakpoint_insert(env, i);
/* MMU */
qemu_get_sbe32s(f, &a20_mask);