VirtualBox

Changeset 69971 in vbox for trunk/src/VBox/Runtime/r3


Ignore:
Timestamp:
Dec 7, 2017 11:16:53 AM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
119477
Message:

iprt/memtracker: Add the caller address to the tracking information.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r3/alloc.cpp

    r69111 r69971  
    2929*   Defined Constants And Macros                                                                                                 *
    3030*********************************************************************************************************************************/
     31#define RTMEMALLOC_USE_TRACKER
    3132#if defined(RTMEM_WRAP_TO_EF_APIS) && !defined(RTMEM_NO_WRAP_TO_EF_APIS)
    3233# undef RTMEM_WRAP_TO_EF_APIS
     
    113114    AssertMsg(cb, ("Allocating ZERO bytes is really not a good idea! Good luck with the next assertion!\n"));
    114115# ifdef RTMEMALLOC_USE_TRACKER
    115     void *pv = RTMemTrackerHdrAlloc(malloc(cb + sizeof(RTMEMTRACKERHDR)), cb, pszTag, RTMEMTRACKERMETHOD_ALLOC);
     116    void *pv = RTMemTrackerHdrAlloc(malloc(cb + sizeof(RTMEMTRACKERHDR)), cb, pszTag, ASMReturnAddress(), RTMEMTRACKERMETHOD_ALLOC);
    116117# else
    117118    void *pv = malloc(cb); NOREF(pszTag);
     
    137138
    138139# ifdef RTMEMALLOC_USE_TRACKER
    139     void *pv = RTMemTrackerHdrAlloc(calloc(1, cb + sizeof(RTMEMTRACKERHDR)), cb, pszTag, RTMEMTRACKERMETHOD_ALLOCZ);
     140    void *pv = RTMemTrackerHdrAlloc(calloc(1, cb + sizeof(RTMEMTRACKERHDR)), cb, pszTag, ASMReturnAddress(), RTMEMTRACKERMETHOD_ALLOCZ);
    140141#else
    141142    void *pv = calloc(1, cb); NOREF(pszTag);
     
    191192
    192193# ifdef RTMEMALLOC_USE_TRACKER
    193     void *pvRealOld  = RTMemTrackerHdrReallocPrep(pvOld, 0, pszTag);
     194    void *pvRealOld  = RTMemTrackerHdrReallocPrep(pvOld, 0, pszTag, ASMReturnAddress());
    194195    size_t cbRealNew = cbNew || !pvRealOld ? cbNew + sizeof(RTMEMTRACKERHDR) : 0;
    195196    void *pvNew      = realloc(pvRealOld, cbRealNew);
    196     void *pv         = RTMemTrackerHdrReallocDone(pvNew, cbNew, pvOld, pszTag);
     197    void *pv         = RTMemTrackerHdrReallocDone(pvNew, cbNew, pvOld, pszTag, ASMReturnAddress());
    197198# else
    198199    void *pv = realloc(pvOld, cbNew); NOREF(pszTag);
     
    215216#else
    216217# ifdef RTMEMALLOC_USE_TRACKER
    217         pv = RTMemTrackerHdrFree(pv, 0, NULL, RTMEMTRACKERMETHOD_FREE);
     218        pv = RTMemTrackerHdrFree(pv, 0, NULL, ASMReturnAddress(), RTMEMTRACKERMETHOD_FREE);
    218219# endif
    219220        free(pv);
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette