VirtualBox

Changeset 42773 in vbox


Ignore:
Timestamp:
Aug 11, 2012 8:16:58 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
79992
Message:

TRPM: Logging changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMRC/TRPMRCHandlers.cpp

    r42450 r42773  
    5858#define DTRACE_EXPERIMENT
    5959
     60#if 1
     61# define TRPM_ENTER_DBG_HOOK(a_iVector)          do {} while (0)
     62# define TRPM_EXIT_DBG_HOOK(a_iVector)           do {} while (0)
     63# define TRPM_ENTER_DBG_HOOK_HYPER(a_iVector)    do {} while (0)
     64# define TRPM_EXIT_DBG_HOOK_HYPER(a_iVector)     do {} while (0)
     65#else
     66# define TRPM_ENTER_DBG_HOOK(a_iVector) \
     67    uint32_t const fDbgEFlags1 = CPUMRawGetEFlags(pVCpu); \
     68    if (!(fDbgEFlags1 & X86_EFL_IF)) Log(("%s: IF=0 ##\n", __FUNCTION__)); \
     69    else do {} while(0)
     70# define TRPM_EXIT_DBG_HOOK(a_iVector) \
     71    do { \
     72        uint32_t const fDbgEFlags2 = CPUMRawGetEFlags(pVCpu); \
     73        if ((fDbgEFlags1 ^ fDbgEFlags2) & (X86_EFL_IF | X86_EFL_IOPL)) \
     74            Log(("%s: IF=%d->%d IOPL=%d->%d !#\n", __FUNCTION__, \
     75                 !!(fDbgEFlags1 & X86_EFL_IF), !!(fDbgEFlags2 & X86_EFL_IF), \
     76                 X86_EFL_GET_IOPL(fDbgEFlags1), X86_EFL_GET_IOPL(fDbgEFlags2) )); \
     77        else if (!(fDbgEFlags2 & X86_EFL_IF)) Log(("%s: IF=0 [ret] ##\n", __FUNCTION__)); \
     78    } while (0)
     79# define TRPM_ENTER_DBG_HOOK_HYPER(a_iVector)    do {} while (0)
     80# define TRPM_EXIT_DBG_HOOK_HYPER(a_iVector)     do {} while (0)
     81#endif
    6082
    6183/*******************************************************************************
     
    260282    }
    261283
    262     AssertMsg(     rc != VINF_SUCCESS
    263               ||   (   pRegFrame->eflags.Bits.u1IF
    264                     && ( pRegFrame->eflags.Bits.u2IOPL < (unsigned)(pRegFrame->ss.Sel & X86_SEL_RPL) || pRegFrame->eflags.Bits.u1VM))
    265               , ("rc=%Rrc\neflags=%RX32 ss=%RTsel IOPL=%d\n", rc, pRegFrame->eflags.u32, pRegFrame->ss.Sel, pRegFrame->eflags.Bits.u2IOPL));
     284    /* Note! TRPMRCHandlersA.asm performs sanity checks in debug builds.*/
    266285    PGMRZDynMapReleaseAutoSet(pVCpu);
    267286    return rc;
     
    285304    PVM         pVM   = TRPMCPU_2_VM(pTrpmCpu);
    286305    PVMCPU      pVCpu = TRPMCPU_2_VMCPU(pTrpmCpu);
    287 
    288     LogFlow(("TRPMGC01: cs:eip=%04x:%08x uDr6=%RTreg\n", pRegFrame->cs.Sel, pRegFrame->eip, uDr6));
     306    LogFlow(("TRPMGC01: cs:eip=%04x:%08x uDr6=%RTreg EFL=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, uDr6, CPUMRawGetEFlags(pVCpu)));
     307    TRPM_ENTER_DBG_HOOK(1);
    289308
    290309    /*
     
    307326
    308327    rc = trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    309     Log6(("TRPMGC01: %Rrc (%04x:%08x %RTreg)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, uDr6));
     328    Log6(("TRPMGC01: %Rrc (%04x:%08x %RTreg %EFlag=%#x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, uDr6, CPUMRawGetEFlags(pVCpu)));
     329    TRPM_EXIT_DBG_HOOK(1);
    310330    return rc;
    311331}
     
    332352    PVM         pVM   = TRPMCPU_2_VM(pTrpmCpu);
    333353    PVMCPU      pVCpu = TRPMCPU_2_VMCPU(pTrpmCpu);
    334 
     354    TRPM_ENTER_DBG_HOOK_HYPER(1);
    335355    LogFlow(("TRPMGCHyper01: cs:eip=%04x:%08x uDr6=%RTreg\n", pRegFrame->cs.Sel, pRegFrame->eip, uDr6));
    336356
     
    352372
    353373    Log6(("TRPMGCHyper01: %Rrc (%04x:%08x %RTreg)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, uDr6));
     374    TRPM_EXIT_DBG_HOOK_HYPER(1);
    354375    return rc;
    355376}
     
    414435DECLASM(int) TRPMGCTrap03Handler(PTRPMCPU pTrpmCpu, PCPUMCTXCORE pRegFrame)
    415436{
    416     LogFlow(("TRPMGC03: %04x:%08x\n", pRegFrame->cs.Sel, pRegFrame->eip));
    417437    PVM     pVM   = TRPMCPU_2_VM(pTrpmCpu);
    418438    PVMCPU  pVCpu = TRPMCPU_2_VMCPU(pTrpmCpu);
    419439    int     rc;
     440    LogFlow(("TRPMGC03: %04x:%08x EFL=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     441    TRPM_ENTER_DBG_HOOK(3);
    420442    PGMRZDynMapStartAutoSet(pVCpu);
    421443
     
    433455        {
    434456            rc = trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    435             Log6(("TRPMGC03: %Rrc (%04x:%08x) (PATM)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip));
     457            Log6(("TRPMGC03: %Rrc (%04x:%08x EFL=%x) (PATM)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     458            TRPM_EXIT_DBG_HOOK(3);
    436459            return rc;
    437460        }
     
    441464    /* anything we should do with this? Schedule it in GC? */
    442465    rc = trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    443     Log6(("TRPMGC03: %Rrc (%04x:%08x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip));
     466    Log6(("TRPMGC03: %Rrc (%04x:%08x EFL=%x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     467    TRPM_EXIT_DBG_HOOK(3);
    444468    return rc;
    445469}
     
    462486DECLASM(int) TRPMGCHyperTrap03Handler(PTRPMCPU pTrpmCpu, PCPUMCTXCORE pRegFrame)
    463487{
    464     LogFlow(("TRPMGCHyper03: %04x:%08x\n", pRegFrame->cs.Sel, pRegFrame->eip));
    465488    PVM     pVM   = TRPMCPU_2_VM(pTrpmCpu);
    466489    PVMCPU  pVCpu = TRPMCPU_2_VMCPU(pTrpmCpu);
     490    LogFlow(("TRPMGCHyper03: %04x:%08x EFL=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     491    TRPM_ENTER_DBG_HOOK_HYPER(3);
    467492
    468493    /*
     
    472497    AssertStmt(rc != VINF_EM_RAW_GUEST_TRAP, rc = VERR_TRPM_IPE_2);
    473498
    474     Log6(("TRPMGCHyper03: %Rrc (%04x:%08x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip));
     499    Log6(("TRPMGCHyper03: %Rrc (%04x:%08x EFL=%x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     500    TRPM_EXIT_DBG_HOOK_HYPER(3);
    475501    return rc;
    476502}
     
    490516DECLASM(int) TRPMGCTrap06Handler(PTRPMCPU pTrpmCpu, PCPUMCTXCORE pRegFrame)
    491517{
    492     LogFlow(("TRPMGC06: %04x:%08x efl=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, pRegFrame->eflags.u32));
    493518    PVM     pVM   = TRPMCPU_2_VM(pTrpmCpu);
    494519    PVMCPU  pVCpu = TRPMCPU_2_VMCPU(pTrpmCpu);
    495520    int     rc;
     521    LogFlow(("TRPMGC06: %04x:%08x EFL=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, pRegFrame->eflags.u32, CPUMRawGetEFlags(pVCpu)));
     522    TRPM_ENTER_DBG_HOOK(6);
    496523    PGMRZDynMapStartAutoSet(pVCpu);
    497524
     
    508535            Log(("TRPMGCTrap06Handler: Failed to convert %RTsel:%RX32 (cpl=%d) - rc=%Rrc !!\n", pRegFrame->cs.Sel, pRegFrame->eip, pRegFrame->ss.Sel & X86_SEL_RPL, rc));
    509536            rc = trpmGCExitTrap(pVM, pVCpu, VINF_EM_RAW_GUEST_TRAP, pRegFrame);
    510             Log6(("TRPMGC06: %Rrc (%04x:%08x) (SELM)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip));
     537            Log6(("TRPMGC06: %Rrc (%04x:%08x EFL=%x) (SELM)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     538            TRPM_EXIT_DBG_HOOK(6);
    511539            return rc;
    512540        }
     
    518546        {
    519547            rc = trpmGCExitTrap(pVM, pVCpu, VINF_EM_RAW_EMULATE_INSTR, pRegFrame);
    520             Log6(("TRPMGC06: %Rrc (%04x:%08x) (EM)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip));
     548            Log6(("TRPMGC06: %Rrc (%04x:%08x EFL=%x) (EM)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     549            TRPM_EXIT_DBG_HOOK(6);
    521550            return rc;
    522551        }
     
    540569            {
    541570                rc = trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    542                 Log6(("TRPMGC06: %Rrc (%04x:%08x) (PATM)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip));
     571                Log6(("TRPMGC06: %Rrc (%04x:%08x EFL=%x) (PATM)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     572                TRPM_EXIT_DBG_HOOK(6);
    543573                return rc;
    544574            }
     
    581611
    582612    rc = trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    583     Log6(("TRPMGC06: %Rrc (%04x:%08x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip));
     613    Log6(("TRPMGC06: %Rrc (%04x:%08x EFL=%x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     614    TRPM_EXIT_DBG_HOOK(6);
    584615    return rc;
    585616}
     
    601632DECLASM(int) TRPMGCTrap07Handler(PTRPMCPU pTrpmCpu, PCPUMCTXCORE pRegFrame)
    602633{
    603     LogFlow(("TRPMGC07: %04x:%08x\n", pRegFrame->cs.Sel, pRegFrame->eip));
    604634    PVM     pVM   = TRPMCPU_2_VM(pTrpmCpu);
    605635    PVMCPU  pVCpu = TRPMCPU_2_VMCPU(pTrpmCpu);
     636    LogFlow(("TRPMGC07: %04x:%08x EFL=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     637    TRPM_ENTER_DBG_HOOK(7);
    606638    PGMRZDynMapStartAutoSet(pVCpu);
    607639
    608640    int rc = CPUMHandleLazyFPU(pVCpu);
    609641    rc = trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    610     Log6(("TRPMGC07: %Rrc (%04x:%08x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip));
     642    Log6(("TRPMGC07: %Rrc (%04x:%08x EFL=%x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     643    TRPM_EXIT_DBG_HOOK(7);
    611644    return rc;
    612645}
     
    626659DECLASM(int) TRPMGCTrap0bHandler(PTRPMCPU pTrpmCpu, PCPUMCTXCORE pRegFrame)
    627660{
    628     LogFlow(("TRPMGC0b: %04x:%08x\n", pRegFrame->cs.Sel, pRegFrame->eip));
    629661    PVM     pVM   = TRPMCPU_2_VM(pTrpmCpu);
    630662    PVMCPU  pVCpu = TRPMCPU_2_VMCPU(pTrpmCpu);
     663    LogFlow(("TRPMGC0b: %04x:%08x EFL=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     664    TRPM_ENTER_DBG_HOOK(0xb);
    631665    PGMRZDynMapStartAutoSet(pVCpu);
    632666
     
    702736             */
    703737            pTrpmCpu->uActiveVector = UINT32_MAX;
    704             Log6(("TRPMGC0b: %Rrc (%04x:%08x) (CG)\n", VINF_EM_RAW_RING_SWITCH, pRegFrame->cs.Sel, pRegFrame->eip));
     738            Log6(("TRPMGC0b: %Rrc (%04x:%08x EFL=%x) (CG)\n", VINF_EM_RAW_RING_SWITCH, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     739            TRPM_EXIT_DBG_HOOK(0xb);
    705740            PGMRZDynMapReleaseAutoSet(pVCpu);
    706741            return VINF_EM_RAW_RING_SWITCH;
     
    711746     * Pass trap 0b as is to the recompiler in all other cases.
    712747     */
    713     Log6(("TRPMGC0b: %Rrc (%04x:%08x)\n", VINF_EM_RAW_GUEST_TRAP, pRegFrame->cs.Sel, pRegFrame->eip));
     748    Log6(("TRPMGC0b: %Rrc (%04x:%08x EFL=%x)\n", VINF_EM_RAW_GUEST_TRAP, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
    714749    PGMRZDynMapReleaseAutoSet(pVCpu);
     750    TRPM_EXIT_DBG_HOOK(0xb);
    715751    return VINF_EM_RAW_GUEST_TRAP;
    716752}
     
    733769{
    734770    int     rc;
     771    TRPM_ENTER_DBG_HOOK(0xd);
    735772
    736773    /*
     
    761798            rc = TRPMForwardTrap(pVCpu, pRegFrame, (uint32_t)pCpu->Param1.uValue, pCpu->cbInstr, TRPM_TRAP_NO_ERRORCODE, TRPM_SOFTWARE_INT, 0xd);
    762799            if (RT_SUCCESS(rc) && rc != VINF_EM_RAW_GUEST_TRAP)
     800            {
     801                TRPM_EXIT_DBG_HOOK(0xd);
    763802                return trpmGCExitTrap(pVM, pVCpu, VINF_SUCCESS, pRegFrame);
     803            }
    764804
    765805            pVCpu->trpm.s.uActiveVector = (pVCpu->trpm.s.uActiveErrorCode & X86_TRAP_ERR_SEL_MASK) >> X86_TRAP_ERR_SEL_SHIFT;
     
    772812        case OP_SYSRET:
    773813            rc = PATMSysCall(pVM, pRegFrame, pCpu);
     814            TRPM_EXIT_DBG_HOOK(0xd);
    774815            return trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    775816#endif
     
    781822
    782823            pRegFrame->eip += pCpu->cbInstr;
     824            TRPM_EXIT_DBG_HOOK(0xd);
    783825            return trpmGCExitTrap(pVM, pVCpu, VINF_EM_HALT, pRegFrame);
    784826
     
    809851            if (rc == VERR_EM_INTERPRETER)
    810852                rc = VINF_EM_RAW_EXCEPTION_PRIVILEGED;
     853            TRPM_EXIT_DBG_HOOK(0xd);
    811854            return trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    812855        }
    813856    }
    814857
     858    TRPM_EXIT_DBG_HOOK(0xd);
    815859    return trpmGCExitTrap(pVM, pVCpu, VINF_EM_RAW_EXCEPTION_PRIVILEGED, pRegFrame);
    816860}
     
    834878    int     rc;
    835879    Assert(!pRegFrame->eflags.Bits.u1VM);
     880    TRPM_ENTER_DBG_HOOK(0xd);
    836881
    837882    switch (pCpu->pCurInstr->uOpcode)
     
    853898            rc = TRPMForwardTrap(pVCpu, pRegFrame, (uint32_t)pCpu->Param1.uValue, pCpu->cbInstr, TRPM_TRAP_NO_ERRORCODE, TRPM_SOFTWARE_INT, 0xd);
    854899            if (RT_SUCCESS(rc) && rc != VINF_EM_RAW_GUEST_TRAP)
     900            {
     901                TRPM_EXIT_DBG_HOOK(0xd);
    855902                return trpmGCExitTrap(pVM, pVCpu, VINF_SUCCESS, pRegFrame);
     903            }
    856904
    857905            pVCpu->trpm.s.uActiveVector = (pVCpu->trpm.s.uActiveErrorCode & X86_TRAP_ERR_SEL_MASK) >> X86_TRAP_ERR_SEL_SHIFT;
    858906            pVCpu->trpm.s.enmActiveType = TRPM_SOFTWARE_INT;
     907            TRPM_EXIT_DBG_HOOK(0xd);
    859908            return trpmGCExitTrap(pVM, pVCpu, VINF_EM_RAW_RING_SWITCH_INT, pRegFrame);
    860909        }
     
    868917            rc = PATMSysCall(pVM, pRegFrame, pCpu);
    869918            if (rc == VINF_SUCCESS)
     919            {
     920                TRPM_EXIT_DBG_HOOK(0xd);
    870921                return trpmGCExitTrap(pVM, pVCpu, VINF_SUCCESS, pRegFrame);
     922            }
    871923            /* else no break; */
    872924#endif
     
    874926        case OP_INTO:
    875927            pVCpu->trpm.s.uActiveVector = UINT32_MAX;
     928            TRPM_EXIT_DBG_HOOK(0xd);
    876929            return trpmGCExitTrap(pVM, pVCpu, VINF_EM_RAW_RING_SWITCH, pRegFrame);
    877930
     
    885938            if (rc == VERR_EM_INTERPRETER)
    886939                rc = VINF_EM_RAW_EXCEPTION_PRIVILEGED;
     940            TRPM_EXIT_DBG_HOOK(0xd);
    887941            return trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    888942        }
     
    898952            {
    899953                LogFlow(("trpmGCTrap0dHandlerRing3: CLI/STI -> REM\n"));
     954                TRPM_EXIT_DBG_HOOK(0xd);
    900955                return trpmGCExitTrap(pVM, pVCpu, VINF_EM_RESCHEDULE_REM, pRegFrame);
    901956            }
     
    908963     * A genuine guest fault.
    909964     */
     965    TRPM_EXIT_DBG_HOOK(0xd);
    910966    return trpmGCExitTrap(pVM, pVCpu, VINF_EM_RAW_GUEST_TRAP, pRegFrame);
    911967}
     
    925981{
    926982    STAM_COUNTER_INC(&pVM->trpm.s.StatTrap0dRdTsc);
     983    TRPM_ENTER_DBG_HOOK(0xd);
    927984
    928985    if (CPUMGetGuestCR4(pVCpu) & X86_CR4_TSD)
     986    {
     987        TRPM_EXIT_DBG_HOOK(0xd);
    929988        return trpmGCExitTrap(pVM, pVCpu, VINF_EM_RAW_EMULATE_INSTR, pRegFrame); /* will trap (optimize later). */
     989    }
    930990
    931991    uint64_t uTicks = TMCpuTickGet(pVCpu);
     
    933993    pRegFrame->edx = uTicks >> 32;
    934994    pRegFrame->eip += 2;
     995    TRPM_EXIT_DBG_HOOK(0xd);
    935996    return trpmGCExitTrap(pVM, pVCpu, VINF_SUCCESS, pRegFrame);
    936997}
     
    9501011static int trpmGCTrap0dHandler(PVM pVM, PTRPMCPU pTrpmCpu, PCPUMCTXCORE pRegFrame)
    9511012{
    952     LogFlow(("trpmGCTrap0dHandler: cs:eip=%RTsel:%08RX32 uErr=%RGv\n", pRegFrame->cs.Sel, pRegFrame->eip, pTrpmCpu->uActiveErrorCode));
    9531013    PVMCPU  pVCpu = TRPMCPU_2_VMCPU(pTrpmCpu);
     1014    LogFlow(("trpmGCTrap0dHandler: cs:eip=%RTsel:%08RX32 uErr=%RGv EFL=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, pTrpmCpu->uActiveErrorCode, CPUMRawGetEFlags(pVCpu)));
     1015    TRPM_ENTER_DBG_HOOK(0xd);
    9541016
    9551017    /*
     
    9641026        Log(("trpmGCTrap0dHandler: Failed to convert %RTsel:%RX32 (cpl=%d) - rc=%Rrc !!\n",
    9651027             pRegFrame->cs.Sel, pRegFrame->eip, pRegFrame->ss.Sel & X86_SEL_RPL, rc));
     1028        TRPM_EXIT_DBG_HOOK(0xd);
    9661029        STAM_PROFILE_STOP(&pVM->trpm.s.StatTrap0dDisasm, a);
    9671030        return trpmGCExitTrap(pVM, pVCpu, VINF_EM_RAW_EMULATE_INSTR, pRegFrame);
     
    9771040    {
    9781041        AssertMsgFailed(("DISCoreOneEx failed to PC=%RGv rc=%Rrc\n", PC, rc));
     1042        TRPM_EXIT_DBG_HOOK(0xd);
    9791043        STAM_PROFILE_STOP(&pVM->trpm.s.StatTrap0dDisasm, a);
    9801044        return trpmGCExitTrap(pVM, pVCpu, VINF_EM_RAW_EMULATE_INSTR, pRegFrame);
     
    10021066            pRegFrame->rip += cbOp;
    10031067        rc = VBOXSTRICTRC_TODO(rcStrict);
     1068        TRPM_EXIT_DBG_HOOK(0xd);
    10041069        return trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    10051070    }
     
    10351100        rc = TRPMForwardTrap(pVCpu, pRegFrame, 0xD, 0, TRPM_TRAP_HAS_ERRORCODE, TRPM_TRAP, 0xd);
    10361101        Assert(rc == VINF_EM_RAW_GUEST_TRAP);
     1102        TRPM_EXIT_DBG_HOOK(0xd);
    10371103        return trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    10381104    }
     1105    TRPM_EXIT_DBG_HOOK(0xd);
    10391106    return trpmGCExitTrap(pVM, pVCpu, VINF_EM_RAW_EMULATE_INSTR, pRegFrame);
    10401107}
     
    10561123    PVM     pVM   = TRPMCPU_2_VM(pTrpmCpu);
    10571124    PVMCPU  pVCpu = TRPMCPU_2_VMCPU(pTrpmCpu);
    1058 
    1059     LogFlow(("TRPMGC0d: %04x:%08x err=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, (uint32_t)pVCpu->trpm.s.uActiveErrorCode));
     1125    LogFlow(("TRPMGC0d: %04x:%08x err=%x EFL=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, (uint32_t)pVCpu->trpm.s.uActiveErrorCode, CPUMRawGetEFlags(pVCpu)));
     1126    TRPM_ENTER_DBG_HOOK(0xd);
    10601127
    10611128    PGMRZDynMapStartAutoSet(pVCpu);
     
    10921159            break;
    10931160        }
    1094     Log6(("TRPMGC0d: %Rrc (%04x:%08x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip));
     1161    Log6(("TRPMGC0d: %Rrc (%04x:%08x EFL=%x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     1162    TRPM_EXIT_DBG_HOOK(0xd);
    10951163    return rc;
    10961164}
     
    11151183    PVM     pVM   = TRPMCPU_2_VM(pTrpmCpu);
    11161184    PVMCPU  pVCpu = TRPMCPU_2_VMCPU(pTrpmCpu);
    1117 
    1118     LogFlow(("TRPMGC0e: %04x:%08x err=%x cr2=%08x\n", pRegFrame->cs.Sel, pRegFrame->eip, (uint32_t)pVCpu->trpm.s.uActiveErrorCode, (uint32_t)pVCpu->trpm.s.uActiveCR2));
     1185    LogFlow(("TRPMGC0e: %04x:%08x err=%x cr2=%08x EFL=%x\n", pRegFrame->cs.Sel, pRegFrame->eip, (uint32_t)pVCpu->trpm.s.uActiveErrorCode, (uint32_t)pVCpu->trpm.s.uActiveCR2, CPUMRawGetEFlags(pVCpu)));
     1186    TRPM_ENTER_DBG_HOOK(0xe);
    11191187
    11201188    /*
     
    11391207            {
    11401208                PGMRZDynMapReleaseAutoSet(pVCpu);
     1209                TRPM_EXIT_DBG_HOOK(0xe);
    11411210                return VINF_PATM_PATCH_TRAP_PF;
    11421211            }
     
    11681237    }
    11691238    rc = trpmGCExitTrap(pVM, pVCpu, rc, pRegFrame);
    1170     Log6(("TRPMGC0e: %Rrc (%04x:%08x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip));
     1239    Log6(("TRPMGC0e: %Rrc (%04x:%08x EFL=%x)\n", rc, pRegFrame->cs.Sel, pRegFrame->eip, CPUMRawGetEFlags(pVCpu)));
     1240    TRPM_EXIT_DBG_HOOK(0xe);
    11711241    return rc;
    11721242}
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