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

Visual Studio 2013

Nov 26, 2013 at 3:54 PM
Is there a way to have this work with Visual Studio 2013? I get it to initialize but it reports no leaks :( unless I use vs110 toolset.
Dec 4, 2013 at 2:47 PM
Edited Dec 4, 2013 at 3:09 PM
I just verified this myself. I created a regular wizard template MFC app in VS 2013, added a malloc() at init and VLD didn't see it.
I changed the toolset to VS 2012 and it worked fine.
Well we shouldn't be surprised as the title for this project clearly states it's for 2008/2010/2012.

edit: I just cruised through the source and I see where each CRT version is hooked into (dllspatches.cpp). The VS 2013 CRT will need to have it's own entry - and something tells me it ain't as simple as that...
Dec 12, 2013 at 2:48 PM
Yeah I know it's not "supposed" t work with vs2013. So I didn't mean to say that as a complaint lol.

But if someone found a somewhat feasible workaround or any knowledge of when VLD would be updated. Or what we'd need to do to update it would be cool.
Dec 12, 2013 at 10:12 PM
Hey. So I updated the patches with the vs2013 alternatives. and it seems to have worked. gonna do some testing to see what else changed.
Coordinator
Dec 15, 2013 at 8:16 PM
Master branch support VS2013
Dec 16, 2013 at 12:02 AM
Hi! Thanks a lot for your support!

I have just tried to download the code from GIT, compile it and create the installer but unfortunately it gives me the following error. I needed to recompile everything using Visual Studio 2013 as it is the only one I have installed... Not sure if that might cause any issue.

SpaceInvaders.exe - Error de la aplicación

La aplicación no se pudo iniciar correctamente (0xc0150002). Haga clic en Aceptar para cerrarla.

Aceptar

Dec 16, 2013 at 3:20 PM
Thank you KindDragon! I just compiled and tested, everything works great!

danilojose:
My app failed this way initially as it picked up the old version of the vld.dll, but I had linked against the new vld.lib.
Make sure you are linking on the new vld.lib and check in the Output pane that you are loading the correct vld dll.
Dec 16, 2013 at 7:28 PM
Thank you KindDragon!!! We all love this software!

Will you be making a v2.4 installer? The setup\ directory uses Inno Setup 5 (which I've used before), but does not generate the same installer as v2.3. Namely, the .iss looks for the .dlls in the wrong directory and does not create the registry entries (mine had problems finding the .ini file). I really like that the .iss will modify the Visual Studio Win32.cpp property page to set the additional include\ & lib\ directories, though that should probably be optional.
Coordinator
Dec 20, 2013 at 8:05 PM
Duggernaut36 wrote:
Will you be making a v2.4 installer?
Yes, after testing
The setup\ directory uses Inno Setup 5 (which I've used before), but does not generate the same installer as v2.3. Namely, the .iss looks for the .dlls in the wrong directory and does not create the registry entries (mine had problems finding the .ini file).
Thank you, fixed
I really like that the .iss will modify the Visual Studio Win32.cpp property page to set the additional include\ & lib\ directories, though that should probably be optional.
It's already optional, you can disable it.
Dec 25, 2013 at 11:27 PM
Unfortunately... I have no clues what can be creating the issue since the only reference to vld.lib or vld.dll are the ones that I have locally compiled... :(
There must be something bad with the scenario of only Visual Studio 2013 installed in my machine under windows 8.1
Feb 22, 2014 at 5:14 PM
Any news of when an official installer for VS2013 (i.e. V2.4?) will be released?

Thanks
Coordinator
Mar 24, 2014 at 11:25 AM
Version 2.4rc available for testing
Mar 25, 2014 at 11:50 PM
KindDragon wrote:
Version 2.4rc available for testing
Thanks!

But I noticed that the DLL's included in 2.4rc date back to 2013-04-29.

Maybe the "old" 2.3 DLL's go included by accident?
Coordinator
Mar 26, 2014 at 7:30 PM
Thank you for noticing. I re-uploaded version
Mar 28, 2014 at 10:33 AM
OK - a few observations (Windows 8.1 Pro)
  1. During the install, even though VS2013 wasn't running, it still prompted me to close it and waited until I pressed OK on that dialog.
  2. I selected to Add VLD to my path and to install for VS2013 (not VS2008). This allowed me to add the "#include <vld.h> to my source but it would not link as "vld.lib" was not found. Updating Microsoft.Cpp.Win32.user for the include & libraries resolved this. My question here is - why ask to install for VS2013 if this manual update is still needed?
  3. In the documentation (https://vld.codeplex.com/wikipage?title=Using%20Visual%20Leak%20Detector&referringTitle=Documentation), it states with regard to the Microsoft.Cpp.Win32.user file to add the appropriate directories to the "Include files" and "Library files". In VS2013, they are named "Include Directories" and "Library Directories".
  4. My program compiles and links now but won't run - error 0xc0150002 (DLL issue). The Event Log entry states:

Log Name:      Application
Source:        SideBySide
Date:          28/03/2014 10:22:24
Event ID:      33
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Description:
Activation context generation failed for "C:\Program Files (x86)\Visual Leak Detector\bin\Win32\vld_x86.dll". Dependent Assembly Microsoft.DTfW.DHL,processorArchitecture="x86",type="win32",version="6.11.1.404" could not be found. Please use sxstrace.exe for detailed diagnosis.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="SideBySide" />
    <EventID Qualifiers="49409">33</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2014-03-28T10:22:24.000000000Z" />
    <EventRecordID>6143</EventRecordID>
    <Channel>Application</Channel>
    <Security />
  </System>
  <EventData>
    <Data>Microsoft.DTfW.DHL,processorArchitecture="x86",type="win32",version="6.11.1.404"</Data>
    <Data>C:\Program Files (x86)\Visual Leak Detector\bin\Win32\vld_x86.dll</Data>
  </EventData>
</Event>
Mar 28, 2014 at 10:27 PM
Edited Mar 28, 2014 at 10:27 PM
c273 wrote:
OK - a few observations (Windows 8.1 Pro)
  1. During the install, even though VS2013 wasn't running, it still prompted me to close it and waited until I pressed OK on that dialog.
  2. I selected to Add VLD to my path and to install for VS2013 (not VS2008). This allowed me to add the "#include <vld.h> to my source but it would not link as "vld.lib" was not found. Updating Microsoft.Cpp.Win32.user for the include & libraries resolved this. My question here is - why ask to install for VS2013 if this manual update is still needed?
  3. In the documentation (https://vld.codeplex.com/wikipage?title=Using%20Visual%20Leak%20Detector&referringTitle=Documentation), it states with regard to the Microsoft.Cpp.Win32.user file to add the appropriate directories to the "Include files" and "Library files". In VS2013, they are named "Include Directories" and "Library Directories".
  4. My program compiles and links now but won't run - error 0xc0150002 (DLL issue). The Event Log entry states:

Log Name:      Application
Source:        SideBySide
Date:          28/03/2014 10:22:24
Event ID:      33
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Description:
Activation context generation failed for "C:\Program Files (x86)\Visual Leak Detector\bin\Win32\vld_x86.dll". Dependent Assembly Microsoft.DTfW.DHL,processorArchitecture="x86",type="win32",version="6.11.1.404" could not be found. Please use sxstrace.exe for detailed diagnosis.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="SideBySide" />
    <EventID Qualifiers="49409">33</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2014-03-28T10:22:24.000000000Z" />
    <EventRecordID>6143</EventRecordID>
    <Channel>Application</Channel>
    <Security />
  </System>
  <EventData>
    <Data>Microsoft.DTfW.DHL,processorArchitecture="x86",type="win32",version="6.11.1.404"</Data>
    <Data>C:\Program Files (x86)\Visual Leak Detector\bin\Win32\vld_x86.dll</Data>
  </EventData>
</Event>
Make sure you have "dbghelp.dll" as well as "Microsoft.DTfW.DHL.manifest" in the same folder as your executable file!

(If this was clear and you actually came to ask why this doesn't work "out of the box", please ignore my answer)
Mar 29, 2014 at 6:01 PM
OK - I was going to say mea cupla and apologise for missing this in the documentation but then I looked and I couldn't find any reference to this action in this or anywhere else on your project site except for a recent user, 123456, who said 4 days ago - quote: I was getting the error 0xc0150002, copying the files dbghelp.dll and Microsoft.DTfW.DHL.manifest from the dbghelp folder to the bin folder solved the problem.

However, I followed your instructions above and copied these two files to the folder containing my executable and it did not solve the problem!

I then did what the user 123456 did, i.e. copy these 2 files to the "C:\Program Files (x86)\Visual Leak Detector\bin\Win32" folder rather than the executable's folder and it solved the problem.

This raises the question - why not install them there in the first place (and the x64 version into the corresponding folder)?

As I assume this only works because I selected to add the VLD bin directories to my path during installation, I removed them from my path and VLD only works if I copy those 2 files and vld_386.dll to the folder containing the executable.

So, it seems that VLD works as follows:
  1. With VLD bin folders in the PATH, the two files dbghelp.dll and Microsoft.DTfW.DHL.manifest must be in the VLD bin folder i.e. the same folder as vld_x86.dll - "C:\Program Files (x86)\Visual Leak Detector\bin\Win32" (or vld_x64.dll in the x64 equivalent)
  2. Without VLD bin folders in the PATH, the three files dbghelp.dll, Microsoft.DTfW.DHL.manifest and vld_x86.dll (or vld_x64.dll) must be in the executable's folder.
Or in summary - the files dbghelp.dll and Microsoft.DTfW.DHL.manifest seem to need be in the same folder as vld_x86.dll/vld_x64.dll and they must be able to be found by the executable - i.e. its folder or via the PATH.

I assume this is largely due to Microsoft's DLL Hell implementation.

As I have built only a x86 version of my program, I haven't researched placing the x64 versions of dbghelp.dll and Microsoft.DTfW.DHL.manifest in the x64 VLD bin folders and the impact of having the x86 bin folders before the x64 bin folders in the PATH statement.
Mar 31, 2014 at 8:05 PM
Edited Apr 2, 2014 at 6:14 PM
c273 wrote:
  1. I selected to Add VLD to my path and to install for VS2013 (not VS2008). This allowed me to add the "#include <vld.h> to my source but it would not link as "vld.lib" was not found. Updating Microsoft.Cpp.Win32.user for the include & libraries resolved this. My question here is - why ask to install for VS2013 if this manual update is still needed?
The InnoSetup installer adds the directories into %LOCALAPPDATA%\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props. But specifies the Lib directory as
<ClCompile>
      <AdditionalLibraryDirectories>
            C:\Program Files (x86)\Visual Leak Detector\lib\Win32;
            %(AdditionalLibraryDirectories)       
      </AdditionalLibraryDirectories>
</ClCompile>
It should be:
<Link>
      <AdditionalLibraryDirectories>
            C:\Program Files (x86)\Visual Leak Detector\lib\Win32;
            %(AdditionalLibraryDirectories)
      </AdditionalLibraryDirectories>
</Link>
The 2.3 installer puts the dbghelp.dll and Microsoft.DTfW.DHL.manifest files in the bin\Win32 folder with the vld_x86.dll. The 2.4 installer does not. :(
Apr 2, 2014 at 6:13 PM
(Visual Studio 2013 Ultimate)

I think the installer's Include directory is in the wrong XML node as well. When it is placed in the <AdditionalIncludeDirectories>, Visual Studio will add it to the local file lookup path, e.g. #include "vld.h". I would rather keep it in the system lookup path, e.g. #include <vld.h>.
<Project>
  <PropertyGroup>
    <IncludePath>C:\Program Files %28x86%29\Visual Leak Detector\include;$(IncludePath)</IncludePath>
    <LibraryPath>C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath>
If I'm reading the InnoSetup config correctly, this should simplify some of the XML nodes. ItemDefinitionGroup => PropertyGroup. ClCompile => [removed]. AdditionalIncludeDirectories => IncludePath. AdditionalLibraryDirectories => LibraryPath.
Apr 9, 2014 at 11:29 AM
No support VS 2013 ?

VLD is AWESOME !!!

I HOPE continue to...
Coordinator
Apr 13, 2014 at 8:42 PM
VLD support VS2013
May 1, 2014 at 11:56 PM
KingDragon, thanks for the efforts.

I'm using VS2013.
I just installed the last version v2.4rc2 (I had the last stable release installed before but I realized recently that it wasn't working anymore since I switched to VS2013).
I cleaned all my project in all modes, then compiled it in Debug 32 bits.
The only code I didn't recompile was boost libraries but I don't know if that might be related.

My solution have two executables (client & server) startup on Debug.
Both crashes with a strange error just after the VLD dlls symbols (at least that's what I see in the output).

Right now it's time for me to go to sleep so I can't report much more but:
  1. I will try a small empty project tomorrow, see if it does the same thing;
  2. I'm using CMake scripts to setup VLD, so if something have changed on the install, maybe it's related;
  3. The installer might have done something because I had a previous version of VLD and it asked if I wanted to uninstall before, I said yes.
  4. I really have to sleep now but will make sure to capture the erro message when I wakeup.
May 2, 2014 at 8:50 AM
I re-posted my issue there with a bit more details: https://vld.codeplex.com/workitem/10563
May 2, 2014 at 10:17 AM
So it was my install that was not working fine. Uninstalling and reinstalling did the trick.
Jul 4, 2014 at 7:12 PM
I'm not sure what I'm doing wrong but the Debug Output window doesn't show anything after the crash. I'm using Visual Studio Express 2013. Below is the entire Output window after I hit break.
'Myrago.debug.exe' (Win32): Loaded 'C:\Leadwerks\Projects\Myrago\Myrago.debug.exe'. Symbols loaded.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\lpk.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\usp10.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shell32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shlwapi.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Program Files (x86)\Visual Leak Detector\bin\Win32\vld_x86.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Program Files (x86)\Visual Leak Detector\bin\Win32\dbghelp.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Leadwerks\Projects\Myrago\lua51.dll'. Module was built without symbols.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcr100.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Leadwerks\Projects\Myrago\steam_api.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ws2_32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\nsi.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\opengl32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\glu32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ddraw.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dciman32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\setupapi.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\oleaut32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ole32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\devobj.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dwmapi.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmm.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\psapi.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\OpenAL32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msctf.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\appinit_dll.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\appinit_dll.dll'
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\nvinit.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Program Files (x86)\NVIDIA Corporation\coprocmanager\detoured.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Program Files (x86)\NVIDIA Corporation\coprocmanager\Nvd3d9wrap.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Program Files (x86)\NVIDIA Corporation\coprocmanager\nvdxgiwrap.dll'. Cannot find or open the PDB file.
Visual Leak Detector Version 2.4RC2 installed.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\profapi.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\uxtheme.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ole32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\ole32.dll'
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ole32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\ole32.dll'
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\clbcatq.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\nvoglv32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\wintrust.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\crypt32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msasn1.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntmarta.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\Wldap32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\powrprof.dll'. Cannot find or open the PDB file.
The thread 0x11fc has exited with code 0 (0x0).
'Myrago.debug.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\powrprof.dll'
The thread 0x1710 has exited with code 0 (0x0).
The thread 0x18c0 has exited with code 0 (0x0).
'Myrago.debug.exe' (Win32): Loaded 'D:\Games\Steam\steamclient.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\IPHLPAPI.DLL'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winnsi.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imagehlp.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'D:\Games\Steam\tier0_s.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'D:\Games\Steam\vstdlib_s.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\secur32.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'D:\Games\Steam\Steam.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'D:\Games\Steam\Steam2.dll'. Cannot find or open the PDB file.
First-chance exception at 0x760CC42D in Myrago.debug.exe: Microsoft C++ exception: common::CNamedArgsUndefinedNameException at memory location 0x0024E470.
First-chance exception at 0x760CC42D in Myrago.debug.exe: Microsoft C++ exception: common::CNamedArgsUndefinedNameException at memory location 0x0024E43C.
The thread 0xbc8 has exited with code 0 (0x0).
'Myrago.debug.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dbghelp.dll'. Cannot find or open the PDB file.
'Myrago.debug.exe' (Win32): Loaded 'D:\Games\Steam\CSERHelper.dll'. Cannot find or open the PDB file.
The thread 0x510 has exited with code 0 (0x0).
'Myrago.debug.exe' (Win32): Loaded 'D:\Games\Steam\GameOverlayRenderer.dll'. Cannot find or open the PDB file.
First-chance exception at 0x009993D6 in Myrago.debug.exe: 0xC0000005: Access violation reading location 0x00000000.
Unhandled exception at 0x009993D6 in Myrago.debug.exe: 0xC0000005: Access violation reading location 0x00000000.
Jul 6, 2014 at 11:50 PM
It seems it works if the program exits successfully (I get a report). It doesn't if it crashes before it exits (memory access violation). Maybe this is just how Visual Leak Detector works.
Jul 7, 2014 at 9:29 PM
I am trying to use VLD (version 2.4RC2, Visual Studio 2013, MFC project) however it keeps reporting that "No memory leaks detected". I have added a memory leak on purpose to see if it was my code or the program and the CRT Library can detect it however VLD does not. So anyone have any idea what might be happening.
Coordinator
Jul 12, 2014 at 3:22 PM
J_Morg wrote:
I am trying to use VLD (version 2.4RC2, Visual Studio 2013, MFC project) however it keeps reporting that "No memory leaks detected". I have added a memory leak on purpose to see if it was my code or the program and the CRT Library can detect it however VLD does not. So anyone have any idea what might be happening.
Maybe you include VLD to wrong Dll.
Aug 27, 2014 at 3:14 PM
Hello, is it really fixed? I am checking the 2.4RC2, but in Visual Studio 2013 I am always getting 'No memory leaks detected.' I wonder whether it is not broken by the update of the VS. I installed VS2013 with Update 3 (so my version of the Visual Studio is 12.0.30723.00 Update 3). I checked the loaded vld.dll and the header file vld.h which was included during compilation and both are correct.
Aug 28, 2014 at 8:10 AM
I narrowed the problem. The problem is caused by one of our 3rd party library which uses own memory management and it overwrites the global new/delete operators silently. It seems that all allocations then go to their internal storage and this storage is thrown away at the end. The VLD catches the allocation of that storage and also it catches the releasing of that storage. So everything seems ok with VLD.
Dec 15, 2014 at 3:43 PM
Edited Dec 16, 2014 at 10:38 AM
Same problem as J_Morg here; new vld.lib and vld_x86.dll, but no memory leaks detected.
The 2.4RC2 source is incomplete, vldallocator.h for example is missing. I got the latest source from CodePlex, then compiled that under VS2013. I checked that I'm using the right DLL by adding a small text to the 'No memory leaks detected.' line in the source.

Using VS2013 v12.0.21005.1 REL. The code goes like this:

VLDSetReportOptions(VLD_OPT_REPORT_TO_FILE|VLD_OPT_REPORT_TO_DEBUGGER,L"d:/t/vld_report.txt");
VLDEnable();
VLDReportLeaks();
calloc(100,1);
VLDReportLeaks();

But no leaks are detected.

[edit] I'm tracing into the code. VisualLeakDetector::_calloc is being called, so the hooks of allocation are in place. In _calloc(), the block is allocated using pcalloc(num,size) (inside msvcrt120d.dll @ 0x021de940), and firstAllocCall(tls) is called. There, tls->pblockInfo is always zero, so it does not seem that the callstack is ever saved.

So the hooks are all in place, but no allocations are actually being recorded.
Dec 16, 2014 at 5:06 PM
I'm using 2.4RC2 with no issues in VS2013, I suspect your project is loading an old version of vld_x86.dll from somewhere else.

Double check your Debug output to see where the vld_x86.dll is actually being loaded from, should be loaded from here:
C:\Program Files (x86)\Visual Leak Detector\bin\Win32\vld_x86.dll'
Dec 17, 2014 at 4:10 PM
Edited Dec 17, 2014 at 4:27 PM
I verified that by actually changing code (adding comments) in the vld_x86.dll itself, so I know it's the right DLL.
I only arrive in 'firstAllocCall' once per allocation. I think that when really allocating, the RtlAlloc call (or such) that gets called arrives back into VLD, where it should not be recorded twice, hence the 'firstcall' variable.

But when VisualLeakDetect::_calloc() calls 'pcalloc', for example, it never returns back into VLD. So I don't see where the allocation is being recorded in a heap map.

It might be a specific version of VS2013 I'm using (v12.0.21005.1 REL).

BTW Where did you get your dbghelp.dll and *.manifest from? I got those from the v2.3 install, but maybe that's not right.

EDIT: Further debugging; calloc() goes into pcalloc(), which calls VisualLeakDetector::enabled() for example. I then end up in _HeapAlloc(), which calls isModuleExcluded(), which always returns true...