Я пытаюсь настроить регистры отладки на хосте, чтобы я мог отслеживать адрес гостя, работающего на Intel VT-x. Для этого я позвонил KVM_SET_GUEST_DEBUG IOCTL.
struct kvm_guest_debug guest_debug;
guest_debug.control = KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_HW_BP;
guest_debug.arch.debugreg[0] = addr; // DR0
guest_debug.arch.debugreg[7] = encode_dr7(0, len, bpType);
if (ioctl(vcpu_fd, KVM_SET_GUEST_DEBUG, &guest_debug) < 0)
return false;
Успешно настроен регистр отладки. Но при чтении / записи отладочного регистра он вызывает VM_EXIT с EXIT_REASON_EXCEPTION_NMI. Хотя я ожидаю иметь EXIT_REASON_DR_ACCESS. В чем причина выхода nmi вместо выхода DR_ACCESS? Я правильно установил регистры?