This project has moved. For the latest updates, please go here.

Questions on using vld for DLLs

Jan 14, 2011 at 7:15 AM

I'm a add-in developer for a program, I'd like to just check the memory leak from my add-in DLLs. I can't build the program, I mean the .exe, with the vld. What I can do is just to build my add-in modules with vld. So is it OK to build DLL with vld only? If the DLL is not built with vld, does it mean vld won't do memory leak for that DLL, or as long as vld DLL is loaded, it will detect leaks from all DLLs?

Another problem is that I build my DLL with vld successfully, and run debugger in VS to start the program which in turn loads my DLL. But the program hangs when loading my DLL. I notice that vld DLL is loaded just before my DLL loading. Something wrong? I have tried to set the "StartDisabled" key in configuration file to "yes" to disable vld in the start, but it doesn't resolve thie issue. From the call stack, seems like TlsSetValue() is called in endless loop. TlsSetValue() will allocate memory, vld checks this memory allocation, and call TlsSetValue() again. The environment is Win7 + VS2010 + vld2.0b, and the program, my DLLs and vld are all debug version.