VirtualBox

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


Ignore:
Timestamp:
Nov 4, 2016 11:27:37 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
111745
Message:

Rename DBGFR3Cfg* to DBGFR3Flow* to avoid confusing with APIs for configuring

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

Legend:

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

    r64555 r64559  
    14211421 *
    14221422 * @returns nothing.
    1423  * @param   hCfgBb              The basic block handle.
     1423 * @param   hFlowBb              The basic block handle.
    14241424 * @param   pDumpBb             The dumper state to fill in for the basic block.
    14251425 */
    1426 static void dbgcCmdUnassembleCfgDumpCalcBbSize(DBGFCFGBB hCfgBb, PDBGCCFGBBDUMP pDumpBb)
    1427 {
    1428     uint32_t fFlags = DBGFR3CfgBbGetFlags(hCfgBb);
    1429     uint32_t cInstr = DBGFR3CfgBbGetInstrCount(hCfgBb);
    1430 
    1431     pDumpBb->hCfgBb = hCfgBb;
     1426static void dbgcCmdUnassembleCfgDumpCalcBbSize(DBGFFLOWBB hFlowBb, PDBGCFLOWBBDUMP pDumpBb)
     1427{
     1428    uint32_t fFlags = DBGFR3FlowBbGetFlags(hFlowBb);
     1429    uint32_t cInstr = DBGFR3FlowBbGetInstrCount(hFlowBb);
     1430
     1431    pDumpBb->hFlowBb   = hFlowBb;
    14321432    pDumpBb->cchHeight = cInstr + 4; /* Include spacing and border top and bottom. */
    1433     pDumpBb->cchWidth = 0;
    1434     DBGFR3CfgBbGetStartAddress(hCfgBb, &pDumpBb->AddrStart);
    1435 
    1436     DBGFCFGBBENDTYPE enmType = DBGFR3CfgBbGetType(hCfgBb);
    1437     if (   enmType == DBGFCFGBBENDTYPE_COND
    1438         || enmType == DBGFCFGBBENDTYPE_UNCOND_JMP)
    1439         DBGFR3CfgBbGetBranchAddress(hCfgBb, &pDumpBb->AddrTarget);
    1440 
    1441     if (fFlags & DBGF_CFG_BB_F_INCOMPLETE_ERR)
     1433    pDumpBb->cchWidth  = 0;
     1434    DBGFR3FlowBbGetStartAddress(hFlowBb, &pDumpBb->AddrStart);
     1435
     1436    DBGFFLOWBBENDTYPE enmType = DBGFR3FlowBbGetType(hFlowBb);
     1437    if (   enmType == DBGFFLOWBBENDTYPE_COND
     1438        || enmType == DBGFFLOWBBENDTYPE_UNCOND_JMP)
     1439        DBGFR3FlowBbGetBranchAddress(hFlowBb, &pDumpBb->AddrTarget);
     1440
     1441    if (fFlags & DBGF_FLOW_BB_F_INCOMPLETE_ERR)
    14421442    {
    14431443        const char *pszErr = NULL;
    1444         DBGFR3CfgBbQueryError(hCfgBb, &pszErr);
     1444        DBGFR3FlowBbQueryError(hFlowBb, &pszErr);
    14451445        if (pszErr)
    14461446        {
     
    14521452    {
    14531453        const char *pszInstr = NULL;
    1454         int rc = DBGFR3CfgBbQueryInstr(hCfgBb, i, NULL, NULL, &pszInstr);
     1454        int rc = DBGFR3FlowBbQueryInstr(hFlowBb, i, NULL, NULL, &pszInstr);
    14551455        AssertRC(rc);
    14561456        pDumpBb->cchWidth = RT_MAX(pDumpBb->cchWidth, (uint32_t)strlen(pszInstr));
     
    15281528 * @param   hScreen             The screen to draw to.
    15291529 */
    1530 static void dbgcCmdUnassembleCfgDumpBb(PDBGCCFGBBDUMP pDumpBb, DBGCSCREEN hScreen)
     1530static void dbgcCmdUnassembleCfgDumpBb(PDBGCFLOWBBDUMP pDumpBb, DBGCSCREEN hScreen)
    15311531{
    15321532    uint32_t uStartY = pDumpBb->uStartY;
    1533     bool fError = RT_BOOL(DBGFR3CfgBbGetFlags(pDumpBb->hCfgBb) & DBGF_CFG_BB_F_INCOMPLETE_ERR);
     1533    bool fError = RT_BOOL(DBGFR3FlowBbGetFlags(pDumpBb->hFlowBb) & DBGF_FLOW_BB_F_INCOMPLETE_ERR);
    15341534    DBGCSCREENCOLOR enmColor = fError ? DBGCSCREENCOLOR_RED_BRIGHT : DBGCSCREENCOLOR_DEFAULT;
    15351535
     
    15391539    uStartY++;
    15401540
    1541     uint32_t cInstr = DBGFR3CfgBbGetInstrCount(pDumpBb->hCfgBb);
     1541    uint32_t cInstr = DBGFR3FlowBbGetInstrCount(pDumpBb->hFlowBb);
    15421542    for (unsigned i = 0; i < cInstr; i++)
    15431543    {
    15441544        const char *pszInstr = NULL;
    1545         DBGFR3CfgBbQueryInstr(pDumpBb->hCfgBb, i, NULL, NULL, &pszInstr);
     1545        DBGFR3FlowBbQueryInstr(pDumpBb->hFlowBb, i, NULL, NULL, &pszInstr);
    15461546        dbgcCmdUnassembleCfgDumpBbText(hScreen, pDumpBb->uStartX, uStartY + i,
    15471547                                       pDumpBb->cchWidth, pszInstr, DBGCSCREENCOLOR_DEFAULT);
     
    15521552    {
    15531553        const char *pszErr = NULL;
    1554         DBGFR3CfgBbQueryError(pDumpBb->hCfgBb, &pszErr);
     1554        DBGFR3FlowBbQueryError(pDumpBb->hFlowBb, &pszErr);
    15551555        if (pszErr)
    15561556            dbgcCmdUnassembleCfgDumpBbText(hScreen, pDumpBb->uStartX, uStartY,
     
    15741574 * @param   pCmdHlp             The command helper callback table.
    15751575 */
    1576 static int dbgcCmdUnassembleCfgDump(DBGFCFG hCfg, bool fUseColor, PDBGCCMDHLP pCmdHlp)
    1577 {
    1578     DBGFCFGIT hCfgIt;
    1579     int rc = DBGFR3CfgItCreate(hCfg, DBGFCFGITORDER_BY_ADDR_LOWEST_FIRST, &hCfgIt);
     1576static int dbgcCmdUnassembleCfgDump(DBGFFLOW hCfg, bool fUseColor, PDBGCCMDHLP pCmdHlp)
     1577{
     1578    DBGFFLOWIT hCfgIt;
     1579    int rc = DBGFR3FlowItCreate(hCfg, DBGFFLOWITORDER_BY_ADDR_LOWEST_FIRST, &hCfgIt);
    15801580    if (RT_SUCCESS(rc))
    15811581    {
    1582         uint32_t cBbs = DBGFR3CfgGetBbCount(hCfg);
    1583         PDBGCCFGBBDUMP paDumpBb = (PDBGCCFGBBDUMP)RTMemTmpAllocZ(cBbs * sizeof(DBGCCFGBBDUMP));
     1582        uint32_t cBbs = DBGFR3FlowGetBbCount(hCfg);
     1583        PDBGCFLOWBBDUMP paDumpBb = (PDBGCFLOWBBDUMP)RTMemTmpAllocZ(cBbs * sizeof(DBGCFLOWBBDUMP));
    15841584        if (paDumpBb)
    15851585        {
    15861586            /* Calculate the sizes of each basic block first. */
    1587             DBGFCFGBB hCfgBb = DBGFR3CfgItNext(hCfgIt);
     1587            DBGFFLOWBB hFlowBb = DBGFR3FlowItNext(hCfgIt);
    15881588            uint32_t idxDumpBb = 0;
    1589             while (hCfgBb)
     1589            while (hFlowBb)
    15901590            {
    1591                 dbgcCmdUnassembleCfgDumpCalcBbSize(hCfgBb, &paDumpBb[idxDumpBb]);
     1591                dbgcCmdUnassembleCfgDumpCalcBbSize(hFlowBb, &paDumpBb[idxDumpBb]);
    15921592                idxDumpBb++;
    1593                 hCfgBb = DBGFR3CfgItNext(hCfgIt);
     1593                hFlowBb = DBGFR3FlowItNext(hCfgIt);
    15941594            }
    15951595
     
    16011601            for (unsigned i = 0; i < cBbs; i++)
    16021602            {
    1603                 PDBGCCFGBBDUMP pDumpBb = &paDumpBb[i];
     1603                PDBGCFLOWBBDUMP pDumpBb = &paDumpBb[i];
    16041604                cchWidth = RT_MAX(cchWidth, pDumpBb->cchWidth);
    16051605                cchHeight += pDumpBb->cchHeight;
    16061606
    16071607                /* Incomplete blocks don't have a successor. */
    1608                 if (DBGFR3CfgBbGetFlags(pDumpBb->hCfgBb) & DBGF_CFG_BB_F_INCOMPLETE_ERR)
     1608                if (DBGFR3FlowBbGetFlags(pDumpBb->hFlowBb) & DBGF_FLOW_BB_F_INCOMPLETE_ERR)
    16091609                    continue;
    16101610
    1611                 switch (DBGFR3CfgBbGetType(pDumpBb->hCfgBb))
     1611                switch (DBGFR3FlowBbGetType(pDumpBb->hFlowBb))
    16121612                {
    1613                     case DBGFCFGBBENDTYPE_EXIT:
    1614                     case DBGFCFGBBENDTYPE_LAST_DISASSEMBLED:
     1613                    case DBGFFLOWBBENDTYPE_EXIT:
     1614                    case DBGFFLOWBBENDTYPE_LAST_DISASSEMBLED:
    16151615                        break;
    1616                     case DBGFCFGBBENDTYPE_UNCOND_JMP:
     1616                    case DBGFFLOWBBENDTYPE_UNCOND_JMP:
    16171617                        if (   dbgcCmdUnassembleCfgAddrLower(&pDumpBb->AddrTarget, &pDumpBb->AddrStart)
    16181618                            || dbgcCmdUnassembleCfgAddrEqual(&pDumpBb->AddrTarget, &pDumpBb->AddrStart))
     
    16211621                            cchRightExtra++;
    16221622                        break;
    1623                     case DBGFCFGBBENDTYPE_UNCOND:
     1623                    case DBGFFLOWBBENDTYPE_UNCOND:
    16241624                        cchHeight += 2; /* For the arrow down to the next basic block. */
    16251625                        break;
    1626                     case DBGFCFGBBENDTYPE_COND:
     1626                    case DBGFFLOWBBENDTYPE_COND:
    16271627                        cchHeight += 2; /* For the arrow down to the next basic block. */
    16281628                        if (   dbgcCmdUnassembleCfgAddrLower(&pDumpBb->AddrTarget, &pDumpBb->AddrStart)
     
    16541654
    16551655                    /* Incomplete blocks don't have a successor. */
    1656                     if (DBGFR3CfgBbGetFlags(paDumpBb[i].hCfgBb) & DBGF_CFG_BB_F_INCOMPLETE_ERR)
     1656                    if (DBGFR3FlowBbGetFlags(paDumpBb[i].hFlowBb) & DBGF_FLOW_BB_F_INCOMPLETE_ERR)
    16571657                        continue;
    16581658
    1659                     switch (DBGFR3CfgBbGetType(paDumpBb[i].hCfgBb))
     1659                    switch (DBGFR3FlowBbGetType(paDumpBb[i].hFlowBb))
    16601660                    {
    1661                         case DBGFCFGBBENDTYPE_EXIT:
    1662                         case DBGFCFGBBENDTYPE_LAST_DISASSEMBLED:
    1663                         case DBGFCFGBBENDTYPE_UNCOND_JMP:
     1661                        case DBGFFLOWBBENDTYPE_EXIT:
     1662                        case DBGFFLOWBBENDTYPE_LAST_DISASSEMBLED:
     1663                        case DBGFFLOWBBENDTYPE_UNCOND_JMP:
    16641664                            break;
    1665                         case DBGFCFGBBENDTYPE_UNCOND:
     1665                        case DBGFFLOWBBENDTYPE_UNCOND:
    16661666                            /* Draw the arrow down to the next block. */
    16671667                            dbgcScreenAsciiDrawCharacter(hScreen, cchLeftExtra + cchWidth / 2, uY,
     
    16721672                            uY++;
    16731673                            break;
    1674                         case DBGFCFGBBENDTYPE_COND:
     1674                        case DBGFFLOWBBENDTYPE_COND:
    16751675                            /* Draw the arrow down to the next block. */
    16761676                            dbgcScreenAsciiDrawCharacter(hScreen, cchLeftExtra + cchWidth / 2, uY,
     
    16911691                for (unsigned i = 0; i < cBbs; i++)
    16921692                {
    1693                     PDBGCCFGBBDUMP pDumpBb = &paDumpBb[i];
     1693                    PDBGCFLOWBBDUMP pDumpBb = &paDumpBb[i];
    16941694
    16951695                    /* Incomplete blocks don't have a successor. */
    1696                     if (DBGFR3CfgBbGetFlags(pDumpBb->hCfgBb) & DBGF_CFG_BB_F_INCOMPLETE_ERR)
     1696                    if (DBGFR3FlowBbGetFlags(pDumpBb->hFlowBb) & DBGF_FLOW_BB_F_INCOMPLETE_ERR)
    16971697                        continue;
    16981698
    1699                     switch (DBGFR3CfgBbGetType(pDumpBb->hCfgBb))
     1699                    switch (DBGFR3FlowBbGetType(pDumpBb->hFlowBb))
    17001700                    {
    1701                         case DBGFCFGBBENDTYPE_EXIT:
    1702                         case DBGFCFGBBENDTYPE_LAST_DISASSEMBLED:
    1703                         case DBGFCFGBBENDTYPE_UNCOND:
     1701                        case DBGFFLOWBBENDTYPE_EXIT:
     1702                        case DBGFFLOWBBENDTYPE_LAST_DISASSEMBLED:
     1703                        case DBGFFLOWBBENDTYPE_UNCOND:
    17041704                            break;
    1705                         case DBGFCFGBBENDTYPE_COND:
    1706                         case DBGFCFGBBENDTYPE_UNCOND_JMP:
     1705                        case DBGFFLOWBBENDTYPE_COND:
     1706                        case DBGFFLOWBBENDTYPE_UNCOND_JMP:
    17071707                        {
    17081708                            /* Find the target first to get the coordinates. */
    1709                             PDBGCCFGBBDUMP pDumpBbTgt = NULL;
     1709                            PDBGCFLOWBBDUMP pDumpBbTgt = NULL;
    17101710                            for (idxDumpBb = 0; idxDumpBb < cBbs; idxDumpBb++)
    17111711                            {
     
    17791779
    17801780            for (unsigned i = 0; i < cBbs; i++)
    1781                 DBGFR3CfgBbRelease(paDumpBb[i].hCfgBb);
     1781                DBGFR3FlowBbRelease(paDumpBb[i].hFlowBb);
    17821782            RTMemTmpFree(paDumpBb);
    17831783        }
     
    17851785            rc = VERR_NO_MEMORY;
    17861786
    1787         DBGFR3CfgItDestroy(hCfgIt);
     1787        DBGFR3FlowItDestroy(hCfgIt);
    17881788    }
    17891789
     
    19321932    }
    19331933
    1934     DBGFCFG hCfg;
    1935     rc = DBGFR3CfgCreate(pUVM, pDbgc->idCpu, &CurAddr, 0 /*cbDisasmMax*/, fFlags, &hCfg);
     1934    DBGFFLOW hCfg;
     1935    rc = DBGFR3FlowCreate(pUVM, pDbgc->idCpu, &CurAddr, 0 /*cbDisasmMax*/, fFlags, &hCfg);
    19361936    if (RT_SUCCESS(rc))
    19371937    {
    19381938        /* Dump the graph. */
    19391939        rc = dbgcCmdUnassembleCfgDump(hCfg, fUseColor, pCmdHlp);
    1940         DBGFR3CfgRelease(hCfg);
     1940        DBGFR3FlowRelease(hCfg);
    19411941    }
    19421942    else
    1943         rc = DBGCCmdHlpFailRc(pCmdHlp, pCmd, rc, "DBGFR3CfgCreate failed on '%Dv'", &pDbgc->DisasmPos);
     1943        rc = DBGCCmdHlpFailRc(pCmdHlp, pCmd, rc, "DBGFR3FlowCreate failed on '%Dv'", &pDbgc->DisasmPos);
    19441944
    19451945    NOREF(pCmd);
  • trunk/src/VBox/Debugger/DBGCInternal.h

    r64554 r64559  
    428428 * Control flow graph basic block dumper state
    429429 */
    430 typedef struct DBGCCFGBBDUMP
     430typedef struct DBGCFLOWBBDUMP
    431431{
    432432    /** The basic block referenced. */
    433     DBGFCFGBB               hCfgBb;
     433    DBGFFLOWBB              hFlowBb;
    434434    /** Cached start address. */
    435435    DBGFADDRESS             AddrStart;
     
    444444    /** Y coordinate of the start. */
    445445    uint32_t                uStartY;
    446 } DBGCCFGBBDUMP;
     446} DBGCFLOWBBDUMP;
    447447/** Pointer to the CFG basic block dump state. */
    448 typedef DBGCCFGBBDUMP *PDBGCCFGBBDUMP;
     448typedef DBGCFLOWBBDUMP *PDBGCFLOWBBDUMP;
    449449
    450450/*******************************************************************************
  • trunk/src/VBox/Debugger/testcase/tstDBGCStubs.cpp

    r64556 r64559  
    381381}
    382382
    383 VMMR3DECL(int) DBGFR3CfgCreate(PUVM pUVM, VMCPUID idCpu, PDBGFADDRESS pAddressStart, uint32_t cbDisasmMax,
    384                                uint32_t fFlags, PDBGFCFG phCfg)
    385 {
    386     return VERR_INTERNAL_ERROR;
    387 }
    388 VMMR3DECL(uint32_t) DBGFR3CfgRetain(DBGFCFG hCfg)
    389 {
    390     return 0;
    391 }
    392 VMMR3DECL(uint32_t) DBGFR3CfgRelease(DBGFCFG hCfg)
    393 {
    394     return 0;
    395 }
    396 VMMR3DECL(int) DBGFR3CfgQueryStartBb(DBGFCFG hCfg, PDBGFCFGBB phCfgBb)
    397 {
    398     return VERR_INTERNAL_ERROR;
    399 }
    400 VMMR3DECL(int) DBGFR3CfgQueryBbByAddress(DBGFCFG hCfg, PDBGFADDRESS pAddr, PDBGFCFGBB phCfgBb)
    401 {
    402     return VERR_INTERNAL_ERROR;
    403 }
    404 VMMR3DECL(uint32_t) DBGFR3CfgGetBbCount(DBGFCFG hCfg)
    405 {
    406     return 0;
    407 }
    408 VMMR3DECL(int) DBGFR3CfgDump(DBGFCFG hCfg, PFNDBGFR3CFGDUMP pfnDump, void *pvUser)
    409 {
    410     return VERR_INTERNAL_ERROR;
    411 }
    412 VMMR3DECL(uint32_t) DBGFR3CfgBbRetain(DBGFCFGBB hCfgBb)
    413 {
    414     return 0;
    415 }
    416 VMMR3DECL(uint32_t) DBGFR3CfgBbRelease(DBGFCFGBB hCfgBb)
    417 {
    418     return 0;
    419 }
    420 VMMR3DECL(PDBGFADDRESS) DBGFR3CfgBbGetStartAddress(DBGFCFGBB hCfgBb, PDBGFADDRESS pAddrStart)
    421 {
    422     return NULL;
    423 }
    424 VMMR3DECL(PDBGFADDRESS) DBGFR3CfgBbGetEndAddress(DBGFCFGBB hCfgBb, PDBGFADDRESS pAddrEnd)
    425 {
    426     return NULL;
    427 }
    428 VMMR3DECL(PDBGFADDRESS) DBGFR3CfgBbGetBranchAddress(DBGFCFGBB hCfgBb, PDBGFADDRESS pAddrTarget)
    429 {
    430     return NULL;
    431 }
    432 VMMR3DECL(PDBGFADDRESS) DBGFR3CfgBbGetFollowingAddress(DBGFCFGBB hCfgBb, PDBGFADDRESS pAddrFollow)
    433 {
    434     return NULL;
    435 }
    436 VMMR3DECL(DBGFCFGBBENDTYPE) DBGFR3CfgBbGetType(DBGFCFGBB hCfgBb)
    437 {
    438     return DBGFCFGBBENDTYPE_INVALID;
    439 }
    440 VMMR3DECL(uint32_t) DBGFR3CfgBbGetInstrCount(DBGFCFGBB hCfgBb)
    441 {
    442     return 0;
    443 }
    444 VMMR3DECL(uint32_t) DBGFR3CfgBbGetFlags(DBGFCFGBB hCfgBb)
    445 {
    446     return 0;
    447 }
    448 VMMR3DECL(int) DBGFR3CfgBbQueryError(DBGFCFGBB hCfgBb, const char **ppszErr)
    449 {
    450     return VERR_INTERNAL_ERROR;
    451 }
    452 VMMR3DECL(int) DBGFR3CfgBbQueryInstr(DBGFCFGBB hCfgBb, uint32_t idxInstr, PDBGFADDRESS pAddrInstr,
    453                                      uint32_t *pcbInstr, const char **ppszInstr)
    454 {
    455     return VERR_INTERNAL_ERROR;
    456 }
    457 VMMR3DECL(int) DBGFR3CfgBbQuerySuccessors(DBGFCFGBB hCfgBb, PDBGFCFGBB phCfgBbFollow,
    458                                           PDBGFCFGBB phCfgBbTarget)
    459 {
    460     return VERR_INTERNAL_ERROR;
    461 }
    462 VMMR3DECL(uint32_t) DBGFR3CfgBbGetRefBbCount(DBGFCFGBB hCfgBb)
    463 {
    464     return 0;
    465 }
    466 VMMR3DECL(int) DBGFR3CfgBbGetRefBb(DBGFCFGBB hCfgBb, PDBGFCFGBB pahCfgBbRef, uint32_t cRef)
    467 {
    468     return VERR_INTERNAL_ERROR;
    469 }
    470 VMMR3DECL(int) DBGFR3CfgItCreate(DBGFCFG hCfg, DBGFCFGITORDER enmOrder, PDBGFCFGIT phCfgIt)
    471 {
    472     return VERR_INTERNAL_ERROR;
    473 }
    474 VMMR3DECL(void) DBGFR3CfgItDestroy(DBGFCFGIT hCfgIt)
    475 {
    476 }
    477 VMMR3DECL(DBGFCFGBB) DBGFR3CfgItNext(DBGFCFGIT hCfgIt)
    478 {
    479     return NULL;
    480 }
    481 VMMR3DECL(int) DBGFR3CfgItReset(DBGFCFGIT hCfgIt)
     383VMMR3DECL(int) DBGFR3FlowCreate(PUVM pUVM, VMCPUID idCpu, PDBGFADDRESS pAddressStart, uint32_t cbDisasmMax,
     384                               uint32_t fFlags, PDBGFFLOW phFlow)
     385{
     386    return VERR_INTERNAL_ERROR;
     387}
     388VMMR3DECL(uint32_t) DBGFR3FlowRetain(DBGFFLOW hFlow)
     389{
     390    return 0;
     391}
     392VMMR3DECL(uint32_t) DBGFR3FlowRelease(DBGFFLOW hFlow)
     393{
     394    return 0;
     395}
     396VMMR3DECL(int) DBGFR3FlowQueryStartBb(DBGFFLOW hFlow, PDBGFFLOWBB phFlowBb)
     397{
     398    return VERR_INTERNAL_ERROR;
     399}
     400VMMR3DECL(int) DBGFR3FlowQueryBbByAddress(DBGFFLOW hFlow, PDBGFADDRESS pAddr, PDBGFFLOWBB phFlowBb)
     401{
     402    return VERR_INTERNAL_ERROR;
     403}
     404VMMR3DECL(uint32_t) DBGFR3FlowGetBbCount(DBGFFLOW hFlow)
     405{
     406    return 0;
     407}
     408VMMR3DECL(uint32_t) DBGFR3FlowBbRetain(DBGFFLOWBB hFlowBb)
     409{
     410    return 0;
     411}
     412VMMR3DECL(uint32_t) DBGFR3FlowBbRelease(DBGFFLOWBB hFlowBb)
     413{
     414    return 0;
     415}
     416VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBbGetStartAddress(DBGFFLOWBB hFlowBb, PDBGFADDRESS pAddrStart)
     417{
     418    return NULL;
     419}
     420VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBbGetEndAddress(DBGFFLOWBB hFlowBb, PDBGFADDRESS pAddrEnd)
     421{
     422    return NULL;
     423}
     424VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBbGetBranchAddress(DBGFFLOWBB hFlowBb, PDBGFADDRESS pAddrTarget)
     425{
     426    return NULL;
     427}
     428VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBbGetFollowingAddress(DBGFFLOWBB hFlowBb, PDBGFADDRESS pAddrFollow)
     429{
     430    return NULL;
     431}
     432VMMR3DECL(DBGFFLOWBBENDTYPE) DBGFR3FlowBbGetType(DBGFFLOWBB hFlowBb)
     433{
     434    return DBGFFLOWBBENDTYPE_INVALID;
     435}
     436VMMR3DECL(uint32_t) DBGFR3FlowBbGetInstrCount(DBGFFLOWBB hFlowBb)
     437{
     438    return 0;
     439}
     440VMMR3DECL(uint32_t) DBGFR3FlowBbGetFlags(DBGFFLOWBB hFlowBb)
     441{
     442    return 0;
     443}
     444VMMR3DECL(int) DBGFR3FlowBbQueryError(DBGFFLOWBB hFlowBb, const char **ppszErr)
     445{
     446    return VERR_INTERNAL_ERROR;
     447}
     448VMMR3DECL(int) DBGFR3FlowBbQueryInstr(DBGFFLOWBB hFlowBb, uint32_t idxInstr, PDBGFADDRESS pAddrInstr,
     449                                      uint32_t *pcbInstr, const char **ppszInstr)
     450{
     451    return VERR_INTERNAL_ERROR;
     452}
     453VMMR3DECL(int) DBGFR3FlowBbQuerySuccessors(DBGFFLOWBB hFlowBb, PDBGFFLOWBB phFlowBbFollow,
     454                                           PDBGFFLOWBB phFlowBbTarget)
     455{
     456    return VERR_INTERNAL_ERROR;
     457}
     458VMMR3DECL(uint32_t) DBGFR3FlowBbGetRefBbCount(DBGFFLOWBB hFlowBb)
     459{
     460    return 0;
     461}
     462VMMR3DECL(int) DBGFR3FlowBbGetRefBb(DBGFFLOWBB hFlowBb, PDBGFFLOWBB pahFlowBbRef, uint32_t cRef)
     463{
     464    return VERR_INTERNAL_ERROR;
     465}
     466VMMR3DECL(int) DBGFR3FlowItCreate(DBGFFLOW hFlow, DBGFFLOWITORDER enmOrder, PDBGFFLOWIT phFlowIt)
     467{
     468    return VERR_INTERNAL_ERROR;
     469}
     470VMMR3DECL(void) DBGFR3FlowItDestroy(DBGFFLOWIT hFlowIt)
     471{
     472}
     473VMMR3DECL(DBGFFLOWBB) DBGFR3FlowItNext(DBGFFLOWIT hFlowIt)
     474{
     475    return NULL;
     476}
     477VMMR3DECL(int) DBGFR3FlowItReset(DBGFFLOWIT hFlowIt)
    482478{
    483479    return VERR_INTERNAL_ERROR;
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