VirtualBox

Changeset 24349 in vbox


Ignore:
Timestamp:
Nov 4, 2009 5:37:15 PM (15 years ago)
Author:
vboxsync
Message:

PGMR3PhysWriteExternal: Instrumented it to track down who is writing after PGM has saved it's state.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/pgm.h

    r24197 r24349  
    527527VMMR3DECL(void)     PGMR3PhysWriteU64(PVM pVM, RTGCPHYS GCPhys, uint64_t Value);
    528528VMMR3DECL(int)      PGMR3PhysReadExternal(PVM pVM, RTGCPHYS GCPhys, void *pvBuf, size_t cbRead);
    529 VMMR3DECL(int)      PGMR3PhysWriteExternal(PVM pVM, RTGCPHYS GCPhys, const void *pvBuf, size_t cbWrite);
     529VMMR3DECL(int)      PGMR3PhysWriteExternal(PVM pVM, RTGCPHYS GCPhys, const void *pvBuf, size_t cbWrite, const char *pszWho);
    530530VMMR3DECL(int)      PGMR3PhysGCPhys2CCPtrExternal(PVM pVM, RTGCPHYS GCPhys, void **ppv, PPGMPAGEMAPLOCK pLock);
    531531VMMR3DECL(int)      PGMR3PhysGCPhys2CCPtrReadOnlyExternal(PVM pVM, RTGCPHYS GCPhys, void const **ppv, PPGMPAGEMAPLOCK pLock);
  • trunk/src/VBox/VMM/PDMDevHlp.cpp

    r24289 r24349  
    21852185        rc = PGMPhysWrite(pVM, GCPhys, pvBuf, cbWrite);
    21862186    else
    2187         rc = PGMR3PhysWriteExternal(pVM, GCPhys, pvBuf, cbWrite);
     2187        rc = PGMR3PhysWriteExternal(pVM, GCPhys, pvBuf, cbWrite, pDevIns->pDevReg->szDeviceName);
    21882188
    21892189    Log(("pdmR3DevHlp_PhysWrite: caller='%s'/%d: returns %Rrc\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, rc));
  • trunk/src/VBox/VMM/PGMPhys.cpp

    r23833 r24349  
    233233 * @param   pvBuf           What to write.
    234234 * @param   cbWrite         How many bytes to write.
     235 * @param   pszWho          Who is writing.  For tracking down who is writing
     236 *                          after we've saved the state.
    235237 *
    236238 * @thread  Any but EMTs.
    237239 */
    238 VMMDECL(int) PGMR3PhysWriteExternal(PVM pVM, RTGCPHYS GCPhys, const void *pvBuf, size_t cbWrite)
     240VMMDECL(int) PGMR3PhysWriteExternal(PVM pVM, RTGCPHYS GCPhys, const void *pvBuf, size_t cbWrite, const char *pszWho)
    239241{
    240242    VM_ASSERT_OTHER_THREAD(pVM);
    241243
    242     AssertMsg(!pVM->pgm.s.fNoMorePhysWrites, ("Calling PGMR3PhysWriteExternal after pgmR3Save()!\n"));
     244    AssertMsg(!pVM->pgm.s.fNoMorePhysWrites,
     245              ("Calling PGMR3PhysWriteExternal after pgmR3Save()! GCPhys=%RGp cbWrite=%#x pszWho=%s\n",
     246               GCPhys, cbWrite, pszWho));
    243247    AssertMsgReturn(cbWrite > 0, ("don't even think about writing zero bytes!\n"), VINF_SUCCESS);
    244248    LogFlow(("PGMR3PhysWriteExternal: %RGp %d\n", GCPhys, cbWrite));
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