Changeset 65476 in vbox
- Timestamp:
- Jan 27, 2017 9:04:48 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 113102
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r65471 r65476 5477 5477 pPage->iMonitoredNext = NIL_PGMPOOL_IDX; 5478 5478 pPage->iMonitoredPrev = NIL_PGMPOOL_IDX; 5479 pPage->cModifications = 0; 5479 5480 pPage->GCPhys = NIL_RTGCPHYS; 5480 5481 pPage->enmKind = PGMPOOLKIND_FREE; … … 5490 5491 pPage->fReusedFlushPending = false; 5491 5492 pPage->iUserHead = NIL_PGMPOOL_USER_INDEX; 5492 pPage->cPresent = 0;5493 pPage->iFirstPresent = NIL_PGMPOOL_PRESENT_INDEX;5494 pPage->cModifications = 0;5495 5493 pPage->iAgeNext = NIL_PGMPOOL_IDX; 5496 5494 pPage->iAgePrev = NIL_PGMPOOL_IDX; 5497 pPage->idxDirtyEntry = 0;5498 5495 pPage->GCPtrLastAccessHandlerRip = NIL_RTGCPTR; 5499 5496 pPage->GCPtrLastAccessHandlerFault = NIL_RTGCPTR; -
trunk/src/VBox/VMM/VMMR3/PGM.cpp
r65472 r65476 2273 2273 rc = pgmR3PhysRamPreAllocate(pVM); 2274 2274 2275 //pgmLogState(pVM);2276 2275 LogRel(("PGM: PGMR3InitFinalize: 4 MB PSE mask %RGp\n", pVM->pgm.s.GCPhys4MBPSEMask)); 2277 2276 return rc; … … 2549 2548 int rc = PGM_GST_PFN(Exit, pVCpu)(pVCpu); 2550 2549 AssertRC(rc); 2551 pVCpu->pgm.s.GCPhysCR3 = NIL_RTGCPHYS;2552 2550 2553 2551 rc = PGMR3ChangeMode(pVM, pVCpu, PGMMODE_REAL); … … 2604 2602 int rc = PGM_GST_PFN(Exit, pVCpu)(pVCpu); 2605 2603 AssertReleaseRC(rc); 2606 pVCpu->pgm.s.GCPhysCR3 = NIL_RTGCPHYS;2607 2604 } 2608 2605 … … 2657 2654 } 2658 2655 2659 //pgmLogState(pVM);2660 2656 pgmUnlock(pVM); 2661 2657 } … … 3516 3512 } 3517 3513 } 3518 pVCpu->pgm.s.GCPhysCR3 = NIL_RTGCPHYS;3519 3514 3520 3515 /* … … 3743 3738 int rc = PGM_BTH_PFN(UnmapCR3, pVCpu)(pVCpu); 3744 3739 AssertRC(rc); 3745 pVCpu->pgm.s.GCPhysCR3 = NIL_RTGCPHYS;3746 3740 3747 3741 /* Exit the current shadow paging mode as well; nested paging and EPT use a root CR3 which will get flushed here. */ -
trunk/src/VBox/VMM/VMMR3/PGMDbg.cpp
r65472 r65476 2478 2478 } 2479 2479 2480 2481 /**2482 * For aiding with reset problems and similar.2483 *2484 * @param pVM The cross context VM handle.2485 */2486 void pgmLogState(PVM pVM)2487 {2488 #if 02489 RTLogRelPrintf("\npgmLogState pgmLogState pgmLogState pgmLogState pgmLogState\n");2490 2491 /*2492 * Per CPU stuff.2493 */2494 for (VMCPUID iCpu = 0; iCpu < pVM->cCpus; iCpu++)2495 {2496 PPGMCPU pPgmCpu = &pVM->aCpus[iCpu].pgm.s;2497 RTLogRelPrintf("pgmLogState: CPU #%u\n", iCpu);2498 # define LOG_PGMCPU_MEMBER(aFmt, aMember) RTLogRelPrintf(" %32s: %" aFmt "\n", #aMember, pPgmCpu->aMember)2499 LOG_PGMCPU_MEMBER("#RX32", offVM);2500 LOG_PGMCPU_MEMBER("#RX32", offVCpu);2501 LOG_PGMCPU_MEMBER("#RX32", offPGM);2502 LOG_PGMCPU_MEMBER("RGp", GCPhysA20Mask);2503 LOG_PGMCPU_MEMBER("RTbool", fA20Enabled);2504 LOG_PGMCPU_MEMBER("RTbool", fNoExecuteEnabled);2505 LOG_PGMCPU_MEMBER("#RX32", fSyncFlags);2506 LOG_PGMCPU_MEMBER("d", enmShadowMode);2507 LOG_PGMCPU_MEMBER("d", enmGuestMode);2508 LOG_PGMCPU_MEMBER("RGp", GCPhysCR3);2509 2510 LOG_PGMCPU_MEMBER("p", pGst32BitPdR3);2511 # ifndef VBOX_WITH_2X_4GB_ADDR_SPACE2512 LOG_PGMCPU_MEMBER("p", pGst32BitPdR0);2513 # endif2514 LOG_PGMCPU_MEMBER("RRv", pGst32BitPdRC);2515 LOG_PGMCPU_MEMBER("#RX32", fGst32BitMbzBigPdeMask);2516 LOG_PGMCPU_MEMBER("RTbool", fGst32BitPageSizeExtension);2517 2518 LOG_PGMCPU_MEMBER("p", pGstPaePdptR3);2519 # ifndef VBOX_WITH_2X_4GB_ADDR_SPACE2520 LOG_PGMCPU_MEMBER("p", pGstPaePdptR0);2521 # endif2522 LOG_PGMCPU_MEMBER("RRv", pGstPaePdptRC);2523 LOG_PGMCPU_MEMBER("p", apGstPaePDsR3[0]);2524 LOG_PGMCPU_MEMBER("p", apGstPaePDsR3[1]);2525 LOG_PGMCPU_MEMBER("p", apGstPaePDsR3[2]);2526 LOG_PGMCPU_MEMBER("p", apGstPaePDsR3[3]);2527 # ifndef VBOX_WITH_2X_4GB_ADDR_SPACE2528 LOG_PGMCPU_MEMBER("p", apGstPaePDsR0[0]);2529 LOG_PGMCPU_MEMBER("p", apGstPaePDsR0[1]);2530 LOG_PGMCPU_MEMBER("p", apGstPaePDsR0[2]);2531 LOG_PGMCPU_MEMBER("p", apGstPaePDsR0[3]);2532 # endif2533 LOG_PGMCPU_MEMBER("RRv", apGstPaePDsR0[0]);2534 LOG_PGMCPU_MEMBER("RRv", apGstPaePDsR0[1]);2535 LOG_PGMCPU_MEMBER("RRv", apGstPaePDsR0[2]);2536 LOG_PGMCPU_MEMBER("RRv", apGstPaePDsR0[3]);2537 LOG_PGMCPU_MEMBER("RGp", aGCPhysGstPaePDs[0]);2538 LOG_PGMCPU_MEMBER("RGp", aGCPhysGstPaePDs[1]);2539 LOG_PGMCPU_MEMBER("RGp", aGCPhysGstPaePDs[2]);2540 LOG_PGMCPU_MEMBER("RGp", aGCPhysGstPaePDs[3]);2541 LOG_PGMCPU_MEMBER("#RX64", aGstPaePdpeRegs[0].u);2542 LOG_PGMCPU_MEMBER("#RX64", aGstPaePdpeRegs[1].u);2543 LOG_PGMCPU_MEMBER("#RX64", aGstPaePdpeRegs[2].u);2544 LOG_PGMCPU_MEMBER("#RX64", aGstPaePdpeRegs[3].u);2545 LOG_PGMCPU_MEMBER("RGp", aGCPhysGstPaePDsMonitored[0]);2546 LOG_PGMCPU_MEMBER("RGp", aGCPhysGstPaePDsMonitored[1]);2547 LOG_PGMCPU_MEMBER("RGp", aGCPhysGstPaePDsMonitored[2]);2548 LOG_PGMCPU_MEMBER("RGp", aGCPhysGstPaePDsMonitored[3]);2549 LOG_PGMCPU_MEMBER("#RX64", fGstPaeMbzPteMask);2550 LOG_PGMCPU_MEMBER("#RX64", fGstPaeMbzPdeMask);2551 LOG_PGMCPU_MEMBER("#RX64", fGstPaeMbzBigPdeMask);2552 LOG_PGMCPU_MEMBER("#RX64", fGstPaeMbzBigPdeMask);2553 LOG_PGMCPU_MEMBER("#RX64", fGstPaeMbzPdpeMask);2554 2555 LOG_PGMCPU_MEMBER("p", pGstAmd64Pml4R3);2556 # ifndef VBOX_WITH_2X_4GB_ADDR_SPACE2557 LOG_PGMCPU_MEMBER("p", pGstAmd64Pml4R0);2558 # endif2559 LOG_PGMCPU_MEMBER("#RX64", fGstAmd64MbzPteMask);2560 LOG_PGMCPU_MEMBER("#RX64", fGstAmd64MbzPdeMask);2561 LOG_PGMCPU_MEMBER("#RX64", fGstAmd64MbzBigPdeMask);2562 LOG_PGMCPU_MEMBER("#RX64", fGstAmd64MbzPdpeMask);2563 LOG_PGMCPU_MEMBER("#RX64", fGstAmd64MbzBigPdpeMask);2564 LOG_PGMCPU_MEMBER("#RX64", fGstAmd64MbzPml4eMask);2565 LOG_PGMCPU_MEMBER("#RX64", fGstAmd64ShadowedPdpeMask);2566 LOG_PGMCPU_MEMBER("#RX64", fGstAmd64ShadowedPml4eMask);2567 LOG_PGMCPU_MEMBER("#RX64", fGst64ShadowedPteMask);2568 LOG_PGMCPU_MEMBER("#RX64", fGst64ShadowedPdeMask);2569 LOG_PGMCPU_MEMBER("#RX64", fGst64ShadowedBigPdeMask);2570 LOG_PGMCPU_MEMBER("#RX64", fGst64ShadowedBigPde4PteMask);2571 2572 LOG_PGMCPU_MEMBER("p", pShwPageCR3R3);2573 LOG_PGMCPU_MEMBER("p", pShwPageCR3R0);2574 LOG_PGMCPU_MEMBER("RRv", pShwPageCR3RC);2575 2576 LOG_PGMCPU_MEMBER("p", pfnR3ShwRelocate);2577 LOG_PGMCPU_MEMBER("p", pfnR3ShwExit);2578 LOG_PGMCPU_MEMBER("p", pfnR3ShwGetPage);2579 LOG_PGMCPU_MEMBER("p", pfnR3ShwModifyPage);2580 LOG_PGMCPU_MEMBER("p", pfnR0ShwGetPage);2581 LOG_PGMCPU_MEMBER("p", pfnR0ShwModifyPage);2582 LOG_PGMCPU_MEMBER("p", pfnR3GstRelocate);2583 LOG_PGMCPU_MEMBER("p", pfnR3GstExit);2584 LOG_PGMCPU_MEMBER("p", pfnR3GstGetPage);2585 LOG_PGMCPU_MEMBER("p", pfnR3GstModifyPage);2586 LOG_PGMCPU_MEMBER("p", pfnR0GstGetPage);2587 LOG_PGMCPU_MEMBER("p", pfnR0GstModifyPage);2588 LOG_PGMCPU_MEMBER("p", pfnR3BthRelocate);2589 LOG_PGMCPU_MEMBER("p", pfnR3BthInvalidatePage);2590 LOG_PGMCPU_MEMBER("p", pfnR3BthSyncCR3);2591 LOG_PGMCPU_MEMBER("p", pfnR3BthPrefetchPage);2592 LOG_PGMCPU_MEMBER("p", pfnR3BthMapCR3);2593 LOG_PGMCPU_MEMBER("p", pfnR3BthUnmapCR3);2594 LOG_PGMCPU_MEMBER("p", pfnR0BthMapCR3);2595 LOG_PGMCPU_MEMBER("p", pfnR0BthUnmapCR3);2596 LOG_PGMCPU_MEMBER("#RX64", cNetwareWp0Hacks);2597 LOG_PGMCPU_MEMBER("#RX64", cPoolAccessHandler);2598 2599 }2600 2601 /*2602 * PGM globals.2603 */2604 RTLogRelPrintf("PGM globals\n");2605 PPGM pPgm = &pVM->pgm.s;2606 # define LOG_PGM_MEMBER(aFmt, aMember) RTLogRelPrintf(" %32s: %" aFmt "\n", #aMember, pPgm->aMember)2607 LOG_PGM_MEMBER("#RX32", offVM);2608 LOG_PGM_MEMBER("#RX32", offVCpuPGM);2609 LOG_PGM_MEMBER("RTbool", fRamPreAlloc);2610 LOG_PGM_MEMBER("RTbool", fPhysWriteMonitoringEngaged);2611 LOG_PGM_MEMBER("RTbool", fLessThan52PhysicalAddressBits);2612 LOG_PGM_MEMBER("RTbool", fNestedPaging);2613 LOG_PGM_MEMBER("d", enmHostMode);2614 LOG_PGM_MEMBER("RTbool", fNoMorePhysWrites);2615 LOG_PGM_MEMBER("RTbool", fPageFusionAllowed);2616 LOG_PGM_MEMBER("RTbool", fPciPassthrough);2617 LOG_PGM_MEMBER("#x", cMmio2Regions);2618 LOG_PGM_MEMBER("RTbool", fRestoreRomPagesOnReset);2619 LOG_PGM_MEMBER("RTbool", fZeroRamPagesOnReset);2620 LOG_PGM_MEMBER("RTbool", fFinalizedMappings);2621 LOG_PGM_MEMBER("RTbool", fMappingsFixed);2622 LOG_PGM_MEMBER("RTbool", fMappingsFixedRestored);2623 LOG_PGM_MEMBER("%#x", cbMappingFixed);2624 LOG_PGM_MEMBER("%#x", idRamRangesGen);2625 LOG_PGM_MEMBER("#RGv", GCPtrMappingFixed);2626 LOG_PGM_MEMBER("#RGv", GCPtrPrevRamRangeMapping);2627 LOG_PGM_MEMBER("%#x", hRomPhysHandlerType);2628 LOG_PGM_MEMBER("#RGp", GCPhys4MBPSEMask);2629 LOG_PGM_MEMBER("#RGp", GCPhysInvAddrMask);2630 LOG_PGM_MEMBER("p", apRamRangesTlbR3[0]);2631 LOG_PGM_MEMBER("p", apRamRangesTlbR3[1]);2632 LOG_PGM_MEMBER("p", apRamRangesTlbR3[2]);2633 LOG_PGM_MEMBER("p", apRamRangesTlbR3[3]);2634 LOG_PGM_MEMBER("p", apRamRangesTlbR3[4]);2635 LOG_PGM_MEMBER("p", apRamRangesTlbR3[5]);2636 LOG_PGM_MEMBER("p", apRamRangesTlbR3[6]);2637 LOG_PGM_MEMBER("p", apRamRangesTlbR3[7]);2638 LOG_PGM_MEMBER("p", pRamRangesXR3);2639 LOG_PGM_MEMBER("p", pRamRangeTreeR3);2640 LOG_PGM_MEMBER("p", pTreesR3);2641 LOG_PGM_MEMBER("p", pLastPhysHandlerR3);2642 LOG_PGM_MEMBER("p", pPoolR3);2643 LOG_PGM_MEMBER("p", pMappingsR3);2644 LOG_PGM_MEMBER("p", pRomRangesR3);2645 LOG_PGM_MEMBER("p", pRegMmioRangesR3);2646 LOG_PGM_MEMBER("p", paModeData);2647 LOG_PGM_MEMBER("p", apMmio2RangesR3[0]);2648 LOG_PGM_MEMBER("p", apMmio2RangesR3[1]);2649 LOG_PGM_MEMBER("p", apMmio2RangesR3[2]);2650 LOG_PGM_MEMBER("p", apMmio2RangesR3[3]);2651 LOG_PGM_MEMBER("p", apMmio2RangesR3[4]);2652 LOG_PGM_MEMBER("p", apMmio2RangesR3[5]);2653 LOG_PGM_MEMBER("p", apRamRangesTlbR0[0]);2654 LOG_PGM_MEMBER("p", apRamRangesTlbR0[1]);2655 LOG_PGM_MEMBER("p", apRamRangesTlbR0[2]);2656 LOG_PGM_MEMBER("p", apRamRangesTlbR0[3]);2657 LOG_PGM_MEMBER("p", apRamRangesTlbR0[4]);2658 LOG_PGM_MEMBER("p", apRamRangesTlbR0[5]);2659 LOG_PGM_MEMBER("p", apRamRangesTlbR0[6]);2660 LOG_PGM_MEMBER("p", apRamRangesTlbR0[7]);2661 LOG_PGM_MEMBER("p", pRamRangesXR0);2662 LOG_PGM_MEMBER("p", pRamRangeTreeR0);2663 LOG_PGM_MEMBER("p", pTreesR0);2664 LOG_PGM_MEMBER("p", pLastPhysHandlerR0);2665 LOG_PGM_MEMBER("p", pPoolR0);2666 LOG_PGM_MEMBER("p", pMappingsR0);2667 LOG_PGM_MEMBER("p", pRomRangesR0);2668 LOG_PGM_MEMBER("p", apMmio2RangesR0[0]);2669 LOG_PGM_MEMBER("p", apMmio2RangesR0[1]);2670 LOG_PGM_MEMBER("p", apMmio2RangesR0[2]);2671 LOG_PGM_MEMBER("p", apMmio2RangesR0[3]);2672 LOG_PGM_MEMBER("p", apMmio2RangesR0[4]);2673 LOG_PGM_MEMBER("p", apMmio2RangesR0[5]);2674 LOG_PGM_MEMBER("RRv", apRamRangesTlbRC[0]);2675 LOG_PGM_MEMBER("RRv", apRamRangesTlbRC[1]);2676 LOG_PGM_MEMBER("RRv", apRamRangesTlbRC[2]);2677 LOG_PGM_MEMBER("RRv", apRamRangesTlbRC[3]);2678 LOG_PGM_MEMBER("RRv", apRamRangesTlbRC[4]);2679 LOG_PGM_MEMBER("RRv", apRamRangesTlbRC[5]);2680 LOG_PGM_MEMBER("RRv", apRamRangesTlbRC[6]);2681 LOG_PGM_MEMBER("RRv", apRamRangesTlbRC[7]);2682 LOG_PGM_MEMBER("RRv", pRamRangesXRC);2683 LOG_PGM_MEMBER("RRv", pRamRangeTreeRC);2684 LOG_PGM_MEMBER("RRv", pTreesRC);2685 LOG_PGM_MEMBER("RRv", pLastPhysHandlerRC);2686 LOG_PGM_MEMBER("RRv", pPoolRC);2687 LOG_PGM_MEMBER("RRv", pMappingsRC);2688 LOG_PGM_MEMBER("RRv", pRomRangesRC);2689 LOG_PGM_MEMBER("RRv", paDynPageMap32BitPTEsGC);2690 LOG_PGM_MEMBER("RRv", paDynPageMapPaePTEsGC);2691 2692 LOG_PGM_MEMBER("#RGv", GCPtrCR3Mapping);2693 LOG_PGM_MEMBER("p", pInterPD);2694 LOG_PGM_MEMBER("p", apInterPTs[0]);2695 LOG_PGM_MEMBER("p", apInterPTs[1]);2696 LOG_PGM_MEMBER("p", apInterPaePTs[0]);2697 LOG_PGM_MEMBER("p", apInterPaePTs[1]);2698 LOG_PGM_MEMBER("p", apInterPaePDs[0]);2699 LOG_PGM_MEMBER("p", apInterPaePDs[1]);2700 LOG_PGM_MEMBER("p", apInterPaePDs[2]);2701 LOG_PGM_MEMBER("p", apInterPaePDs[3]);2702 LOG_PGM_MEMBER("p", pInterPaePDPT);2703 LOG_PGM_MEMBER("p", pInterPaePML4);2704 LOG_PGM_MEMBER("p", pInterPaePDPT64);2705 LOG_PGM_MEMBER("#RHp", HCPhysInterPD);2706 LOG_PGM_MEMBER("#RHp", HCPhysInterPaePDPT);2707 LOG_PGM_MEMBER("#RHp", HCPhysInterPaePML4);2708 LOG_PGM_MEMBER("RRv", pbDynPageMapBaseGC);2709 LOG_PGM_MEMBER("RRv", pRCDynMap);2710 LOG_PGM_MEMBER("p", pvR0DynMapUsed);2711 LOG_PGM_MEMBER("%#x", cDeprecatedPageLocks);2712 2713 /**2714 * Data associated with managing the ring-3 mappings of the allocation chunks.2715 */2716 LOG_PGM_MEMBER("p", ChunkR3Map.pTree);2717 //LOG_PGM_MEMBER(PGMCHUNKR3MAPTLB ChunkR3Map.Tlb);2718 LOG_PGM_MEMBER("%#x", ChunkR3Map.c);2719 LOG_PGM_MEMBER("%#x", ChunkR3Map.cMax);2720 LOG_PGM_MEMBER("%#x", ChunkR3Map.iNow);2721 //LOG_PGM_MEMBER(PGMPAGER3MAPTLB PhysTlbHC);2722 2723 LOG_PGM_MEMBER("#RHp", HCPhysZeroPg);2724 LOG_PGM_MEMBER("p", pvZeroPgR3);2725 LOG_PGM_MEMBER("p", pvZeroPgR0);2726 LOG_PGM_MEMBER("RRv", pvZeroPgRC);2727 LOG_PGM_MEMBER("#RHp", HCPhysMmioPg);2728 LOG_PGM_MEMBER("#RHp", HCPhysInvMmioPg);2729 LOG_PGM_MEMBER("p", pvMmioPgR3);2730 LOG_PGM_MEMBER("RTbool", fErrInjHandyPages);2731 2732 /*2733 * PGM page pool.2734 */2735 PPGMPOOL pPool = pVM->pgm.s.pPoolR3;2736 RTLogRelPrintf("PGM Page Pool\n");2737 # define LOG_PGMPOOL_MEMBER(aFmt, aMember) RTLogRelPrintf(" %32s: %" aFmt "\n", #aMember, pPool->aMember)2738 LOG_PGMPOOL_MEMBER("p", pVMR3);2739 LOG_PGMPOOL_MEMBER("p", pVMR0);2740 LOG_PGMPOOL_MEMBER("RRv", pVMRC);2741 LOG_PGMPOOL_MEMBER("#x", cMaxPages);2742 LOG_PGMPOOL_MEMBER("#x", cCurPages);2743 LOG_PGMPOOL_MEMBER("#x", iFreeHead);2744 LOG_PGMPOOL_MEMBER("#x", u16Padding);2745 LOG_PGMPOOL_MEMBER("#x", iUserFreeHead);2746 LOG_PGMPOOL_MEMBER("#x", cMaxUsers);2747 LOG_PGMPOOL_MEMBER("#x", cPresent);2748 LOG_PGMPOOL_MEMBER("RRv", paUsersRC);2749 LOG_PGMPOOL_MEMBER("p", paUsersR3);2750 LOG_PGMPOOL_MEMBER("p", paUsersR0);2751 LOG_PGMPOOL_MEMBER("#x", iPhysExtFreeHead);2752 LOG_PGMPOOL_MEMBER("#x", cMaxPhysExts);2753 LOG_PGMPOOL_MEMBER("RRv", paPhysExtsRC);2754 LOG_PGMPOOL_MEMBER("p", paPhysExtsR3);2755 LOG_PGMPOOL_MEMBER("p", paPhysExtsR0);2756 for (uint32_t i = 0; i < RT_ELEMENTS(pPool->aiHash); i++)2757 RTLogRelPrintf(" aiHash[%u]: %#x\n", i, pPool->aiHash[i]);2758 LOG_PGMPOOL_MEMBER("#x", iAgeHead);2759 LOG_PGMPOOL_MEMBER("#x", iAgeTail);2760 LOG_PGMPOOL_MEMBER("RTbool", fCacheEnabled);2761 LOG_PGMPOOL_MEMBER("RTbool", afPadding1[0]);2762 LOG_PGMPOOL_MEMBER("RTbool", afPadding1[1]);2763 LOG_PGMPOOL_MEMBER("RTbool", afPadding1[2]);2764 LOG_PGMPOOL_MEMBER("#x", iModifiedHead);2765 LOG_PGMPOOL_MEMBER("#x", cModifiedPages);2766 LOG_PGMPOOL_MEMBER("#x", hAccessHandlerType);2767 LOG_PGMPOOL_MEMBER("#x", idxFreeDirtyPage);2768 LOG_PGMPOOL_MEMBER("#x", cDirtyPages);2769 for (uint32_t i = 0; i < RT_ELEMENTS(pPool->aDirtyPages); i++)2770 RTLogRelPrintf(" aDirtyPages[%u].uIdx: %#x\n", i, pPool->aDirtyPages[i].uIdx);2771 LOG_PGMPOOL_MEMBER("#x", cUsedPages);2772 LOG_PGMPOOL_MEMBER("#x", HCPhysTree);2773 for (uint32_t i = 0; i < pPool->cCurPages; i++)2774 {2775 PPGMPOOLPAGE pPage = &pPool->aPages[i];2776 # define LOG_PAGE_MEMBER(aFmt, aMember) RTLogRelPrintf(" %3u:%-32s: %" aFmt "\n", i, #aMember, pPage->aMember)2777 RTLogRelPrintf("%3u:%-32s: %p\n", i, "", pPage);2778 LOG_PAGE_MEMBER("RHp", Core.Key);2779 LOG_PAGE_MEMBER("p", pvPageR3);2780 LOG_PAGE_MEMBER("RGp", GCPhys);2781 LOG_PAGE_MEMBER("d", enmKind);2782 LOG_PAGE_MEMBER("d", enmAccess);2783 LOG_PAGE_MEMBER("RTbool", fA20Enabled);2784 LOG_PAGE_MEMBER("RTbool", fZeroed);2785 LOG_PAGE_MEMBER("RTbool", fSeenNonGlobal);2786 LOG_PAGE_MEMBER("RTbool", fMonitored);2787 LOG_PAGE_MEMBER("RTbool", fCached);2788 LOG_PAGE_MEMBER("RTbool", fReusedFlushPending);2789 LOG_PAGE_MEMBER("RTbool", fDirty);2790 LOG_PAGE_MEMBER("RTbool", fPadding1);2791 LOG_PAGE_MEMBER("RTbool", fPadding2);2792 LOG_PAGE_MEMBER("#x", idx);2793 LOG_PAGE_MEMBER("#x", iNext);2794 LOG_PAGE_MEMBER("#x", iUserHead);2795 LOG_PAGE_MEMBER("#x", cPresent);2796 LOG_PAGE_MEMBER("#x", iFirstPresent);2797 LOG_PAGE_MEMBER("#x", cModifications);2798 LOG_PAGE_MEMBER("#x", iModifiedNext);2799 LOG_PAGE_MEMBER("#x", iModifiedPrev);2800 LOG_PAGE_MEMBER("#x", iMonitoredNext);2801 LOG_PAGE_MEMBER("#x", iMonitoredPrev);2802 LOG_PAGE_MEMBER("#x", iAgeNext);2803 LOG_PAGE_MEMBER("#x", iAgePrev);2804 LOG_PAGE_MEMBER("#x", idxDirtyEntry);2805 LOG_PAGE_MEMBER("RGv", GCPtrLastAccessHandlerRip);2806 LOG_PAGE_MEMBER("RGv", GCPtrLastAccessHandlerFault);2807 LOG_PAGE_MEMBER("#RX64", cLastAccessHandler);2808 LOG_PAGE_MEMBER("#RX32", cLocked);2809 # ifdef VBOX_STRICT2810 LOG_PAGE_MEMBER("RGv", GCPtrDirtyFault);2811 # endif2812 if ( pPage->enmKind == PGMPOOLKIND_32BIT_PT_FOR_32BIT_PT2813 || pPage->enmKind == PGMPOOLKIND_32BIT_PT_FOR_32BIT_4MB2814 || pPage->enmKind == PGMPOOLKIND_32BIT_PD2815 || pPage->enmKind == PGMPOOLKIND_32BIT_PD_PHYS)2816 {2817 uint32_t const *pu32Page = (uint32_t const *)pPage->pvPageR3;2818 for (uint32_t i = 0; i < 1024/2; i += 4)2819 RTLogRelPrintf(" %#05x: %RX32 %RX32 %RX32 %RX32\n", i, pu32Page[i], pu32Page[i+1], pu32Page[i+2], pu32Page[i+3]);2820 }2821 else if ( pPage->enmKind != PGMPOOLKIND_FREE2822 && pPage->enmKind != PGMPOOLKIND_INVALID)2823 {2824 uint64_t const *pu64Page = (uint64_t const *)pPage->pvPageR3;2825 for (uint32_t i = 0; i < 512/2; i += 2)2826 RTLogRelPrintf(" %#05x: %RX64 %RX64\n", i, pu64Page[i], pu64Page[i+1]);2827 }2828 }2829 2830 RTLogRelPrintf("pgmLogState pgmLogState pgmLogState pgmLogState pgmLogState\n\n");2831 #else2832 RT_NOREF(pVM);2833 #endif2834 }2835 -
trunk/src/VBox/VMM/include/PGMInternal.h
r65468 r65476 4323 4323 # endif 4324 4324 4325 void pgmLogState(PVM pVM);4326 4327 4325 RT_C_DECLS_END 4328 4326
Note:
See TracChangeset
for help on using the changeset viewer.