VirtualBox

Changeset 27438 in vbox


Ignore:
Timestamp:
Mar 17, 2010 12:02:53 PM (15 years ago)
Author:
vboxsync
Message:

We must intercept X86_XCPT_DB for VT-x as DR6 is modified by X86_EFL_TF.

Location:
trunk/src/VBox/VMM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/HWACCMInternal.h

    r27231 r27438  
    122122 */
    123123#ifdef VBOX_STRICT
    124 #define HWACCM_VMX_TRAP_MASK                RT_BIT(X86_XCPT_DE) | RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF) | RT_BIT(X86_XCPT_UD) | RT_BIT(X86_XCPT_NP) | RT_BIT(X86_XCPT_SS) | RT_BIT(X86_XCPT_GP) | RT_BIT(X86_XCPT_MF)
     124#define HWACCM_VMX_TRAP_MASK                RT_BIT(X86_XCPT_BP) | RT_BIT(X86_XCPT_DB) | RT_BIT(X86_XCPT_DE) | RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF) | RT_BIT(X86_XCPT_UD) | RT_BIT(X86_XCPT_NP) | RT_BIT(X86_XCPT_SS) | RT_BIT(X86_XCPT_GP) | RT_BIT(X86_XCPT_MF)
    125125#define HWACCM_SVM_TRAP_MASK                HWACCM_VMX_TRAP_MASK
    126126#else
    127 #define HWACCM_VMX_TRAP_MASK                RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF)
     127#define HWACCM_VMX_TRAP_MASK                RT_BIT(X86_XCPT_DB) | RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF)
    128128#define HWACCM_SVM_TRAP_MASK                RT_BIT(X86_XCPT_NM) | RT_BIT(X86_XCPT_PF)
    129129#endif
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r27231 r27438  
    12811281        pVCpu->hwaccm.s.fFPUOldStyleOverride = true;
    12821282    }
    1283 
    1284 #ifdef DEBUG /* till after branching, enable it by default then. */
    1285     /* Intercept X86_XCPT_DB if stepping is enabled */
    1286     if (    DBGFIsStepping(pVCpu)
    1287         ||  CPUMIsHyperDebugStateActive(pVCpu))
    1288         u32TrapMask |= RT_BIT(X86_XCPT_DB);
    1289     /** @todo Don't trap it unless the debugger has armed breakpoints.  */
    1290     u32TrapMask |= RT_BIT(X86_XCPT_BP);
    1291 #endif
    12921283
    12931284#ifdef VBOX_STRICT
     
    30012992
    30022993                /* Note that we don't support guest and host-initiated debugging at the same time. */
    3003                 Assert(DBGFIsStepping(pVCpu) || CPUMIsGuestInRealModeEx(pCtx) || CPUMIsHyperDebugStateActive(pVCpu));
    30042994
    30052995                uDR6  = X86_DR6_INIT_VAL;
     
    33893379            errCode |= X86_TRAP_PF_P;
    33903380        }
    3391         else {
     3381        else
     3382        {
    33923383            /* Shortcut for APIC TPR reads and writes. */
    33933384            if (    (GCPhys & 0xfff) == 0x080
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette