Changeset 100877 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Aug 15, 2023 8:13:22 AM (17 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/NEMR3Native-darwin.cpp
r99739 r100877 1583 1583 } 1584 1584 1585 /** @todo The DRx handling is not quite correct breaking debugging inside the guest with gdb, 1586 * see @ticketref{21413} and @ticketref{21546}, so this is disabled for now. See @bugref{10504} 1587 * as well. 1588 */ 1589 #if 0 1585 1590 if (fInterceptMovDRx) 1586 1591 uProcCtls |= VMX_PROC_CTLS_MOV_DR_EXIT; 1587 1592 else 1588 1593 uProcCtls &= ~VMX_PROC_CTLS_MOV_DR_EXIT; 1594 #endif 1589 1595 1590 1596 /* … … 1598 1604 pVmcsInfo->u32ProcCtls = uProcCtls; 1599 1605 } 1606 1607 /* 1608 * Update guest DR7. 1609 */ 1610 int rc = nemR3DarwinWriteVmcs64(pVCpu, VMX_VMCS_GUEST_DR7, u64GuestDr7); 1611 AssertRC(rc); 1600 1612 1601 1613 /* … … 1611 1623 1612 1624 uint32_t fIntrState = 0; 1613 intrc = nemR3DarwinReadVmcs32(pVCpu, VMX_VMCS32_GUEST_INT_STATE, &fIntrState);1625 rc = nemR3DarwinReadVmcs32(pVCpu, VMX_VMCS32_GUEST_INT_STATE, &fIntrState); 1614 1626 AssertRC(rc); 1615 1627 … … 2676 2688 uint32_t const fZap = g_HmMsrs.u.vmx.ProcCtls.n.allowed1; /* Bits cleared here must be cleared in the VMCS. */ 2677 2689 2690 /** @todo The DRx handling is not quite correct breaking debugging inside the guest with gdb, 2691 * see @ticketref{21413} and @ticketref{21546}, so intercepting mov drX is disabled for now. See @bugref{10504} 2692 * as well. This will break the hypervisor debugger but only very few people use it and even less on macOS 2693 * using the NEM backend. 2694 */ 2678 2695 fVal |= VMX_PROC_CTLS_HLT_EXIT /* HLT causes a VM-exit. */ 2679 2696 // | VMX_PROC_CTLS_USE_TSC_OFFSETTING /* Use TSC-offsetting. */ 2680 | VMX_PROC_CTLS_MOV_DR_EXIT /* MOV DRx causes a VM-exit. */2697 // | VMX_PROC_CTLS_MOV_DR_EXIT /* MOV DRx causes a VM-exit. */ 2681 2698 | VMX_PROC_CTLS_UNCOND_IO_EXIT /* All IO instructions cause a VM-exit. */ 2682 2699 | VMX_PROC_CTLS_RDPMC_EXIT /* RDPMC causes a VM-exit. */ … … 2783 2800 * recursive #DBs can cause a CPU hang. 2784 2801 */ 2802 /** @todo The DRx handling is not quite correct breaking debugging inside the guest with gdb, 2803 * see @ticketref{21413} and @ticketref{21546}, so intercepting #DB is disabled for now. See @bugref{10504} 2804 * as well. This will break the hypervisor debugger but only very few people use it and even less on macOS 2805 * using the NEM backend. 2806 */ 2785 2807 uint32_t const uXcptBitmap = RT_BIT(X86_XCPT_AC) 2786 | RT_BIT(X86_XCPT_DB);2808 /*| RT_BIT(X86_XCPT_DB)*/; 2787 2809 2788 2810 /* Commit it to the VMCS. */
Note:
See TracChangeset
for help on using the changeset viewer.