Does VLD work across DLL boundaries?

Nov 11, 2012 at 1:35 AM

Say I allocate an object in a DLL an release it (via a vtable call) in the application will VLD track the object reliably?

Related: how does the VLD "Runtime" handle cases where an application and a DLL #include <vld.h>? (assuming that the application and the DLL use different compilers....)

Dec 10, 2012 at 10:03 PM

VLD should track all heap allocations, since all calls to HeapAlloc are hooked. What VLD is not so good at is when you dynamically load a DLL and unload it again (i.e. LoadLibrary and FreeLibrary). You need to resolve the call-stacks before the DLL's are unloaded: Otherwise you will get stack frames with no information in them.