VirtualBox

Ignore:
Timestamp:
Aug 25, 2010 4:15:25 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
65199
Message:

DBGF,PGM,DBGC: dumping page tables - hacking still in progress (sigh, this takes for ever).

File:
1 edited

Legend:

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

    r31530 r31966  
    792792
    793793/**
     794 * @interface_method_impl{DBGCCMDHLP,pfnVarGetRange}
     795 */
     796static DECLCALLBACK(int) dbgcHlpVarGetRange(PDBGCCMDHLP pCmdHlp, PCDBGCVAR pVar, uint64_t cbElement, uint64_t cbDefault,
     797                                            uint64_t *pcbRange)
     798{
     799/** @todo implement this properly, strings/symbols are not resolved now. */
     800    switch (pVar->enmRangeType)
     801    {
     802        default:
     803        case DBGCVAR_RANGE_NONE:
     804            *pcbRange = cbDefault;
     805            break;
     806        case DBGCVAR_RANGE_BYTES:
     807            *pcbRange = pVar->u64Range;
     808            break;
     809        case DBGCVAR_RANGE_ELEMENTS:
     810            *pcbRange = pVar->u64Range * cbElement;
     811            break;
     812    }
     813    return VINF_SUCCESS;
     814}
     815
     816
     817/**
     818 * Info helper callback wrapper - print formatted string.
     819 *
     820 * @param   pHlp        Pointer to this structure.
     821 * @param   pszFormat   The format string.
     822 * @param   ...         Arguments.
     823 */
     824static DECLCALLBACK(void) dbgcHlpGetDbgfOutputHlp_Printf(PCDBGFINFOHLP pHlp, const char *pszFormat, ...)
     825{
     826    PDBGC pDbgc = RT_FROM_MEMBER(pHlp, DBGC, DbgfOutputHlp);
     827    va_list va;
     828    va_start(va, pszFormat);
     829    pDbgc->CmdHlp.pfnPrintfV(&pDbgc->CmdHlp, NULL, pszFormat, va);
     830    va_end(va);
     831}
     832
     833
     834/**
     835 * Info helper callback wrapper - print formatted string.
     836 *
     837 * @param   pHlp        Pointer to this structure.
     838 * @param   pszFormat   The format string.
     839 * @param   args        Argument list.
     840 */
     841static DECLCALLBACK(void) dbgcHlpGetDbgfOutputHlp_PrintfV(PCDBGFINFOHLP pHlp, const char *pszFormat, va_list args)
     842{
     843    PDBGC pDbgc = RT_FROM_MEMBER(pHlp, DBGC, DbgfOutputHlp);
     844    pDbgc->CmdHlp.pfnPrintfV(&pDbgc->CmdHlp, NULL, pszFormat, args);
     845}
     846
     847
     848/**
     849 * @interface_method_impl{DBGCCMDHLP,pfnGetDbgfOutputHlp}
     850 */
     851static DECLCALLBACK(PCDBGFINFOHLP) dbgcHlpGetDbgfOutputHlp(PDBGCCMDHLP pCmdHlp)
     852{
     853    PDBGC pDbgc = DBGC_CMDHLP2DBGC(pCmdHlp);
     854
     855    /* Lazy init */
     856    if (!pDbgc->DbgfOutputHlp.pfnPrintf)
     857    {
     858        pDbgc->DbgfOutputHlp.pfnPrintf  = dbgcHlpGetDbgfOutputHlp_Printf;
     859        pDbgc->DbgfOutputHlp.pfnPrintfV = dbgcHlpGetDbgfOutputHlp_PrintfV;
     860    }
     861
     862    return &pDbgc->DbgfOutputHlp;
     863}
     864
     865
     866/**
    794867 * Initializes the Command Helpers for a DBGC instance.
    795868 *
     
    798871void dbgcInitCmdHlp(PDBGC pDbgc)
    799872{
    800     pDbgc->CmdHlp.pfnWrite      = dbgcHlpWrite;
    801     pDbgc->CmdHlp.pfnPrintfV    = dbgcHlpPrintfV;
    802     pDbgc->CmdHlp.pfnPrintf     = dbgcHlpPrintf;
    803     pDbgc->CmdHlp.pfnVBoxErrorV = dbgcHlpVBoxErrorV;
    804     pDbgc->CmdHlp.pfnVBoxError  = dbgcHlpVBoxError;
    805     pDbgc->CmdHlp.pfnMemRead    = dbgcHlpMemRead;
    806     pDbgc->CmdHlp.pfnMemWrite   = dbgcHlpMemWrite;
    807     pDbgc->CmdHlp.pfnEvalV      = dbgcHlpEvalV;
    808     pDbgc->CmdHlp.pfnExec       = dbgcHlpExec;
    809     pDbgc->CmdHlp.pfnFailV      = dbgcHlpFailV;
    810     pDbgc->CmdHlp.pfnVarToDbgfAddr = dbgcHlpVarToDbgfAddr;
    811     pDbgc->CmdHlp.pfnVarToBool = dbgcHlpVarToBool;
    812 }
    813 
     873    pDbgc->CmdHlp.pfnWrite              = dbgcHlpWrite;
     874    pDbgc->CmdHlp.pfnPrintfV            = dbgcHlpPrintfV;
     875    pDbgc->CmdHlp.pfnPrintf             = dbgcHlpPrintf;
     876    pDbgc->CmdHlp.pfnVBoxErrorV         = dbgcHlpVBoxErrorV;
     877    pDbgc->CmdHlp.pfnVBoxError          = dbgcHlpVBoxError;
     878    pDbgc->CmdHlp.pfnMemRead            = dbgcHlpMemRead;
     879    pDbgc->CmdHlp.pfnMemWrite           = dbgcHlpMemWrite;
     880    pDbgc->CmdHlp.pfnEvalV              = dbgcHlpEvalV;
     881    pDbgc->CmdHlp.pfnExec               = dbgcHlpExec;
     882    pDbgc->CmdHlp.pfnFailV              = dbgcHlpFailV;
     883    pDbgc->CmdHlp.pfnVarToDbgfAddr      = dbgcHlpVarToDbgfAddr;
     884    pDbgc->CmdHlp.pfnVarToBool          = dbgcHlpVarToBool;
     885    pDbgc->CmdHlp.pfnVarGetRange        = dbgcHlpVarGetRange;
     886    pDbgc->CmdHlp.pfnGetDbgfOutputHlp   = dbgcHlpGetDbgfOutputHlp;
     887}
     888
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