The IMallocSpy interface is a debugging interface that allows application developers to monitor (spy on) memory allocation, detect memory leaks and simulate memory failure in calls to IMalloc methods.
Caution The IMallocSpy interface is intended to be used only to debug application code under development. Do not ship this interface to retail customers of your application, because it causes severe performance degradation and could conflict with user-installed software to produce unpredictable results.
Implement this interface to debug memory allocation during application development.
When an implementation of IMallocSpy is registered with CoRegisterMallocSpy, COM calls the pair of IMallocSpy methods around the corresponding IMalloc method. You would not make direct calls to IMallocSpy methods. The COM SDK contains a sample implementation of IMallocSpy. The call to the pre-method through the return from the corresponding post-method is guaranteed to be thread-safe in multi-threaded operations.
IUnknown Methods | Description |
---|---|
QueryInterface | Returns pointers to supported interfaces. |
AddRef | Increments reference count. |
Release | Decrements reference count. |
IMallocSpy Methods | Description |
---|---|
PreAlloc | Called before invoking IMalloc::Alloc, and may extend or modify the allocation to store debug information. |
PostAlloc | Called after invoking IMalloc::Alloc. |
PreFree | Called before invoking IMalloc::Free. |
PostFree | Called after invoking IMalloc::Free. |
PreRealloc | Called before invoking IMalloc::Realloc. |
PostRealloc | Called after invoking IMalloc::Realloc. |
PreGetSize | Called before invoking IMalloc::GetSize. |
PostGetSize | Called after invoking IMalloc::GetSize. |
PreDidAlloc | Called before invoking IMalloc::DidAlloc. |
PostDidAlloc | Called after invoking IMalloc::DidAlloc. |
PreHeapMinimize | Called before invoking IMalloc::DidAlloc. |
PostHeapMinimize | Called after invoking IMalloc::HeapMinimize. |
Windows NT: Use version 4.0 or later.
Windows: Use Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in objidl.h.
IMalloc, CoGetMalloc, CoRegisterMallocSpy