Changeset 72993 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- Jul 9, 2018 4:23:39 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 123545
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r72992 r72993 7691 7691 /* If any other guest-state bits are changed here, make sure to update 7692 7692 hmR0VmxPreRunGuestCommitted() when thread-context hooks are used. */ 7693 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_CS 7694 | HM_CHANGED_GUEST_RIP 7693 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_CS | HM_CHANGED_GUEST_CR2 7694 | HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RFLAGS 7695 7695 | HM_CHANGED_GUEST_RSP); 7696 7696 … … 8622 8622 } 8623 8623 else 8624 {8625 8624 Log4Func(("VM-entry failure: rcVMRun=%Rrc fVMEntryFailed=%RTbool\n", rcVMRun, pVmxTransient->fVMEntryFailed)); 8626 }8627 8625 8628 8626 VMMRZCallRing3Enable(pVCpu); … … 8822 8820 pVCpu->hm.s.vmx.u32ProcCtls &= ~pDbgState->fCpe1Unwanted; 8823 8821 VMXWriteVmcs32(VMX_VMCS32_CTRL_PROC_EXEC, pVCpu->hm.s.vmx.u32ProcCtls); 8824 Log6 (("hmR0VmxRunDebugStateRevert:VMX_VMCS32_CTRL_PROC_EXEC: %#RX32\n", pVCpu->hm.s.vmx.u32ProcCtls));8822 Log6Func(("VMX_VMCS32_CTRL_PROC_EXEC: %#RX32\n", pVCpu->hm.s.vmx.u32ProcCtls)); 8825 8823 pDbgState->fModifiedProcCtls = true; 8826 8824 } … … 8830 8828 pVCpu->hm.s.vmx.u32ProcCtls2 |= pDbgState->fCpe2Extra; 8831 8829 VMXWriteVmcs32(VMX_VMCS32_CTRL_PROC_EXEC2, pVCpu->hm.s.vmx.u32ProcCtls2); 8832 Log6 (("hmR0VmxRunDebugStateRevert:VMX_VMCS32_CTRL_PROC_EXEC2: %#RX32\n", pVCpu->hm.s.vmx.u32ProcCtls2));8830 Log6Func(("VMX_VMCS32_CTRL_PROC_EXEC2: %#RX32\n", pVCpu->hm.s.vmx.u32ProcCtls2)); 8833 8831 pDbgState->fModifiedProcCtls2 = true; 8834 8832 } … … 8838 8836 pVCpu->hm.s.vmx.u32XcptBitmap |= pDbgState->bmXcptExtra; 8839 8837 VMXWriteVmcs32(VMX_VMCS32_CTRL_EXCEPTION_BITMAP, pVCpu->hm.s.vmx.u32XcptBitmap); 8840 Log6 (("hmR0VmxRunDebugStateRevert:VMX_VMCS32_CTRL_EXCEPTION_BITMAP: %#RX32\n", pVCpu->hm.s.vmx.u32XcptBitmap));8838 Log6Func(("VMX_VMCS32_CTRL_EXCEPTION_BITMAP: %#RX32\n", pVCpu->hm.s.vmx.u32XcptBitmap)); 8841 8839 pDbgState->fModifiedXcptBitmap = true; 8842 8840 } … … 8846 8844 pVCpu->hm.s.vmx.u32Cr0Mask = 0; 8847 8845 VMXWriteVmcs32(VMX_VMCS_CTRL_CR0_MASK, 0); 8848 Log6 (("hmR0VmxRunDebugStateRevert:VMX_VMCS_CTRL_CR0_MASK: 0\n"));8846 Log6Func(("VMX_VMCS_CTRL_CR0_MASK: 0\n")); 8849 8847 } 8850 8848 … … 8853 8851 pVCpu->hm.s.vmx.u32Cr4Mask = 0; 8854 8852 VMXWriteVmcs32(VMX_VMCS_CTRL_CR4_MASK, 0); 8855 Log6(("hmR0VmxRunDebugStateRevert: VMX_VMCS_CTRL_CR4_MASK: 0\n")); 8856 } 8857 } 8858 8859 8853 Log6Func(("VMX_VMCS_CTRL_CR4_MASK: 0\n")); 8854 } 8855 } 8856 8857 8858 /** 8859 * Restores VMCS fields that were changed by hmR0VmxPreRunGuestDebugStateApply for 8860 * re-entry next time around. 8861 * 8862 * @returns Strict VBox status code (i.e. informational status codes too). 8863 * @param pVCpu The cross context virtual CPU structure. 8864 * @param pDbgState The debug state. 8865 * @param rcStrict The return code from executing the guest using single 8866 * stepping. 8867 */ 8860 8868 static VBOXSTRICTRC hmR0VmxRunDebugStateRevert(PVMCPU pVCpu, PVMXRUNDBGSTATE pDbgState, VBOXSTRICTRC rcStrict) 8861 8869 {
Note:
See TracChangeset
for help on using the changeset viewer.