VirtualBox

Ignore:
Timestamp:
Aug 12, 2013 11:16:55 AM (11 years ago)
Author:
vboxsync
Message:

VMM: More debugging related stuff.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r47670 r47671  
    57915791    Assert(VMMRZCallRing3IsEnabled(pVCpu));
    57925792
    5793     if (   VM_FF_IS_PENDING(pVM, VM_FF_HM_TO_R3_MASK | VM_FF_REQUEST | VM_FF_PGM_POOL_FLUSH_PENDING | VM_FF_PDM_DMA)
    5794         || VMCPU_FF_IS_PENDING(pVCpu,  VMCPU_FF_HM_TO_R3_MASK | VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL
    5795                                      | VMCPU_FF_REQUEST | VMCPU_FF_HM_UPDATE_CR3 | VMCPU_FF_HM_UPDATE_PAE_PDPES))
     5793    if (   VM_FF_IS_PENDING(pVM, !pVCpu->hm.s.fSingleInstruction
     5794                            ? VM_FF_HP_R0_PRE_HM_MASK : VM_FF_HP_R0_PRE_HM_STEP_MASK)
     5795        || VMCPU_FF_IS_PENDING(pVCpu, !pVCpu->hm.s.fSingleInstruction
     5796                               ? VMCPU_FF_HP_R0_PRE_HM_MASK : VMCPU_FF_HP_R0_PRE_HM_STEP_MASK) )
    57965797    {
    57975798        /* We need the control registers now, make sure the guest-CPU context is updated. */
     
    96289629    AssertRCReturn(rc, rc);
    96299630
     9631    /* If we sat the trap flag above, we have to clear it. */ /** @todo HM should remember what it does and possibly do this elsewhere! */
     9632    if (   (pVCpu->hm.s.fSingleInstruction || DBGFIsStepping(pVCpu))
     9633        && !(pVCpu->CTX_SUFF(pVM)->hm.s.vmx.msr.vmx_proc_ctls.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC_MONITOR_TRAP_FLAG))
     9634        pMixedCtx->eflags.Bits.u1TF = 0;
     9635
    96309636    /* Refer Intel spec. Table 27-1. "Exit Qualifications for debug exceptions" for the format. */
    96319637    uint64_t uDR6 = X86_DR6_INIT_VAL;
     
    96339639                     & (X86_DR6_B0 | X86_DR6_B1 | X86_DR6_B2 | X86_DR6_B3 | X86_DR6_BD | X86_DR6_BS));
    96349640
    9635     rc = DBGFRZTrap01Handler(pVCpu->CTX_SUFF(pVM), pVCpu, CPUMCTX2CORE(pMixedCtx), uDR6);
     9641    rc = DBGFRZTrap01Handler(pVCpu->CTX_SUFF(pVM), pVCpu, CPUMCTX2CORE(pMixedCtx), uDR6, pVCpu->hm.s.fSingleInstruction);
    96369642    if (rc == VINF_EM_RAW_GUEST_TRAP)
    96379643    {
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