]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Enable KVM guest single-stepping
authorPekka Enberg <penberg@cs.helsinki.fi>
Wed, 24 Mar 2010 20:16:07 +0000 (22:16 +0200)
committerPekka Enberg <penberg@cs.helsinki.fi>
Wed, 24 Mar 2010 20:16:07 +0000 (22:16 +0200)
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
tools/kvm/kvm.c

index 1dceb768c9f569aae7be5d9d181264b34ac4631d..1859f4e10ad9f08ab110ea4ab98a68d5c229a910 100644 (file)
@@ -140,6 +140,16 @@ static void kvm__run(struct kvm *self)
                die_perror("KVM_RUN failed");
 }
 
+static void kvm__enable_singlestep(struct kvm *self)
+{
+       struct kvm_guest_debug debug = {
+               .control        = KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_SINGLESTEP,
+       };
+
+       if (ioctl(self->vcpu_fd, KVM_SET_GUEST_DEBUG, &debug) < 0)
+               die("KVM_SET_GUEST_DEBUG failed");
+}
+
 static void kvm__show_registers(struct kvm *self)
 {
        unsigned long rax, rbx, rcx;
@@ -318,6 +328,8 @@ int main(int argc, char *argv[])
 
        kvm__reset_vcpu(kvm, kernel_start);
 
+       kvm__enable_singlestep(kvm);
+
        for (;;) {
                kvm__run(kvm);