VirtualBox

Changeset 22111 in vbox for trunk/src/VBox/Runtime


Ignore:
Timestamp:
Aug 9, 2009 8:12:09 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
50866
Message:

RTDbgAs,RTDbgMod: Bugfixes.

Location:
trunk/src/VBox/Runtime/common/dbg
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/dbg/dbgas.cpp

    r21337 r22111  
    500500        pAdjMod = (PRTDBGASMAP)RTAvlrUIntPtrGetBestFit(&pDbgAs->MapTree, Addr, true /* fAbove */);
    501501        if (     pAdjMod
    502             &&   pAdjMod->Core.Key >= Addr + cb - 1)
     502            &&   pAdjMod->Core.Key <= Addr + cb - 1)
    503503        {
    504504            if (!(fFlags & RTDBGASLINK_FLAGS_REPLACE))
     
    525525                return VERR_NO_MEMORY;
    526526            pDbgAs->paModules = (PRTDBGASMOD)pvNew;
     527
     528            /** @todo this rebuilding of the tree gets a bit silly... */
     529            pDbgAs->ModTree = NULL;
     530            for (uint32_t iMod = 0; iMod < pDbgAs->cModules; iMod++)
     531            {
     532                bool fRc = RTAvlPVInsert(&pDbgAs->ModTree, &pDbgAs->paModules[iMod].Core);
     533                Assert(fRc); NOREF(fRc);
     534            }
    527535        }
    528536        pMod = &pDbgAs->paModules[pDbgAs->cModules];
     
    551559            {
    552560                pDbgAs->cModules--;
     561                RTAvlPVRemove(&pDbgAs->ModTree, hDbgMod);
    553562                RTDbgModRelease(hDbgMod);
    554563                return VERR_NO_MEMORY;
     
    557566            pName->StrCore.pszString = (char *)memcpy(pName + 1, pszName, cchName + 1);
    558567            pName->pHead = pMod;
     568            if (!RTStrSpaceInsert(&pDbgAs->NameSpace, &pName->StrCore))
     569                AssertFailed();
    559570        }
    560571        else
     
    714725     * Unlink it from the name.
    715726     */
    716     PRTDBGASNAME pName = (PRTDBGASNAME)RTStrSpaceGet(&pDbgAs->NameSpace, RTDbgModName((RTDBGMOD)pMod->Core.Key));
     727    const char  *pszName = RTDbgModName((RTDBGMOD)pMod->Core.Key);
     728    PRTDBGASNAME pName   = (PRTDBGASNAME)RTStrSpaceGet(&pDbgAs->NameSpace, pszName);
    717729    AssertReturnVoid(pName);
    718730
     
    751763    pDbgAs->cModules--;
    752764    if (iMod <= pDbgAs->cModules)
     765    {
     766        pNode = RTAvlPVRemove(&pDbgAs->ModTree, pDbgAs->paModules[pDbgAs->cModules].Core.Key);
     767        Assert(pNode);
    753768        pDbgAs->paModules[iMod] = pDbgAs->paModules[pDbgAs->cModules];
     769        bool fRc = RTAvlPVInsert(&pDbgAs->ModTree, &pMod->Core);
     770        Assert(fRc); NOREF(fRc);
     771    }
    754772}
    755773
     
    767785    /* remove from the tree */
    768786    PAVLRUINTPTRNODECORE pNode = RTAvlrUIntPtrRemove(&pDbgAs->MapTree, pMap->Core.Key);
    769     Assert(pNode);
     787    Assert(pNode == &pMap->Core);
    770788
    771789    /* unlink */
     
    775793    else
    776794    {
    777         bool        fFound = false;
     795        bool fFound = false;
    778796        for (PRTDBGASMAP pCur = pMod->pMapHead; pCur; pCur = pCur->pNext)
    779797            if (pCur->pNext == pMap)
     
    13341352     */
    13351353    RTDBGSEGIDX const iSeg = pSymbol->iSeg;
    1336     if (iSeg)
     1354    if (iSeg == RTDBGSEGIDX_ABS)
    13371355        return true;
    13381356
  • trunk/src/VBox/Runtime/common/dbg/dbgmodcontainer.cpp

    r21337 r22111  
    415415            if (RTAvlrUIntPtrInsert(pAddrTree, &pSymbol->AddrCore))
    416416            {
    417                 if (RTAvlU32Insert(&pThis->LineOrdinalTree, &pSymbol->OrdinalCore))
     417                if (RTAvlU32Insert(&pThis->SymbolOrdinalTree, &pSymbol->OrdinalCore))
    418418                {
    419419                    if (piOrdinal)
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