VirtualBox

Changeset 1104 in vbox for trunk


Ignore:
Timestamp:
Feb 28, 2007 1:05:24 PM (18 years ago)
Author:
vboxsync
Message:

Correction for same privilege level returns.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PATM/VMMAll/PATMAll.cpp

    r1102 r1104  
    630630                if (rc == VINF_SUCCESS)
    631631                {
    632                     Log(("PATMGC: IRET stack frame: return address %04X:%VGv eflags=%08x ss:esp=%04X:%VGv\n", selCS, eip, uEFlags, selSS, esp));
    633                     if (uEFlags & X86_EFL_VM)
     632                    if (    (uEFlags & X86_EFL_VM)
     633                        ||  (selCS & X86_SEL_RPL) == 3))
    634634                    {
    635                         uint32_t selDS, selES, selFS, selGS;
    636                         rc  = MMGCRamRead(pVM, &selES,   pIretFrame + 20, 4);
    637                         rc |= MMGCRamRead(pVM, &selDS,   pIretFrame + 24, 4);
    638                         rc |= MMGCRamRead(pVM, &selFS,   pIretFrame + 28, 4);
    639                         rc |= MMGCRamRead(pVM, &selGS,   pIretFrame + 32, 4);
    640                         if (rc == VINF_SUCCESS)
    641                             Log(("PATMGC: IRET stack frame: DS=%04X ES=%04X FS=%04X GS=%04X\n", selDS, selES, selFS, selGS));
     635                        Log(("PATMGC: IRET stack frame: return address %04X:%VGv eflags=%08x ss:esp=%04X:%VGv\n", selCS, eip, uEFlags, selSS, esp));
     636                        if (uEFlags & X86_EFL_VM)
     637                        {
     638                            uint32_t selDS, selES, selFS, selGS;
     639                            rc  = MMGCRamRead(pVM, &selES,   pIretFrame + 20, 4);
     640                            rc |= MMGCRamRead(pVM, &selDS,   pIretFrame + 24, 4);
     641                            rc |= MMGCRamRead(pVM, &selFS,   pIretFrame + 28, 4);
     642                            rc |= MMGCRamRead(pVM, &selGS,   pIretFrame + 32, 4);
     643                            if (rc == VINF_SUCCESS)
     644                                Log(("PATMGC: IRET stack frame: DS=%04X ES=%04X FS=%04X GS=%04X\n", selDS, selES, selFS, selGS));
     645                        }
    642646                    }
     647                    else
     648                        Log(("PATMGC: IRET stack frame: return address %04X:%VGv eflags=%08x\n", selCS, eip, uEFlags));
    643649                }
    644650#endif
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