Changeset 1438 in vbox for trunk/src/VBox/VMM/PATM/VMMGC
- Timestamp:
- Mar 13, 2007 10:48:29 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PATM/VMMGC/PATMGC.cpp
r1359 r1438 377 377 } 378 378 379 case PATM_ACTION_LOG_GATE_ENTRY: 380 { 381 char *pIretFrame = (char *)pRegFrame->edx; 382 uint32_t eip, selCS, uEFlags; 383 384 rc = MMGCRamRead(pVM, &eip, pIretFrame, 4); 385 rc |= MMGCRamRead(pVM, &selCS, pIretFrame + 4, 4); 386 rc |= MMGCRamRead(pVM, &uEFlags, pIretFrame + 8, 4); 387 if (rc == VINF_SUCCESS) 388 { 389 if ( (uEFlags & X86_EFL_VM) 390 || (selCS & X86_SEL_RPL) == 3) 391 { 392 uint32_t selSS, esp; 393 394 rc |= MMGCRamRead(pVM, &esp, pIretFrame + 12, 4); 395 rc |= MMGCRamRead(pVM, &selSS, pIretFrame + 16, 4); 396 397 if (uEFlags & X86_EFL_VM) 398 { 399 uint32_t selDS, selES, selFS, selGS; 400 rc = MMGCRamRead(pVM, &selES, pIretFrame + 20, 4); 401 rc |= MMGCRamRead(pVM, &selDS, pIretFrame + 24, 4); 402 rc |= MMGCRamRead(pVM, &selFS, pIretFrame + 28, 4); 403 rc |= MMGCRamRead(pVM, &selGS, pIretFrame + 32, 4); 404 if (rc == VINF_SUCCESS) 405 { 406 Log(("PATMGC: GATE->VM stack frame: return address %04X:%VGv eflags=%08x ss:esp=%04X:%VGv\n", selCS, eip, uEFlags, selSS, esp)); 407 Log(("PATMGC: GATE->VM stack frame: DS=%04X ES=%04X FS=%04X GS=%04X\n", selDS, selES, selFS, selGS)); 408 } 409 } 410 else 411 Log(("PATMGC: GATE stack frame: return address %04X:%VGv eflags=%08x ss:esp=%04X:%VGv\n", selCS, eip, uEFlags, selSS, esp)); 412 } 413 else 414 Log(("PATMGC: GATE stack frame: return address %04X:%VGv eflags=%08x\n", selCS, eip, uEFlags)); 415 } 416 pRegFrame->eip += PATM_ILLEGAL_INSTR_SIZE; 417 return VINF_SUCCESS; 418 } 419 379 420 case PATM_ACTION_LOG_RET: 380 421 Log(("PATMGC: RET to %VGv ESP=%VGv iopl=%d\n", pRegFrame->edx, pRegFrame->ebx, X86_EFL_GET_IOPL(pVM->patm.s.CTXSUFF(pGCState)->uVMFlags)));
Note:
See TracChangeset
for help on using the changeset viewer.