VirtualBox

Changeset 9840 in vbox


Ignore:
Timestamp:
Jun 20, 2008 9:27:40 AM (16 years ago)
Author:
vboxsync
Message:

Unassemble fix for 64 bits code

File:
1 edited

Legend:

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

    r9834 r9840  
    909909        if (!DBGCVAR_ISPOINTER(pDbgc->DisasmPos.enmType))
    910910        {
    911             pDbgc->DisasmPos.enmType     = DBGCVAR_TYPE_GC_FAR;
    912             pDbgc->SourcePos.u.GCFar.off = pDbgc->fRegCtxGuest ? CPUMGetGuestEIP(pVM) : CPUMGetHyperEIP(pVM);
    913             pDbgc->SourcePos.u.GCFar.sel = pDbgc->fRegCtxGuest ? CPUMGetGuestCS(pVM)  : CPUMGetHyperCS(pVM);
     911            PCPUMCTX pCtx;
     912            int rc = CPUMQueryGuestCtxPtr(pVM, &pCtx);
     913            AssertRC(rc);
     914
     915            if (    pDbgc->fRegCtxGuest
     916                &&  CPUMIsGuestIn64BitCodeEx(pCtx))
     917            {
     918                pDbgc->DisasmPos.enmType    = DBGCVAR_TYPE_GC_FLAT;
     919                pDbgc->SourcePos.u.GCFlat   = CPUMGetGuestRIP(pVM);
     920            }
     921            else
     922            {
     923                pDbgc->DisasmPos.enmType     = DBGCVAR_TYPE_GC_FAR;
     924                pDbgc->SourcePos.u.GCFar.off = pDbgc->fRegCtxGuest ? CPUMGetGuestEIP(pVM) : CPUMGetHyperEIP(pVM);
     925                pDbgc->SourcePos.u.GCFar.sel = pDbgc->fRegCtxGuest ? CPUMGetGuestCS(pVM)  : CPUMGetHyperCS(pVM);
     926            }
     927
    914928            if (pDbgc->fRegCtxGuest)
    915929                fFlags |= DBGF_DISAS_FLAGS_CURRENT_GUEST;
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