~vcs-imports/qemu/git

« back to all changes in this revision

Viewing changes to exec.c

  • Committer: aliguori
  • Date: 2009-03-12 20:12:48 UTC
  • Revision ID: git-v1:e22a25c9361c44995c9241c24df0e1e2c47a56c8
Guest debugging support for KVM (Jan Kiszka)

This is a backport of the guest debugging support for the KVM
accelerator that is now part of the KVM tree. It implements the reworked
KVM kernel API for guest debugging (KVM_CAP_SET_GUEST_DEBUG) which is
not yet part of any mainline kernel but will probably be 2.6.30 stuff.
So far supported is x86, but PPC is expected to catch up soon.

Core features are:
 - unlimited soft-breakpoints via code patching
 - hardware-assisted x86 breakpoints and watchpoints

Changes in this version:
 - use generic hook cpu_synchronize_state to transfer registers between
   user space and kvm
 - push kvm_sw_breakpoints into KVMState

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@6825 c046a42c-6fe2-441c-8c8c-71466251a162

Show diffs side-by-side

added added

removed removed

Lines of Context:
1457
1457
#if defined(TARGET_HAS_ICE)
1458
1458
    if (env->singlestep_enabled != enabled) {
1459
1459
        env->singlestep_enabled = enabled;
1460
 
        /* must flush all the translated code to avoid inconsistancies */
1461
 
        /* XXX: only flush what is necessary */
1462
 
        tb_flush(env);
 
1460
        if (kvm_enabled())
 
1461
            kvm_update_guest_debug(env, 0);
 
1462
        else {
 
1463
            /* must flush all the translated code to avoid inconsistancies */
 
1464
            /* XXX: only flush what is necessary */
 
1465
            tb_flush(env);
 
1466
        }
1463
1467
    }
1464
1468
#endif
1465
1469
}