VirtualBox

Changeset 40185 in vbox


Ignore:
Timestamp:
Feb 20, 2012 9:26:12 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
76349
Message:

IEM: Logging adjustments.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAll.cpp

    r40182 r40185  
    5050 * can trigger spurious FPU exceptions.
    5151 *
     52 *
     53 * @section sec_iem_logging     Logging
     54 *
     55 * The IEM code uses the \"IEM\" log group for the main logging. The different
     56 * logging levels/flags are generally used for the following purposes:
     57 *      - Level 1 (Log) : Errors, exceptions, interrupts and such major events.
     58 *      - Flow (LogFlow): Additional exception details, basic enter/exit IEM
     59 *                        state info.
     60 *      - Level 2 (Log2): ?
     61 *      - Level 3 (Log3): More detailed enter/exit IEM state info.
     62 *      - Level 4 (Log4): Decoding mnemonics w/ EIP.
     63 *      - Level 5 (Log5): Decoding details.
     64 *      - Level 6 (Log6): Enables/disables the lockstep comparison with REM.
    5265 *
    5366 */
     
    796809    }
    797810    GCPhys |= GCPtrNext & PAGE_OFFSET_MASK;
    798     //Log(("GCPtrNext=%RGv GCPhys=%RGp cbOpcodes=%#x\n",  GCPtrNext,  GCPhys,  pIemCpu->cbOpcode));
     811    Log5(("GCPtrNext=%RGv GCPhys=%RGp cbOpcodes=%#x\n",  GCPtrNext,  GCPhys,  pIemCpu->cbOpcode));
    799812    /** @todo Check reserved bits and such stuff. PGM is better at doing
    800813     *        that, so do it when implementing the guest virtual address
     
    820833    }
    821834    pIemCpu->cbOpcode += cbToTryRead;
    822     //Log(("%.*Rhxs\n", pIemCpu->cbOpcode, pIemCpu->abOpcode));
     835    Log5(("%.*Rhxs\n", pIemCpu->cbOpcode, pIemCpu->abOpcode));
    823836
    824837    return VINF_SUCCESS;
     
    17551768    if (RT_UNLIKELY(rcStrict != VINF_SUCCESS))
    17561769        return rcStrict;
    1757     Log4(("iemRaiseXcptOrIntInProtMode: vec=%#x P=%u DPL=%u DT=%u:%u A=%u %04x:%04x%04x\n",
    1758           u8Vector, Idte.Gate.u1Present, Idte.Gate.u2Dpl, Idte.Gate.u1DescType, Idte.Gate.u4Type,
    1759           Idte.Gate.u4ParmCount, Idte.Gate.u16Sel, Idte.Gate.u16OffsetHigh, Idte.Gate.u16OffsetLow));
     1770    LogFlow(("iemRaiseXcptOrIntInProtMode: vec=%#x P=%u DPL=%u DT=%u:%u A=%u %04x:%04x%04x\n",
     1771             u8Vector, Idte.Gate.u1Present, Idte.Gate.u2Dpl, Idte.Gate.u1DescType, Idte.Gate.u4Type,
     1772             Idte.Gate.u4ParmCount, Idte.Gate.u16Sel, Idte.Gate.u16OffsetHigh, Idte.Gate.u16OffsetLow));
    17601773
    17611774    /*
     
    22002213    pIemCpu->uCurXcpt = uPrevXcpt;
    22012214    pIemCpu->fCurXcpt = fPrevXcpt;
    2202     Log(("iemRaiseXcptOrInt: returns %Rrc (vec=%#x); cs:rip=%04x:%RGv ss:rsp=%04x:%RGv\n",
    2203          VBOXSTRICTRC_VAL(rcStrict), u8Vector, pCtx->cs, pCtx->rip, pCtx->ss, pCtx->esp));
     2215    LogFlow(("iemRaiseXcptOrInt: returns %Rrc (vec=%#x); cs:rip=%04x:%RGv ss:rsp=%04x:%RGv\n",
     2216             VBOXSTRICTRC_VAL(rcStrict), u8Vector, pCtx->cs, pCtx->rip, pCtx->ss, pCtx->esp));
    22042217    return rcStrict;
    22052218}
     
    40234036                || (pIemCpu->CTX_SUFF(pCtx)->cr0 & X86_CR0_WP)))
    40244037        {
    4025             Log(("iemMemPageTranslateAndCheckAccess: GCPtrMem=%RGv - read-only page\n", GCPtrMem));
     4038            Log(("iemMemPageTranslateAndCheckAccess: GCPtrMem=%RGv - read-only page -> #PF\n", GCPtrMem));
    40264039            *pGCPhysMem = NIL_RTGCPHYS;
    40274040            return iemRaisePageFault(pIemCpu, GCPtrMem, fAccess & ~IEM_ACCESS_TYPE_READ, VERR_ACCESS_DENIED);
     
    40334046            && !(fAccess & IEM_ACCESS_WHAT_SYS))
    40344047        {
    4035             Log(("iemMemPageTranslateAndCheckAccess: GCPtrMem=%RGv - user access to kernel page\n", GCPtrMem));
     4048            Log(("iemMemPageTranslateAndCheckAccess: GCPtrMem=%RGv - user access to kernel page -> #PF\n", GCPtrMem));
    40364049            *pGCPhysMem = NIL_RTGCPHYS;
    40374050            return iemRaisePageFault(pIemCpu, GCPtrMem, fAccess, VERR_ACCESS_DENIED);
     
    40434056            && (pIemCpu->CTX_SUFF(pCtx)->msrEFER & MSR_K6_EFER_NXE) )
    40444057        {
    4045             Log(("iemMemPageTranslateAndCheckAccess: GCPtrMem=%RGv - NX\n", GCPtrMem));
     4058            Log(("iemMemPageTranslateAndCheckAccess: GCPtrMem=%RGv - NX -> #PF\n", GCPtrMem));
    40464059            *pGCPhysMem = NIL_RTGCPHYS;
    40474060            return iemRaisePageFault(pIemCpu, GCPtrMem, fAccess & ~(IEM_ACCESS_TYPE_READ | IEM_ACCESS_TYPE_WRITE),
     
    61136126#ifdef DEBUG
    61146127# define IEMOP_MNEMONIC(a_szMnemonic) \
    6115     Log2(("decode - %04x:%RGv %s%s [#%u]\n", pIemCpu->CTX_SUFF(pCtx)->cs, pIemCpu->CTX_SUFF(pCtx)->rip, \
     6128    Log4(("decode - %04x:%RGv %s%s [#%u]\n", pIemCpu->CTX_SUFF(pCtx)->cs, pIemCpu->CTX_SUFF(pCtx)->rip, \
    61166129          pIemCpu->fPrefixes & IEM_OP_PRF_LOCK ? "lock " : "", a_szMnemonic, pIemCpu->cInstructions))
    61176130# define IEMOP_MNEMONIC2(a_szMnemonic, a_szOps) \
    6118     Log2(("decode - %04x:%RGv %s%s %s [#%u]\n", pIemCpu->CTX_SUFF(pCtx)->cs, pIemCpu->CTX_SUFF(pCtx)->rip, \
     6131    Log4(("decode - %04x:%RGv %s%s %s [#%u]\n", pIemCpu->CTX_SUFF(pCtx)->cs, pIemCpu->CTX_SUFF(pCtx)->rip, \
    61196132          pIemCpu->fPrefixes & IEM_OP_PRF_LOCK ? "lock " : "", a_szMnemonic, a_szOps, pIemCpu->cInstructions))
    61206133#else
     
    61896202static VBOXSTRICTRC iemOpHlpCalcRmEffAddr(PIEMCPU pIemCpu, uint8_t bRm, PRTGCPTR pGCPtrEff)
    61906203{
    6191     LogFlow(("iemOpHlpCalcRmEffAddr: bRm=%#x\n", bRm));
     6204    Log5(("iemOpHlpCalcRmEffAddr: bRm=%#x\n", bRm));
    61926205    PCCPUMCTX pCtx = pIemCpu->CTX_SUFF(pCtx);
    61936206#define SET_SS_DEF() \
     
    62346247
    62356248            *pGCPtrEff = u16EffAddr;
    6236             LogFlow(("iemOpHlpCalcRmEffAddr: EffAddr=%#06RGv\n", *pGCPtrEff));
     6249            Log5(("iemOpHlpCalcRmEffAddr: EffAddr=%#06RGv\n", *pGCPtrEff));
    62376250            return VINF_SUCCESS;
    62386251        }
     
    63356348                *pGCPtrEff = u32EffAddr & UINT16_MAX;
    63366349            }
    6337             LogFlow(("iemOpHlpCalcRmEffAddr: EffAddr=%#010RGv\n", *pGCPtrEff));
     6350            Log5(("iemOpHlpCalcRmEffAddr: EffAddr=%#010RGv\n", *pGCPtrEff));
    63386351            return VINF_SUCCESS;
    63396352        }
     
    64666479            else
    64676480                *pGCPtrEff = u64EffAddr & UINT16_MAX;
    6468             LogFlow(("iemOpHlpCalcRmEffAddr: EffAddr=%#010RGv\n", *pGCPtrEff));
     6481            Log5(("iemOpHlpCalcRmEffAddr: EffAddr=%#010RGv\n", *pGCPtrEff));
    64696482            return VINF_SUCCESS;
    64706483        }
     
    65156528#if 1 /* Auto enable DSL - FPU stuff. */
    65166529        &&  pOrgCtx->cs  == 0x10
    6517         &&  (   pOrgCtx->rip == 0xc02ec07f
    6518              || pOrgCtx->rip == 0xc02ec082
    6519              || pOrgCtx->rip == 0xc02ec0c9
     6530        &&  (//   pOrgCtx->rip == 0xc02ec07f
     6531             //|| pOrgCtx->rip == 0xc02ec082
     6532             //|| pOrgCtx->rip == 0xc02ec0c9
     6533                0
     6534             || pOrgCtx->rip == 0x0c010e7c4   /* fxsave */
    65206535            )
    65216536#endif
     
    72907305                           szInstr, sizeof(szInstr), &cbInstr);
    72917306
    7292         Log2(("**** "
     7307        Log3(("**** "
    72937308              " eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n"
    72947309              " eip=%08x esp=%08x ebp=%08x iopl=%d\n"
     
    73077322            DBGFR3Info(pVCpu->pVMR3, "cpumguest", "verbose", NULL);
    73087323    }
     7324    else
     7325        LogFlow(("IEMExecOne: cs:rip=%04x:%08RX64 ss:rsp=%04x:%08RX64 EFL=%06x\n",
     7326                 pCtx->cs, pCtx->rip, pCtx->ss, pCtx->rsp, pCtx->eflags.u));
    73097327#endif
    73107328
     
    73527370    iemExecVerificationModeCheck(pIemCpu);
    73537371#endif
     7372    LogFlow(("IEMExecOne: returns %Rrc - cs:rip=%04x:%08RX64 ss:rsp=%04x:%08RX64 EFL=%06x\n",
     7373             VBOXSTRICTRC_VAL(rcStrict), pCtx->cs, pCtx->rip, pCtx->ss, pCtx->rsp, pCtx->eflags.u));
    73547374    return rcStrict;
    73557375}
     
    73777397    {
    73787398        case TRPM_HARDWARE_INT:
    7379             Log(("IEMInjectTrap: %#4x ext\n", u8TrapNo));
     7399            LogFlow(("IEMInjectTrap: %#4x ext\n", u8TrapNo));
    73807400            fFlags = IEM_XCPT_FLAGS_T_EXT_INT;
    73817401            uErrCode = uCr2 = 0;
     
    73837403
    73847404        case TRPM_SOFTWARE_INT:
    7385             Log(("IEMInjectTrap: %#4x soft\n", u8TrapNo));
     7405            LogFlow(("IEMInjectTrap: %#4x soft\n", u8TrapNo));
    73867406            fFlags = IEM_XCPT_FLAGS_T_SOFT_INT;
    73877407            uErrCode = uCr2 = 0;
     
    73897409
    73907410        case TRPM_TRAP:
    7391             Log(("IEMInjectTrap: %#4x trap err=%#x cr2=%#RGv\n", u8TrapNo, uErrCode, uCr2));
     7411            LogFlow(("IEMInjectTrap: %#4x trap err=%#x cr2=%#RGv\n", u8TrapNo, uErrCode, uCr2));
    73927412            fFlags = IEM_XCPT_FLAGS_T_CPU_XCPT;
    73937413            if (u8TrapNo == X86_XCPT_PF)
Note: See TracChangeset for help on using the changeset viewer.

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