VirtualBox

Changeset 31987 in vbox for trunk/src/VBox/Debugger


Ignore:
Timestamp:
Aug 26, 2010 12:33:45 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
65230
Message:

PGM,DBGC,DBGF: Dump guest paging structures.

Location:
trunk/src/VBox/Debugger
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Debugger/DBGCEmulateCodeView.cpp

    r31978 r31987  
    28682868
    28692869/**
    2870  * The 'dph*' commands.
     2870 * The 'dph*' commands and main part of 'm'.
    28712871 *
    28722872 * @returns VBox status.
     
    28842884
    28852885    /*
    2886      * Figure the context.
    2887      */
    2888     uint32_t fFlags = DBGFPGDMP_FLAGS_PAGE_INFO | DBGFPGDMP_FLAGS_HEADER;
    2889     if (pCmd->pszCmd[3] == '\0')
     2886     * Figure the context and base flags.
     2887     */
     2888    uint32_t fFlags = DBGFPGDMP_FLAGS_PAGE_INFO | DBGFPGDMP_FLAGS_PRINT_CR3;
     2889    if (pCmd->pszCmd[0] == 'm')
     2890        fFlags |= DBGFPGDMP_FLAGS_GUEST | DBGFPGDMP_FLAGS_SHADOW;
     2891    else if (pCmd->pszCmd[3] == '\0')
    28902892        fFlags |= pDbgc->fRegCtxGuest ? DBGFPGDMP_FLAGS_GUEST : DBGFPGDMP_FLAGS_SHADOW;
    28912893    else if (pCmd->pszCmd[3] == 'g')
     
    28942896        fFlags |= DBGFPGDMP_FLAGS_SHADOW;
    28952897    else
    2896         fFlags |= DBGFPGDMP_FLAGS_GUEST | DBGFPGDMP_FLAGS_SHADOW;
     2898        AssertFailed();
     2899
     2900    if (pDbgc->cPagingHierarchyDumps == 0)
     2901        fFlags |= DBGFPGDMP_FLAGS_HEADER;
     2902    pDbgc->cPagingHierarchyDumps = (pDbgc->cPagingHierarchyDumps + 1) % 42;
    28972903
    28982904    /*
     
    35863592    if (!pVM)
    35873593        return DBGCCmdHlpFail(pCmdHlp, pCmd, "No VM.\n");
    3588 
    3589     DBGCCmdHlpPrintf(pCmdHlp, "guest pd (dpdg %DV):\n", &paArgs[0]);
    3590     int rc1 = pCmdHlp->pfnExec(pCmdHlp, "dpdg %DV",     &paArgs[0]);
    3591     DBGCCmdHlpPrintf(pCmdHlp, "hyper pd (dpdh %DV):\n", &paArgs[0]);
    3592     int rc2 = pCmdHlp->pfnExec(pCmdHlp, "dpdh %DV",     &paArgs[0]);
    3593     DBGCCmdHlpPrintf(pCmdHlp, "guest pt (dptg %DV):\n", &paArgs[0]);
    3594     int rc3 = pCmdHlp->pfnExec(pCmdHlp, "dptg %DV",     &paArgs[0]);
    3595     DBGCCmdHlpPrintf(pCmdHlp, "hyper pt (dpth %DV):\n", &paArgs[0]);
    3596     int rc4 = pCmdHlp->pfnExec(pCmdHlp, "dpth %DV",     &paArgs[0]);
    3597     if (RT_FAILURE(rc1))
    3598         return rc1;
    3599     if (RT_FAILURE(rc2))
    3600         return rc2;
    3601     if (RT_FAILURE(rc3))
    3602         return rc3;
    3603     NOREF(pCmd); NOREF(cArgs); NOREF(pResult);
    3604     return rc4;
     3594    return dbgcCmdDumpPageHierarchy(pCmd, pCmdHlp, pVM, paArgs, cArgs, pResult);
    36053595}
    36063596
  • trunk/src/VBox/Debugger/DBGCInternal.h

    r31966 r31987  
    169169    /** Indicates whether the register are terse or sparse. */
    170170    bool                fRegTerse;
     171    /** Counter use to suppress the printing of the headers. */
     172    uint8_t             cPagingHierarchyDumps;
    171173
    172174    /** Current dissassembler position. */
  • trunk/src/VBox/Debugger/DBGConsole.cpp

    r31966 r31987  
    19631963    pDbgc->fRegCtxGuest     = true;
    19641964    pDbgc->fRegTerse        = true;
     1965    //pDbgc->cPagingHierarchyDumps = 0;
    19651966    //pDbgc->DisasmPos        = {0};
    19661967    //pDbgc->SourcePos        = {0};
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