VirtualBox

Changeset 42365 in vbox for trunk/src/VBox/Runtime/common


Ignore:
Timestamp:
Jul 24, 2012 1:31:36 PM (12 years ago)
Author:
vboxsync
Message:

dbgmodcontainer.cpp: A bug fix and a hack.

File:
1 edited

Legend:

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

    r41493 r42365  
    480480        RTUINTPTR uCurRvaLast = uCurRva + RT_MAX(pThis->paSegs[iSeg].cb, 1) - 1;
    481481        if (   uRva      <= uCurRvaLast
    482             && uRvaLast  >= uCurRva)
     482            && uRvaLast  >= uCurRva
     483            && (cb != 0 || pThis->paSegs[iSeg].cb != 0)) /* HACK ALERT! Allow empty segments to share space (bios/watcom). */
    483484            AssertMsgFailedReturn(("uRva=%RTptr uRvaLast=%RTptr (cb=%RTptr) \"%s\";\n"
    484485                                   "uRva=%RTptr uRvaLast=%RTptr (cb=%RTptr) \"%s\" iSeg=%#x\n",
     
    565566        for (;;)
    566567        {
    567             uint32_t    iSeg   = iFirst + (iFirst - iLast) / 2;
     568            uint32_t    iSeg   = iFirst + (iLast - iFirst) / 2;
    568569            RTUINTPTR   offSeg = uRva - paSeg[iSeg].off;
    569570            if (offSeg < paSeg[iSeg].cb)
    570571            {
     572#if 0 /* Enable if we change the above test. */
     573                if (offSeg == 0 && paSeg[iSeg].cb == 0)
     574                    while (   iSeg > 0
     575                           && paSeg[iSeg - 1].cb  == 0
     576                           && paSeg[iSeg - 1].off == uRva)
     577                        iSeg--;
     578#endif
     579
    571580                if (poffSeg)
    572581                    *poffSeg = offSeg;
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